• 周五. 5月 2nd, 2025

rk3308 — I2S TDM dts 配置

3月 12, 2020

关键词:rk3308; rockchip,rk3308-i2s-tdm; 

rk3308 — I2S TDM dts 配置

1、属性值配置:

- compatible: 设置成:
   - "rockchip,rk3308-i2s-tdm": for rk3308
- reg: 配置I2S/TDM的寄存器物理基地址,以及寄存器的空间大小。
- interrupts: 配置I2S/TDM的中断;
- dmas: 配置tx/rx DMA;
- dma-names: 配置DMA名称为"tx" 和 "rx".
- clocks: 配置I2S/TDM的时钟;
- clock-names: 配置时钟名称;
- rockchip,bclk-fs: 配置 bclk 频率;
- resets: 配置tx/rx的复位;
- reset-names: 配置tx/rx复位的名称;
- rockchip,cru: 指向cru;
- rockchip,clk-trcm: tx 和 rx lrck/bclk 使用配置.
   - 0: 使用tx_lrck/bclk 和 rx_lrck/bclk
   - 1: 只使用tx_lrck/bclk
   - 2: 只使用rx_lrck/bclk

2、以rk3308为例:

i2s_8ch_0: i2s@ff300000 {
	compatible = "rockchip,rk3308-i2s-tdm";
	reg = <0x0 0xff300000 0x0 0x1000>;
	interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
	clocks = <&cru SCLK_I2S0_8CH_TX>, <&cru SCLK_I2S0_8CH_RX>, <&cru HCLK_I2S0_8CH>;
	clock-names = "mclk_tx", "mclk_rx", "hclk";
	dmas = <&dmac1 0>, <&dmac1 1>;
	dma-names = "tx", "rx";
	resets = <&cru SRST_I2S0_8CH_TX_M>, <&cru SRST_I2S0_8CH_RX_M>;
	reset-names = "tx-m", "rx-m";
	rockchip,cru = <&cru>;
	rockchip,clk-trcm = <1>;
	pinctrl-names = "default";
	pinctrl-0 = <&i2s_8ch_0_sclktx
		     &i2s_8ch_0_sclkrx
		     &i2s_8ch_0_lrcktx
		     &i2s_8ch_0_lrckrx
		     &i2s_8ch_0_sdi0
		     &i2s_8ch_0_sdi1
		     &i2s_8ch_0_sdi2
		     &i2s_8ch_0_sdi3
		     &i2s_8ch_0_sdo0
		     &i2s_8ch_0_sdo1
		     &i2s_8ch_0_sdo2
		     &i2s_8ch_0_sdo3
		     &i2s_8ch_0_mclk>;
	status = "okay";
};