|
|
我在board-da850-evm.c文件增加ax88796b的板级驱动:static struct resource ax88796b_resources[] = {3 y8 v, n- E) N7 O1 g
[0] = {
2 f# R- _; g2 v( t1 Y .start = DA8XX_AEMIF_CS5_BASE,
: I3 x f9 y* k& b5 p# L .end = DA8XX_AEMIF_CS5_BASE + SZ_32K - 1,
" R4 W: r" d' Y! H: Q, o' v .flags = IORESOURCE_MEM,% M7 W- n" C+ {2 \& T# Z# [ W
},
$ [2 \) o/ m! H/ n6 Q" I# _& d [1] = {- W1 h1 D& w& u# c( [3 ~. D
.start = -1,2 L! w$ M8 l3 A" [4 B
.end = -1,% u! G1 q( q2 ~7 Q B$ b
.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,! |9 I+ `! k7 {' ?6 q
},9 g) s% u1 v5 y
( e- r" l" Z) b5 h6 y5 u, q2 O
};
1 a* x- _# A- K- ~( o+ q- P \3 c8 f1 p. O1 j7 S$ Z0 o
static struct platform_device ax88796b_device = {1 m6 N* |; m& z* f7 o3 j3 g
.name = "ax88796b",9 O1 @ l- v! L4 o& R2 q9 F
.dev = {
9 ?7 d! w( n, O& m9 l" p3 O$ s6 J0 P8 j8 H$ j( N& ]
},' o8 y( ?6 E9 M) j% s: b- U& s) H
.num_resources = ARRAY_SIZE(ax88796b_resources),& c" i0 z/ s5 l) _ R- \! ^
.resource = ax88796b_resources,6 \- j! J! @; t
};6 a. w4 C7 a8 L/ L" s
4 I6 Q# R7 Q: ?8 d+ @5 a7 R# b
static inline void da850_evm_setup_ax88796b(void)
+ S% Z! g w/ \% Z4 _& b& k& @{/ H* u6 @7 U1 x5 O
void __iomem *aemif_addr;
, A( h6 f5 L) U/ K5 d int ret = 0;
1 l2 i3 d7 d! u1 p7 k) D8 Y- t
2 h$ j' v: `# S0 Z ret = davinci_cfg_reg_list(da850_evm_ax88796b_pins);1 Y1 i( w6 ~0 L, j7 Z
3 L8 N* Z9 |! _" v if(ret)* z* R% ?3 F, @/ ?
pr_warning("da850_evm_init: ax88796b mux setup failde:". t w6 b E3 _6 u! F `% e
"%d\n", ret);; U1 `" _; l! z
aemif_addr = ioremap(DA8XX_AEMIF_CTL_BASE, SZ_32K);) E& p+ \. k u( u8 N. [8 ~
9 T$ @! y. F" F writel(readl(aemif_addr + DA8XX_AEMIF_CE5CFG_OFFSET) |
; p. r+ R. k. F1 s/ Z5 ~* k/ ` DA8XX_AEMIF_ASIZE_16BIT,
4 N# T* F. B1 _* _ aemif_addr + DA8XX_AEMIF_CE5CFG_OFFSET);8 U2 w @- Y* ^' A
iounmap(aemif_addr);
- X& q V/ a7 f0 M ]7 M; g ax88796b_resources[1].start = gpio_to_irq(DA850_AX88796B_IRQ);0 {5 }. O# T- W+ x
ax88796b_resources[1].end = ax88796b_resources[1].start;
. r$ y" L7 p: U4 }6 k0 @% V- F9 x 7 _0 `+ a* w; e( a1 ?
platform_device_register(&ax88796b_device);+ G; J: U1 |+ N! o. x; h2 W1 S9 S* D
) c- S" [$ U6 }5 }}
* s( i2 i1 `9 }8 U g b+ Y% V4 X" o4 D. d/ s" O
和相关的引脚配置
. A. E2 d' u! E1 h% h- j' e编译通过,
3 U# `' b7 f, E+ S/ ?5 H在板子内核启动过程中:
- @% B, V3 P' pINIT: version 2.88 booting' ~# q% Z! P' `3 f3 `' ~& U9 l* _
Starting udev) [) t: U6 M/ c8 X a
Starting Bootlog daemon: bootlogd.
& Q& X" {2 r) g8 zALSA: Restoring mixer settings...2 @& o9 l& r+ e5 j( O! D$ v- u
/usr/sbin/alsactl: load_state:1686: No soundcards found...; d. T7 A" | m8 l- J( L; i
Configuring network interfaces... [ 12.665617] davinci_mdio davinci_mdio.0: resetting idled controller
+ [; n! K5 w4 ^( O) W1 H' G[ 12.672854] net eth0: attached PHY driver [SMSC LAN8710/LAN8720] (mii_bus:phy_addr=davinci_mdio-0:00, id=7c0f1)6 s$ d/ q5 v$ M0 i
udhcpc (v1.20.2) started
L: Y/ j: D, W$ }$ rSending discover...
* X J9 b: {, w6 ]% ?0 }Sending discover...% d! [: Z, I& O$ T2 q! S
Sending discover...
1 V. {% e' U1 D7 y" }No lease, failing1 \9 w; V$ o2 J
done." k( Q5 q) q L. ]8 `7 B
Wed Nov 6 04:33:00 UTC 2013! k( C8 A' H0 w9 w' [
INIT: Entering runlevel: 5
) y2 v! C; A. ~; \Starting system message bus: dbus./ H) }, \" \$ Q. o; `' y& R# |6 [$ f
Starting Dropbear SSH server: [ 22.869096] ipv6: disagrees about version of symbol inet_recvmsg
4 ?. |4 ]$ E: M5 P* J[ 22.875341] ipv6: Unknown symbol inet_recvmsg (err -22)8 {; Q. y% K6 g" o1 s( s- T) C
[ 22.880894] ipv6: disagrees about version of symbol skb_free_datagram
8 m, s, _7 r, m% h1 H[ 22.887493] ipv6: Unknown symbol skb_free_datagram (err -22)* W' w2 M+ }9 I
[ 22.893560] ipv6: disagrees about version of symbol __skb_checksum_complete
1 b% |6 i1 p7 W. O) U$ p! D[ 22.900598] ipv6: Unknown symbol __skb_checksum_complete (err -22)
" r- e- Y- f1 x5 C[ 22.907048] ipv6: disagrees about version of symbol register_sysctl_paths
/ W. U: v. S9 u6 r8 e* W7 h, `- R' W( U4 H
[ 22.913984] ipv6: Unknown symbol register_sysctl_paths (err -22)
% c2 ]1 }5 e2 X5 r6 V& e[ 22.920203] ipv6: disagrees about version of symbol xfrm_inner_extract_output' u- f' @; G6 l5 C
[ 22.927486] ipv6: Unknown symbol xfrm_inner_extract_output (err -22), R# d2 i9 p1 |' t0 p! y
[ 22.934104] ipv6: disagrees about version of symbol skb_free_datagram_locked
0 T- l5 N- M. U4 f9 \& L[ 22.941222] ipv6: Unknown symbol skb_free_datagram_locked (err -22)8 |% @9 @& _9 y [0 u
[ 22.947739] ipv6: disagrees about version of symbol sock_i_uid8 s6 @, R' [1 D
3 _, p5 Y2 L$ x+ w. b1 H; s, n2 r
就会出现这个问题,请问如何解决
. s2 }9 {2 x! Z/ E+ ?# C
7 V7 v$ o- N, x# {5 Y |
|