|
|
我在board-da850-evm.c文件增加ax88796b的板级驱动:static struct resource ax88796b_resources[] = {
5 B7 {! S1 m+ z8 m% K% v [0] = {
4 n& v2 g" O! D* i* R. U .start = DA8XX_AEMIF_CS5_BASE,' T' Y' W! ^2 E5 F. S$ }# ?& B
.end = DA8XX_AEMIF_CS5_BASE + SZ_32K - 1,% F/ F: Y& k5 m: \% e2 v8 z
.flags = IORESOURCE_MEM,5 Q* O* A) G2 N
},
1 S0 \( r" Z; S- h, L [1] = {/ m# k$ t/ g$ o. Z3 S) I+ J- P8 i
.start = -1,
% m7 T3 R# }& b& U .end = -1,
1 l7 G) G! t+ H5 z# B .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL, `7 E/ e9 _2 f
},! N; l' { Z# S P( }( T8 U1 w
/ W- Q$ ]4 f Z" _& s$ W
};
A# G9 u" `3 [1 Q
4 d& p( t( K/ t9 ystatic struct platform_device ax88796b_device = {
s$ R8 `* M! j1 o& I .name = "ax88796b",
5 I2 s$ b# |8 h7 k .dev = {1 e/ H9 d9 K' Q h
" ]. L" c, D) d0 ]+ }7 b1 U. v },
8 Q. r* z# L) H% B% T .num_resources = ARRAY_SIZE(ax88796b_resources),/ `" C1 t k( s2 Z- _
.resource = ax88796b_resources,
+ Q; T- V5 _: M+ J};3 N$ h8 k8 s) G8 S' c% K' t r
7 H" T3 G/ V" [7 o) w! f! U
static inline void da850_evm_setup_ax88796b(void)
" a: j( u$ c: P! m; {) M{
" A7 F; L2 r$ q }0 E6 p void __iomem *aemif_addr;; N1 }# o8 {0 k5 d1 @# u' l5 w
int ret = 0;
9 I6 W4 o% U' T a6 |; f: `
: x- X8 O. K3 ]9 s! q. Q: \. a ret = davinci_cfg_reg_list(da850_evm_ax88796b_pins);* ~' s9 w8 [! m
. m% y7 D: w D3 K: O
if(ret)" x; ~/ K$ s( e( q. g7 O, J% p
pr_warning("da850_evm_init: ax88796b mux setup failde:") {! J, ?8 G0 E: F! f! P* O
"%d\n", ret);' Y' D3 u+ M) W" q3 j% l% V- K1 Y
aemif_addr = ioremap(DA8XX_AEMIF_CTL_BASE, SZ_32K);: v% q7 {7 H; r5 ~( b; G# s! g
, D/ d5 h) v: q/ [4 N' {7 w) @* f c3 R
writel(readl(aemif_addr + DA8XX_AEMIF_CE5CFG_OFFSET) |
; a( M0 p+ b# g7 B4 E @ DA8XX_AEMIF_ASIZE_16BIT,9 H* g' [. n3 g5 o/ }
aemif_addr + DA8XX_AEMIF_CE5CFG_OFFSET);
, j- J( c& ]& i. F/ ~% O0 } iounmap(aemif_addr);
! J) g2 |$ A+ z- G( `7 O6 o ax88796b_resources[1].start = gpio_to_irq(DA850_AX88796B_IRQ);# T6 z/ P6 @7 ?# e( n
ax88796b_resources[1].end = ax88796b_resources[1].start;" h2 C/ ?! |6 r8 N0 x! } `
; M9 b: F6 u. A2 f" p
platform_device_register(&ax88796b_device);
1 t {# N( ?: i9 ]1 v; Q 5 B+ O+ X) d& \8 k* w4 l
}& {7 H2 `5 f }$ F0 z
0 j& Z; ~+ i- p; H$ [和相关的引脚配置
v. R; m' [# W- Y3 g: j1 j! ?编译通过,
" e, y) K5 Q! t! w5 O在板子内核启动过程中:
" D+ T! y' ]' t2 s: F5 V( w: aINIT: version 2.88 booting% {1 n- i: f8 ~# b5 P6 }0 s
Starting udev5 x e+ I9 l' ]) t
Starting Bootlog daemon: bootlogd.$ R- D5 L: v/ G8 g( z
ALSA: Restoring mixer settings...
, y1 S0 m" }9 H8 O) x/usr/sbin/alsactl: load_state:1686: No soundcards found...( K$ \# i& e) @" A- @' d
Configuring network interfaces... [ 12.665617] davinci_mdio davinci_mdio.0: resetting idled controller
, R$ ~. W# [- _! r+ j% u, t8 l[ 12.672854] net eth0: attached PHY driver [SMSC LAN8710/LAN8720] (mii_bus:phy_addr=davinci_mdio-0:00, id=7c0f1)
( J! V0 A L7 D" Qudhcpc (v1.20.2) started
" C2 f. U- ^; @3 L' ^5 N6 ^) DSending discover...* _7 w: l" Q6 ?0 R0 u+ h2 O; _. v
Sending discover...
. P- b5 `) a0 u: q6 w. jSending discover...
3 h F3 i& j# ~- U. N' J+ d6 n$ J4 `No lease, failing
7 m, r5 o3 b* v- o( ~done.; N, }& `% N7 N# K: T: P
Wed Nov 6 04:33:00 UTC 2013
" O% z# o# ~4 A+ y3 uINIT: Entering runlevel: 5
# R+ K1 E; a( Y1 q6 v' B: n* K6 t% G0 _Starting system message bus: dbus.; |& G5 K! X8 ?
Starting Dropbear SSH server: [ 22.869096] ipv6: disagrees about version of symbol inet_recvmsg
/ U" V+ X5 C7 H4 L/ V. U8 d[ 22.875341] ipv6: Unknown symbol inet_recvmsg (err -22)0 c& i0 t! ~8 b9 i9 J% ~* J6 W
[ 22.880894] ipv6: disagrees about version of symbol skb_free_datagram
) z# I5 A; x! N+ {* g[ 22.887493] ipv6: Unknown symbol skb_free_datagram (err -22)! [5 Y& y1 h9 M. ]2 }
[ 22.893560] ipv6: disagrees about version of symbol __skb_checksum_complete2 T5 [/ b4 T# W4 e5 U8 c& C9 d0 F+ m
[ 22.900598] ipv6: Unknown symbol __skb_checksum_complete (err -22)
+ ]8 R, `! j3 O9 l0 t[ 22.907048] ipv6: disagrees about version of symbol register_sysctl_paths$ _! c$ T# }4 A. ]$ H2 c% y, g
* L! D' _& S& K3 l1 z. m9 \) s[ 22.913984] ipv6: Unknown symbol register_sysctl_paths (err -22)
7 N8 H2 {3 y5 l- l( v[ 22.920203] ipv6: disagrees about version of symbol xfrm_inner_extract_output3 v0 G& T* O) s6 q3 d& g; s
[ 22.927486] ipv6: Unknown symbol xfrm_inner_extract_output (err -22)
/ Y" e+ q/ r `# k[ 22.934104] ipv6: disagrees about version of symbol skb_free_datagram_locked; a2 R. t; A9 b _$ H: }
[ 22.941222] ipv6: Unknown symbol skb_free_datagram_locked (err -22)
8 F2 ]0 s w! w/ s0 G[ 22.947739] ipv6: disagrees about version of symbol sock_i_uid
& i. o6 ?2 K' N x( U$ l8 _: `) c. f: J3 j7 E/ ]4 k* w/ G s
就会出现这个问题,请问如何解决" a/ M% t: i9 j& J
! q S% V( w5 j f( t! E
|
|