嵌入式开发者社区

标题: 关于ax88796b的板级驱动 [打印本页]

作者: zhaohui293    时间: 2014-11-21 09:56
标题: 关于ax88796b的板级驱动
我在board-da850-evm.c文件增加ax88796b的板级驱动:static struct resource ax88796b_resources[] = {3 h9 O+ q4 s+ o! Q! w$ g9 |: ~. P
        [0] = {7 Y1 o) c7 f) h* Q
                .start = DA8XX_AEMIF_CS5_BASE,$ O# O: {9 F- k( p
                .end   = DA8XX_AEMIF_CS5_BASE + SZ_32K - 1,
8 H  i1 D2 H" ?% [  n3 S                .flags = IORESOURCE_MEM,
0 C3 [0 V% a6 C0 F1 A  ?$ `4 b        },0 T* {# [  n% G
        [1] = {
4 G& L* m8 {+ f3 r0 ^8 k1 d                .start = -1,
6 g8 a/ z% E; o, |+ s                .end   = -1,! A; s0 H' Q$ I& m% n+ B# h, d
                .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
/ Q. |+ J. M9 b5 F  ?+ Z$ g" V        },
/ o; e' d- [6 Z; ]% y; u
; A3 k+ Z7 v6 b2 K8 n) U};
3 o4 d6 d( C- I% ]
! G6 Z8 z2 `) Sstatic struct platform_device ax88796b_device = {/ K+ @6 J0 b2 E: H9 o" Z
        .name = "ax88796b",& t. ]& t  |4 O% `7 y9 J7 _# X9 Q
        .dev = {' ?# K  U" P+ L# o# }

4 D+ G8 o9 `8 U" }- N0 f        },: ]2 i5 D9 v/ d* y6 L0 [
        .num_resources = ARRAY_SIZE(ax88796b_resources),! {( P+ h4 }: q# z/ k6 @
        .resource = ax88796b_resources,1 u2 a0 o( e0 ~' p8 b) q7 ?
};1 e: P6 U' g; B! T
6 `+ c0 x' I( M, _' F9 ^. ^# g
static inline void da850_evm_setup_ax88796b(void)
$ r8 u& V1 H$ e/ c9 j4 X{9 F0 n9 e5 X8 S. L1 ~
        void __iomem *aemif_addr;
6 k# z/ \( y# O9 E! g% x, x* g1 f        int ret = 0;
9 y( U0 ?4 q- U- j5 L% Z. f        ' s  l7 [) s. `7 V5 l
        ret = davinci_cfg_reg_list(da850_evm_ax88796b_pins);
% w/ }" g( P6 @' i8 i4 j        ) K3 R4 h0 }; v
        if(ret)1 L8 s( ^* E  V. e: c2 [& Q! B0 M
                pr_warning("da850_evm_init: ax88796b mux setup failde:"
. K# z: k1 Q' U! L$ }$ y                        "%d\n", ret);
! W+ G4 \3 Z2 ^" q4 e  \! d: @        aemif_addr = ioremap(DA8XX_AEMIF_CTL_BASE, SZ_32K);" Y& y9 |( {, J# l) v
       
2 i8 x7 |6 z3 |+ t" r        writel(readl(aemif_addr + DA8XX_AEMIF_CE5CFG_OFFSET) |
9 O% O& M- f( t4 ^% c! u( y7 }                DA8XX_AEMIF_ASIZE_16BIT,# C  s8 a" `3 ~! j* }( \
                aemif_addr + DA8XX_AEMIF_CE5CFG_OFFSET);7 X" w# w/ i; V$ m9 Z
        iounmap(aemif_addr);
- |* H' t, P/ M        ax88796b_resources[1].start = gpio_to_irq(DA850_AX88796B_IRQ);
( T( r' q# t+ K/ J8 q; a8 X) F* l        ax88796b_resources[1].end   = ax88796b_resources[1].start;3 V/ r6 c8 ~, L4 Q8 f
       
9 D# C  T  t$ d0 |: D+ g. o' c2 c8 H        platform_device_register(&ax88796b_device);2 D; L5 U4 M- ^  R0 Q6 E9 g: o
        # Q+ a8 N! I8 a9 v, D, l
}3 o. [8 f4 @2 S; b' {6 ^; Y

+ I3 E, X- S1 L6 I和相关的引脚配置) A" u; C6 M; O( x) B: u3 o
编译通过,0 A5 y0 S2 ^8 `$ @
在板子内核启动过程中:4 ~- d, l2 ^3 s
INIT: version 2.88 booting
, t9 w! w) ~5 Y3 u2 q" \4 s2 VStarting udev
9 g- M7 |8 m% k9 {, A. p  Y, H6 OStarting Bootlog daemon: bootlogd.9 H* V9 w# L0 h
ALSA: Restoring mixer settings...% U& D0 Z% W3 ~( h+ v. J# k& s
/usr/sbin/alsactl: load_state:1686: No soundcards found...! N. z1 n- w; i2 R. F2 p
Configuring network interfaces... [   12.665617] davinci_mdio davinci_mdio.0: resetting idled controller' _0 `7 X" C. g9 ^; V
[   12.672854] net eth0: attached PHY driver [SMSC LAN8710/LAN8720] (mii_bus:phy_addr=davinci_mdio-0:00, id=7c0f1)
3 u. M7 Y& b9 @9 l: m4 X) }1 Qudhcpc (v1.20.2) started
4 n8 I  v* x% T" W; {# k" @Sending discover...
4 e4 \. p! a" \: x0 TSending discover...7 N9 o0 I! y5 i3 E7 `3 o
Sending discover...
" w: Q! L6 u" \  U9 UNo lease, failing
! ]; m$ m" F) Edone.
8 U# g/ R7 e$ `- zWed Nov  6 04:33:00 UTC 2013) V; d5 s/ W/ [+ V/ F5 h- p. K
INIT: Entering runlevel: 5
. G; f+ z0 D8 N. G5 {* @, r, rStarting system message bus: dbus.5 B, P& F3 q  ~7 U* n9 I
Starting Dropbear SSH server: [   22.869096] ipv6: disagrees about version of symbol inet_recvmsg' H' N$ c; e# _5 W1 Y- `7 e
[   22.875341] ipv6: Unknown symbol inet_recvmsg (err -22)' {2 e; j$ y, O, U- \
[   22.880894] ipv6: disagrees about version of symbol skb_free_datagram
1 f% Z. I* g* v7 y! J[   22.887493] ipv6: Unknown symbol skb_free_datagram (err -22)- ]6 _+ P+ L5 D6 D2 G! ?
[   22.893560] ipv6: disagrees about version of symbol __skb_checksum_complete+ G- r: E. f: c
[   22.900598] ipv6: Unknown symbol __skb_checksum_complete (err -22)
. `: Q7 W* L+ I7 Y: t8 A[   22.907048] ipv6: disagrees about version of symbol register_sysctl_paths
$ H/ K2 R  i- j% o% W: O2 Z7 q- ?& f: Z
[   22.913984] ipv6: Unknown symbol register_sysctl_paths (err -22)
0 \+ z; x; Q/ \) {3 f  c[   22.920203] ipv6: disagrees about version of symbol xfrm_inner_extract_output( V3 C& M/ S! ]' Y
[   22.927486] ipv6: Unknown symbol xfrm_inner_extract_output (err -22)
+ O9 ]+ b6 y, c% y/ r[   22.934104] ipv6: disagrees about version of symbol skb_free_datagram_locked
# c# F3 p8 ?8 N3 i[   22.941222] ipv6: Unknown symbol skb_free_datagram_locked (err -22)! [+ c# `' s. d6 c8 i& S) T: l1 w
[   22.947739] ipv6: disagrees about version of symbol sock_i_uid" x1 E. c% v( y

; z2 K/ Y6 b. {: x+ I1 @! }/ u# x就会出现这个问题,请问如何解决0 k, C- J' [+ S0 x5 [" |

6 Z$ t5 V- T9 C
作者: teddy    时间: 2014-11-24 22:01
请问您是出了什么问题了,这里的信息没看到时跟您的ax88796b相关的错误。
- [# O* Y6 C% V8 T" t  R0 V
作者: zhaohui293    时间: 2014-11-25 20:34
本帖最后由 zhaohui293 于 2014-11-25 20:36 编辑 ! o2 G+ R: s  C1 G
; }( d% ?- a8 C+ _! N( h
我添加了ax88796b的板级驱动,就出现上面的情况,没有添加的时候编译内核不会出现ipv6的问题。
: R4 e+ g% n2 _) e! }5 _2 o( F, a% X; w# i- M$ ~

作者: teddy    时间: 2014-11-27 10:15
ipv6: Unknown symbol inet_recvmsg (err -22)* 这个可能是因为,你的内核配置,会把ipv6的编译配置给关闭了,导致ipv6部分代码没有编译进内核。. i6 ~8 ^  N- f( X. E' A# G: @5 E

作者: zhaohui293    时间: 2014-11-27 11:25
我应该如何做?
, u; g3 R( K( E1 t+ Y




欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) Powered by Discuz! X3.4