|
我在board-da850-evm.c文件增加ax88796b的板级驱动:static struct resource ax88796b_resources[] = {
' u9 a2 ]2 }1 p* M6 Z, V [0] = {
* V0 d6 S% N3 A2 \3 Q .start = DA8XX_AEMIF_CS5_BASE,$ u$ z: a) Y1 V" Q
.end = DA8XX_AEMIF_CS5_BASE + SZ_32K - 1,. A! h9 g/ P1 v+ t8 V) Z6 e- s
.flags = IORESOURCE_MEM,5 \7 y: p1 @; H* [8 |
},
% |6 |- V6 Q! f% ?! |# o [1] = {
- u3 _8 s! H% A" d9 l7 z! b" N& a. F .start = -1,
: W' \4 l6 f4 j, P" {( W .end = -1,
* |/ w1 S5 z$ i. \6 C: l- k .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
! R! h- _4 X: f1 _ },
" M* k" T: T, }' @
& I: }! s, c% x- D' t};
) [: ]* u! c2 x1 `/ @" l7 l; E# W9 J1 R) B' c4 m) c+ m" t
static struct platform_device ax88796b_device = {' Y; O1 G$ \! v# b% Q1 [
.name = "ax88796b",+ i0 x/ c% g; x: m9 L# Y1 a
.dev = {
2 h0 }- G& R# v* ~+ l8 O! N" \0 d( f% |, v: j- o
},
% v9 L0 B# o1 x, v. I2 d% Z .num_resources = ARRAY_SIZE(ax88796b_resources),
# n* S' W% {' Z! l. x .resource = ax88796b_resources,& N2 Y( x G' W# ~! l7 G |( D
};* h/ q/ j# N( T- ]5 e- u
" F# C& `% C c3 C
static inline void da850_evm_setup_ax88796b(void)
" W; m6 f' y) g a6 p{
. q! g) P) G7 d; h0 N void __iomem *aemif_addr;
$ o& Q' B" F7 `6 H int ret = 0;" o! [ l+ D, D/ Q7 Z% }1 p9 r' Q
5 \3 C% o5 u; t3 Z% k8 r% q ret = davinci_cfg_reg_list(da850_evm_ax88796b_pins);
! ?' R: J: v0 x* I
' _( N, w n( ^, C* }% v if(ret)
( q+ C# g! n4 p5 c pr_warning("da850_evm_init: ax88796b mux setup failde:"
* T; U5 }- \, |1 u- ~" P. y: w: } "%d\n", ret);3 T) N' j3 Q$ \& b4 {3 p6 D: Z
aemif_addr = ioremap(DA8XX_AEMIF_CTL_BASE, SZ_32K);# I: u# g$ l5 E& z8 I- B O# D5 Q
" W) l! C4 {! O0 D: m6 ]" @5 z
writel(readl(aemif_addr + DA8XX_AEMIF_CE5CFG_OFFSET) |
6 M# L# U" ~6 }& E3 ] DA8XX_AEMIF_ASIZE_16BIT,
: a- i. ?5 ?' A+ R5 ~; ?3 B" O aemif_addr + DA8XX_AEMIF_CE5CFG_OFFSET);( i1 N0 r; K5 r( ^/ i
iounmap(aemif_addr);
1 `$ _5 T7 `0 }0 v ax88796b_resources[1].start = gpio_to_irq(DA850_AX88796B_IRQ);
- x4 h6 O- o+ |5 J ax88796b_resources[1].end = ax88796b_resources[1].start;+ e, t0 `0 ~4 u! I# k7 ?: \
% G0 q! h |9 y! D
platform_device_register(&ax88796b_device);4 [* S O8 O! B9 a' Q2 t1 {! e
$ Y" b' x% o- V* r9 L) f/ r8 `5 j
}
- Q3 M* j8 R7 ~
0 Y' \4 x j+ S$ C7 f5 Y& ~和相关的引脚配置1 f. y- l) J: u
编译通过,
6 {7 D g7 t" n. ]& z. j在板子内核启动过程中:
" K# [: R+ ?3 P4 p2 ~% pINIT: version 2.88 booting7 v' b+ }+ e. u
Starting udev" ]3 e3 i' o8 w$ F- K7 t
Starting Bootlog daemon: bootlogd.
0 _% r! S* l: T; M+ YALSA: Restoring mixer settings...3 I: N/ n8 Y- Y& w* E8 U! I
/usr/sbin/alsactl: load_state:1686: No soundcards found...
2 i. h) ?& S+ J, qConfiguring network interfaces... [ 12.665617] davinci_mdio davinci_mdio.0: resetting idled controller
7 ^3 w+ i2 t: z$ U[ 12.672854] net eth0: attached PHY driver [SMSC LAN8710/LAN8720] (mii_bus:phy_addr=davinci_mdio-0:00, id=7c0f1)% B9 ~9 K, x4 \" X9 Y+ o9 r1 I4 U3 u
udhcpc (v1.20.2) started
+ R' C1 A0 ^9 p* g' USending discover...
; q0 R+ V; C8 s# D2 I8 DSending discover...
5 f* y( F# Z1 y" O1 [Sending discover...1 G- p2 P9 }# y5 s% `
No lease, failing
6 g; p7 |; d, f, y2 k0 ~, l/ Z$ |done.
1 I% K& |, y- kWed Nov 6 04:33:00 UTC 2013% l3 N& X' C, ^6 j$ p, j
INIT: Entering runlevel: 5# \$ u$ K0 i5 k6 y
Starting system message bus: dbus.$ ^! [6 h% a* c) a& _5 y6 Y
Starting Dropbear SSH server: [ 22.869096] ipv6: disagrees about version of symbol inet_recvmsg
! t9 a- R& f% F8 a4 s[ 22.875341] ipv6: Unknown symbol inet_recvmsg (err -22)
' ~$ y9 r; k& v4 v[ 22.880894] ipv6: disagrees about version of symbol skb_free_datagram v8 g$ c R5 P' r0 r* Z
[ 22.887493] ipv6: Unknown symbol skb_free_datagram (err -22)
) E/ L% \* @+ a0 w6 F E[ 22.893560] ipv6: disagrees about version of symbol __skb_checksum_complete
# r& W7 a' \6 z. o7 X[ 22.900598] ipv6: Unknown symbol __skb_checksum_complete (err -22)
# j- Y1 e3 [& ]. e$ O, n[ 22.907048] ipv6: disagrees about version of symbol register_sysctl_paths8 D3 o$ o8 v% `
$ `8 s5 X2 ?9 K. Z[ 22.913984] ipv6: Unknown symbol register_sysctl_paths (err -22), R+ ]1 t: c+ D0 b' r/ }
[ 22.920203] ipv6: disagrees about version of symbol xfrm_inner_extract_output
0 u1 J$ a1 K A- v, B% |2 J[ 22.927486] ipv6: Unknown symbol xfrm_inner_extract_output (err -22)$ m3 y" ]( N9 P- @& u' y
[ 22.934104] ipv6: disagrees about version of symbol skb_free_datagram_locked
- m( B" h1 Y$ q- f[ 22.941222] ipv6: Unknown symbol skb_free_datagram_locked (err -22)7 P( w' a9 F3 ?$ C1 H% B7 V
[ 22.947739] ipv6: disagrees about version of symbol sock_i_uid- J( X9 Y6 d, j' R. l/ @
; ?3 o' M) W# p7 ^
就会出现这个问题,请问如何解决% v# A- [, E* b1 e$ ]
& j5 v; b4 a0 W$ X. ~4 d" B |
|