Skip to content

Commit 9c3bce6

Browse files
committed
add devicetree describe for each part
1 parent aab9454 commit 9c3bce6

File tree

6 files changed

+83
-3
lines changed

6 files changed

+83
-3
lines changed

debug/codec/I2S_DMA.png

17.1 KB
Loading

debug/codec/I2S_INT.png

91.9 KB
Loading

debug/codec/I2S_MAP.png

40.6 KB
Loading

debug/codec/I2S_REG.png

136 KB
Loading

debug/codec/README.md

Lines changed: 67 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,72 @@
11
# Intro
22

3-
- es8323.c codec驱动
4-
- rk_es8323.c rockchip平台machine驱动
5-
- rk_i2s.c rockchip平台platform驱动
3+
## es8323.c codec驱动
4+
5+
### DeviceTree Describe
6+
7+
&i2c2 {
8+
es8323: es8323@10 {
9+
compatible = "es8323";
10+
reg = <0x10>;
11+
spk-con-gpio = <&gpio7 GPIO_B7 GPIO_ACTIVE_HIGH>;
12+
hp-con-gpio = <&gpio0 GPIO_B5 GPIO_ACTIVE_HIGH>;
13+
hp-det-gpio = <&gpio7 GPIO_A4 GPIO_ACTIVE_HIGH>;
14+
hub_rest = <&gpio0 GPIO_B6 GPIO_ACTIVE_LOW>;
15+
hub_en = <&gpio7 GPIO_B2 GPIO_ACTIVE_HIGH>;
16+
};
17+
};
18+
19+
## rk_es8323.c rockchip平台machine驱动
20+
21+
### DeviceTree Describe
22+
23+
/ {
24+
rockchip-es8323 {
25+
compatible = "rockchip-es8323";
26+
dais {
27+
dai0 {
28+
audio-codec = <&es8323>;
29+
audio-controller = <&i2s>;
30+
format = "i2s";
31+
};
32+
};
33+
};
34+
};
35+
36+
## rk_i2s.c rockchip平台platform驱动
37+
38+
### DeviceTree Describe
39+
40+
i2s: rockchip-i2s@0xff890000 {
41+
compatible = "rockchip-i2s";
42+
reg = <0xff890000 0x10000>;
43+
i2s-id = <0>;
44+
clocks = <&clk_i2s>, <&clk_i2s_out>, <&clk_gates10 8>;
45+
clock-names = "i2s_clk","i2s_mclk", "i2s_hclk";
46+
interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
47+
dmas = <&pdma0 0>, <&pdma0 1>;
48+
dma-names = "tx", "rx";
49+
pinctrl-names = "default", "sleep";
50+
pinctrl-0 = <&i2s_mclk &i2s_sclk &i2s_lrckrx &i2s_lrcktx &i2s_sdi &i2s_sdo0 &i2s_sdo1 &i2s_sdo2 &i2s_sdo3>;
51+
pinctrl-1 = <&i2s_gpio>;
52+
};
53+
54+
55+
### 从datasheet里Address Mapping可以找到I2S控制器被映射到的位置
56+
57+
![I2S MAP](./I2S_MAP.png)
58+
59+
### 中断号(SPI[85])
60+
61+
![I2S INT](./I2S_INT.png)
62+
63+
### DMA编号(tx[0], rx[1])
64+
65+
![I2S DMA](./I2S_DMA.png)
66+
67+
### I2S寄存器信息,32bit,步进4
68+
69+
![I2S REG](./I2S_REG.png)
670

771
# Debug
872

debug/codec/rk_i2s.c

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,22 @@
1515

1616
#include "rk_i2s.h"
1717

18+
/* I2S DeviceTree Describe */
19+
#if 0
20+
i2s: rockchip-i2s@0xff890000 {
21+
compatible = "rockchip-i2s";
22+
reg = <0xff890000 0x10000>;
23+
i2s-id = <0>;
24+
clocks = <&clk_i2s>, <&clk_i2s_out>, <&clk_gates10 8>;
25+
clock-names = "i2s_clk","i2s_mclk", "i2s_hclk";
26+
interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
27+
dmas = <&pdma0 0>, <&pdma0 1>;
28+
dma-names = "tx", "rx";
29+
pinctrl-names = "default", "sleep";
30+
pinctrl-0 = <&i2s_mclk &i2s_sclk &i2s_lrckrx &i2s_lrcktx &i2s_sdi &i2s_sdo0 &i2s_sdo1 &i2s_sdo2 &i2s_sdo3>;
31+
pinctrl-1 = <&i2s_gpio>;
32+
};
33+
#endif
1834
static DEFINE_SPINLOCK(lock);
1935

2036
static const struct of_device_id rockchip_i2s_match[] = {

0 commit comments

Comments
 (0)