嵌入式开发者社区
标题:
关于ax88796b的板级驱动
[打印本页]
作者:
zhaohui293
时间:
2014-11-21 09:56
标题:
关于ax88796b的板级驱动
我在board-da850-evm.c文件增加ax88796b的板级驱动:static struct resource ax88796b_resources[] = {
1 n' N, D' o4 j$ W5 B1 d L
[0] = {
) ]/ p$ _. a+ [+ M
.start = DA8XX_AEMIF_CS5_BASE,
9 P# F- M2 h/ c) o9 l7 Q
.end = DA8XX_AEMIF_CS5_BASE + SZ_32K - 1,
6 u& k1 h6 Q, T( B& y, p4 {' J+ a
.flags = IORESOURCE_MEM,
# D# R3 ^2 U3 q" R0 ~) ^9 w! r3 D
},
* D, m$ A% c! {% I2 n% o
[1] = {
8 H1 x# a0 J& k" [$ X
.start = -1,
) Q K e" U# E5 N' g
.end = -1,
: A' G$ F9 N$ b# T- a
.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
! G2 E7 b9 W# c: C$ k: ~
},
2 a( J* y! X( j1 a+ h
' S# o9 T% s/ Z& r5 Z
};
1 I! D8 C1 q# o0 U9 q3 _
7 Z# U8 F8 N L! {+ L) ~
static struct platform_device ax88796b_device = {
" o% C1 B) L; }. ]* W
.name = "ax88796b",
' s6 _- ?# [5 i0 V8 f
.dev = {
" e2 s$ ]4 r- \$ t. {# A
& } t& V# [5 c
},
+ V( h4 T5 [0 C: K
.num_resources = ARRAY_SIZE(ax88796b_resources),
. ?$ N- N: j+ \3 V$ a
.resource = ax88796b_resources,
7 z/ ~5 [2 U. i5 r ^7 n
};
% P3 P5 [( F% `
1 p. H. L+ i" a% m0 Z t
static inline void da850_evm_setup_ax88796b(void)
( x; ~0 |$ ?7 F# b& ~
{
' L) m. U% P$ Z: E' F9 r
void __iomem *aemif_addr;
8 H/ K2 x1 _* P) y9 g8 v* [7 U! t0 E
int ret = 0;
& e. |9 t* A. ]. c- n* c( B3 s
9 @4 Z0 C1 Y: \, K0 n
ret = davinci_cfg_reg_list(da850_evm_ax88796b_pins);
, `# m: h/ L2 `% F+ o# K$ s2 F
7 q5 X8 h4 J$ d: f6 [ X# o5 e
if(ret)
+ J, z6 m, T# U" \8 {
pr_warning("da850_evm_init: ax88796b mux setup failde:"
) j# r9 I4 G2 B+ D
"%d\n", ret);
# ^ U; g8 n2 x, a' N
aemif_addr = ioremap(DA8XX_AEMIF_CTL_BASE, SZ_32K);
( G. h0 _ y& j+ l' D
- H }) }: ^# B# b3 `, B
writel(readl(aemif_addr + DA8XX_AEMIF_CE5CFG_OFFSET) |
% I+ q, I X1 I- H2 T8 L
DA8XX_AEMIF_ASIZE_16BIT,
! D$ J }. ?( |6 a) F
aemif_addr + DA8XX_AEMIF_CE5CFG_OFFSET);
; F' ?. Q( [( u6 P$ Q7 R
iounmap(aemif_addr);
* z' |( m3 L7 }; u
ax88796b_resources[1].start = gpio_to_irq(DA850_AX88796B_IRQ);
. G8 ^$ j/ b7 o7 ~3 \2 C. r6 O1 |' z
ax88796b_resources[1].end = ax88796b_resources[1].start;
4 H+ l M0 w: J0 p+ ?
! d! d+ E2 S; q/ z- {: s; `
platform_device_register(&ax88796b_device);
* }. R3 d6 M$ o
( Z, Q4 Q1 S# p/ z
}
: ^6 t: A6 W$ |$ x( q
$ Z% k$ ~3 H3 z7 F
和相关的引脚配置
: j( z% z, |9 @; p
编译通过,
: y! L; I1 t4 ]
在板子内核启动过程中:
: f! L2 }' Y5 x
INIT: version 2.88 booting
1 ?/ N* Z. k8 r
Starting udev
. [: O" b, x5 X3 W0 C# ?
Starting Bootlog daemon: bootlogd.
_' D, O5 a4 v1 o; E2 P1 K4 u) z
ALSA: Restoring mixer settings...
$ M8 W& U2 `5 Q: \
/usr/sbin/alsactl: load_state:1686: No soundcards found...
$ o$ n0 M) N4 o
Configuring network interfaces... [ 12.665617] davinci_mdio davinci_mdio.0: resetting idled controller
9 p1 n9 p4 m, \
[ 12.672854] net eth0: attached PHY driver [SMSC LAN8710/LAN8720] (mii_bus:phy_addr=davinci_mdio-0:00, id=7c0f1)
' K: E" N# H: c
udhcpc (v1.20.2) started
5 M- Z8 Q: ^- l2 c+ d# u! s6 L! ^
Sending discover...
$ b9 D) G3 |$ m; U
Sending discover...
- s- e; p- K' y1 R7 J: Z9 m
Sending discover...
' c- \% R% z% Y. `; H
No lease, failing
# j( }9 z3 x5 y. p3 ?; t& q" Q0 f- a: _0 d
done.
0 m0 j/ b- I6 g, D
Wed Nov 6 04:33:00 UTC 2013
1 h! b: m9 }7 w" o% @$ q% {( r7 @
INIT: Entering runlevel: 5
7 H7 C2 X% o5 X1 S* f
Starting system message bus: dbus.
8 H/ s! [9 d0 R' q7 d+ s
Starting Dropbear SSH server: [ 22.869096] ipv6: disagrees about version of symbol inet_recvmsg
' K+ Y9 e! m! J' ]- O
[ 22.875341] ipv6: Unknown symbol inet_recvmsg (err -22)
* ?- |, a; C1 H
[ 22.880894] ipv6: disagrees about version of symbol skb_free_datagram
* y1 b9 x2 O' U2 N2 g' K( h ~5 \( @
[ 22.887493] ipv6: Unknown symbol skb_free_datagram (err -22)
$ e1 ~: l- i/ x' i& B" U
[ 22.893560] ipv6: disagrees about version of symbol __skb_checksum_complete
, A0 S8 x. g5 y$ \! R3 W! h! }
[ 22.900598] ipv6: Unknown symbol __skb_checksum_complete (err -22)
. k/ i+ c. R! A
[ 22.907048] ipv6: disagrees about version of symbol register_sysctl_paths
3 T! Z' M$ i# b C# l
" q! p; q+ D# t
[ 22.913984] ipv6: Unknown symbol register_sysctl_paths (err -22)
& E' X1 M8 ^7 |+ E1 I
[ 22.920203] ipv6: disagrees about version of symbol xfrm_inner_extract_output
' f; J" w# [; M' l9 X: V: M9 @4 q
[ 22.927486] ipv6: Unknown symbol xfrm_inner_extract_output (err -22)
* {' X' L" D. }/ i
[ 22.934104] ipv6: disagrees about version of symbol skb_free_datagram_locked
& ~! X- T. s( R2 j0 `- m7 `, O
[ 22.941222] ipv6: Unknown symbol skb_free_datagram_locked (err -22)
; p7 j, w! H' P$ w/ |. u! F
[ 22.947739] ipv6: disagrees about version of symbol sock_i_uid
+ j* h a. l4 t0 o' o5 S/ L
& a# L/ \2 P6 ?- y$ b
就会出现这个问题,请问如何解决
- i: r# _" ?. O, M( t
! q9 c. N' H1 d: i) { I8 q+ S7 L
作者:
teddy
时间:
2014-11-24 22:01
请问您是出了什么问题了,这里的信息没看到时跟您的ax88796b相关的错误。
# o, }+ j+ C1 @) e3 T5 E" k9 r
作者:
zhaohui293
时间:
2014-11-25 20:34
本帖最后由 zhaohui293 于 2014-11-25 20:36 编辑
2 f& b! I8 p' y# ?& p" A- M, i
0 h- b- F) E" O4 D6 `4 B
我添加了ax88796b的板级驱动,就出现上面的情况,没有添加的时候编译内核不会出现ipv6的问题。
6 X) h- `2 Y8 {
2 [7 R3 Z% K! W9 V
作者:
teddy
时间:
2014-11-27 10:15
ipv6: Unknown symbol inet_recvmsg (err -22)* 这个可能是因为,你的内核配置,会把ipv6的编译配置给关闭了,导致ipv6部分代码没有编译进内核。
% ?: s9 `0 B7 d2 h* F& k6 S& T* @
作者:
zhaohui293
时间:
2014-11-27 11:25
我应该如何做?
4 Z0 T& E. r- R# o
欢迎光临 嵌入式开发者社区 (https://www.51ele.net/)
Powered by Discuz! X3.4