|
|
我在board-da850-evm.c文件增加ax88796b的板级驱动:static struct resource ax88796b_resources[] = {6 R# C# F1 x- b6 z! U- Q* N
[0] = {
$ d- x+ L. v) s9 \/ D2 g2 y .start = DA8XX_AEMIF_CS5_BASE,
" r o) p' t6 J- Q/ `- M: { .end = DA8XX_AEMIF_CS5_BASE + SZ_32K - 1,
( @6 ]/ Z; {2 J .flags = IORESOURCE_MEM,( h' j0 a; v/ {0 N
},
* G1 w1 q1 M( E O [1] = {3 G+ w* q2 F { J; D* J3 R
.start = -1,( I3 _9 P) P+ E9 c5 ~
.end = -1,8 U! m5 Z+ ^7 T# {9 F( A% X4 d
.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,+ g: l3 K7 y7 L+ K
},
* A* L0 _5 M* T) h' G4 e: {) O: @" `" P. _$ }+ \' e+ f
};
' b' V2 T0 g9 V! Q& L8 F) L$ _
) b0 D, P! i3 `( y2 P" g! Pstatic struct platform_device ax88796b_device = {0 _8 X+ g2 Y7 L4 |$ R5 {
.name = "ax88796b",* M4 F* ?& H0 Y( {" s# a; Q! ]
.dev = {" B/ ~$ L: G9 I! O& \9 \$ P9 ^% a) ^
3 r1 c) K( v& N$ C6 [ },
2 I& U; c( k3 @; G# H8 Q! n' _ .num_resources = ARRAY_SIZE(ax88796b_resources),) b# E# R1 c9 u D8 z% ^3 F# W
.resource = ax88796b_resources,+ D% a$ r" k' g# I4 W! O2 u
};- L6 l( k$ q5 j# q
% q$ p2 h# y9 p- {' K; B' j3 Nstatic inline void da850_evm_setup_ax88796b(void): m6 A8 J" G2 q, q
{' O; V# D9 C3 m- }0 E* Q
void __iomem *aemif_addr;
3 \, `* a6 V3 G6 C int ret = 0;
, z7 i& k/ N5 c' h" N# A , i. [3 ?8 N+ O: s
ret = davinci_cfg_reg_list(da850_evm_ax88796b_pins);& Q- q5 \" R \3 A s6 R2 ^
P$ ?6 N. q- M) V
if(ret)/ \- o |& F+ y# O
pr_warning("da850_evm_init: ax88796b mux setup failde:"
5 C/ V2 h) V9 \: a- L, z: M "%d\n", ret);+ C( F2 j% r, H" W5 Y# _( f& y
aemif_addr = ioremap(DA8XX_AEMIF_CTL_BASE, SZ_32K);
; O6 R" | @; M
3 u( P0 j7 b) i t% V1 { writel(readl(aemif_addr + DA8XX_AEMIF_CE5CFG_OFFSET) |5 m$ k( q" {5 r: L9 U9 J6 P
DA8XX_AEMIF_ASIZE_16BIT,
- D2 Y4 a! u+ p aemif_addr + DA8XX_AEMIF_CE5CFG_OFFSET);# X6 U9 S* N. ^+ k `# ?$ K1 g
iounmap(aemif_addr);
+ N+ @/ a) V2 c8 t2 D ax88796b_resources[1].start = gpio_to_irq(DA850_AX88796B_IRQ);7 ?! o0 F; k6 c7 Q' o
ax88796b_resources[1].end = ax88796b_resources[1].start;4 ~9 y \4 O# B( w
. x! m7 ^; N4 h7 c6 }% g* r$ ? platform_device_register(&ax88796b_device);
/ r/ e: h# p6 ]( L8 `; H
- E7 U5 T% A$ d' b3 F}6 O% P, X& N& q8 h3 B& N
) `! v1 p* E) |- E: D
和相关的引脚配置- d) s3 C! Z$ i7 t# W
编译通过,
- c' Y( h% {" }7 e在板子内核启动过程中:
3 S0 ~% k. I# AINIT: version 2.88 booting
/ W% I8 F( L C+ j6 h+ c/ Y# ~Starting udev1 A% ~6 l" A+ r4 ]
Starting Bootlog daemon: bootlogd. \. R: c# T. m! s/ M2 Z
ALSA: Restoring mixer settings...
3 d! q8 J5 `. X: n: @/usr/sbin/alsactl: load_state:1686: No soundcards found...' z: C4 C% T8 @9 Q/ I
Configuring network interfaces... [ 12.665617] davinci_mdio davinci_mdio.0: resetting idled controller& }' Y, X) ]. |# P. j
[ 12.672854] net eth0: attached PHY driver [SMSC LAN8710/LAN8720] (mii_bus:phy_addr=davinci_mdio-0:00, id=7c0f1): t0 |( x- F8 \. F% a3 _
udhcpc (v1.20.2) started
( M5 g; w$ c9 a* h' i- SSending discover...: p# D+ }$ L7 ?" P8 _
Sending discover...3 ?+ m, L/ a# e, P$ R6 B$ C' x+ `
Sending discover...
; Y: b2 a1 `- m, G4 eNo lease, failing
& U2 s5 [9 A6 X- a' ndone.
: \4 ?5 J4 |; W. YWed Nov 6 04:33:00 UTC 2013+ t; _. `/ e2 e6 `5 l" B
INIT: Entering runlevel: 58 s1 q7 B, W. H( S+ y; Q+ a
Starting system message bus: dbus.7 V `$ d/ k3 V1 E
Starting Dropbear SSH server: [ 22.869096] ipv6: disagrees about version of symbol inet_recvmsg ^# j/ U( }+ z" A( i3 o) B! ?
[ 22.875341] ipv6: Unknown symbol inet_recvmsg (err -22), D/ X. f4 Q1 ?3 P( A( R! F' W
[ 22.880894] ipv6: disagrees about version of symbol skb_free_datagram
1 H* [2 v) |8 F" D( ? S' u' H. l[ 22.887493] ipv6: Unknown symbol skb_free_datagram (err -22) p8 S0 k! Y: ?0 {; t
[ 22.893560] ipv6: disagrees about version of symbol __skb_checksum_complete( ~" o2 Y8 G' _
[ 22.900598] ipv6: Unknown symbol __skb_checksum_complete (err -22)+ q1 B. v) o, w: r: p
[ 22.907048] ipv6: disagrees about version of symbol register_sysctl_paths
. o* j A: B {! e+ o7 m6 R+ D$ [/ g0 ^7 g5 |
[ 22.913984] ipv6: Unknown symbol register_sysctl_paths (err -22)
. ? O: o8 p% e[ 22.920203] ipv6: disagrees about version of symbol xfrm_inner_extract_output
) e7 {5 u7 h0 `& ]8 P[ 22.927486] ipv6: Unknown symbol xfrm_inner_extract_output (err -22)
8 F) k+ g' y: e! u4 G+ g[ 22.934104] ipv6: disagrees about version of symbol skb_free_datagram_locked: a. Q9 X. u+ j0 g/ q
[ 22.941222] ipv6: Unknown symbol skb_free_datagram_locked (err -22); Y2 _, O4 k0 K% U& S7 ]
[ 22.947739] ipv6: disagrees about version of symbol sock_i_uid
% _# G4 U1 O: P! j$ p5 N6 ]2 M
' ]! K4 G' K4 t就会出现这个问题,请问如何解决5 U+ s0 I( O) U
3 q7 f7 z @5 y* r |
|