Message ID | 20221014102151.108539-6-p.rajanbabu@samsung.com |
---|---|
State | New |
Headers | show |
Series | [1/6] ASoC: samsung: i2s: TDM Support for CPU DAI driver | expand |
> -----Original Message----- > From: Krzysztof Kozlowski [mailto:krzysztof.kozlowski@linaro.org] > Sent: 16 October 2022 08:44 PM > To: Padmanabhan Rajanbabu <p.rajanbabu@samsung.com>; > lgirdwood@gmail.com; broonie@kernel.org; robh+dt@kernel.org; > krzysztof.kozlowski+dt@linaro.org; s.nawrocki@samsung.com; > perex@perex.cz; tiwai@suse.com; pankaj.dubey@samsung.com; > alim.akhtar@samsung.com; rcsekar@samsung.com; > aswani.reddy@samsung.com > Cc: alsa-devel@alsa-project.org; devicetree@vger.kernel.org; linux- > kernel@vger.kernel.org; linux-samsung-soc@vger.kernel.org > Subject: Re: [PATCH 5/6] arm64: dts: fsd: Add I2S DAI node for Tesla FSD > > On 14/10/2022 06:21, Padmanabhan Rajanbabu wrote: > > Add device tree node for I2S0 and I2S1 CPU DAI instances for Tesla FSD > > board > > > > Signed-off-by: Padmanabhan Rajanbabu <p.rajanbabu@samsung.com> > > --- > > arch/arm64/boot/dts/tesla/fsd-evb.dts | 8 +++++ > > arch/arm64/boot/dts/tesla/fsd-pinctrl.dtsi | 14 ++++++++ > > arch/arm64/boot/dts/tesla/fsd.dtsi | 38 ++++++++++++++++++++++ > > 3 files changed, 60 insertions(+) > > > > diff --git a/arch/arm64/boot/dts/tesla/fsd-evb.dts > > b/arch/arm64/boot/dts/tesla/fsd-evb.dts > > index 1db6ddf03f01..c0a4509499ab 100644 > > --- a/arch/arm64/boot/dts/tesla/fsd-evb.dts > > +++ b/arch/arm64/boot/dts/tesla/fsd-evb.dts > > @@ -41,3 +41,11 @@ > > &ufs { > > status = "okay"; > > }; > > + > > +&tdm_0 { > > Alphabetical order against other label-overrides. Okay > > > + status = "okay"; > > +}; > > + > > +&tdm_1 { > > + status = "okay"; > > +}; > > diff --git a/arch/arm64/boot/dts/tesla/fsd-pinctrl.dtsi > > b/arch/arm64/boot/dts/tesla/fsd-pinctrl.dtsi > > index e3852c946352..ff6f5d4b16dd 100644 > > --- a/arch/arm64/boot/dts/tesla/fsd-pinctrl.dtsi > > +++ b/arch/arm64/boot/dts/tesla/fsd-pinctrl.dtsi > > @@ -339,6 +339,20 @@ > > samsung,pin-pud = <FSD_PIN_PULL_UP>; > > samsung,pin-drv = <FSD_PIN_DRV_LV4>; > > }; > > + > > + i2s0_bus: i2s0-bus { > > Does not look like you tested the DTS against bindings. Please run `make > dtbs_check` (see Documentation/devicetree/bindings/writing-schema.rst > for instructions). I'll double check and run dtbs_check to see if I'm hitting any errors. > > > + samsung,pins = "gpd1-0", "gpd1-1", "gpd1-2", "gpd1-3", > "gpd1-4"; > > + samsung,pin-function = <FSD_PIN_FUNC_2>; > > + samsung,pin-pud = <FSD_PIN_PULL_DOWN>; > > + samsung,pin-drv = <FSD_PIN_DRV_LV4>; > > + }; > > + > > + i2s1_bus: i2s1-bus { > > + samsung,pins = "gpd2-0", "gpd2-1", "gpd2-2", "gpd2-3", > "gpd2-4"; > > + samsung,pin-function = <FSD_PIN_FUNC_2>; > > + samsung,pin-pud = <FSD_PIN_PULL_DOWN>; > > + samsung,pin-drv = <FSD_PIN_DRV_LV4>; > > + }; > > }; > > > > &pinctrl_pmu { > > diff --git a/arch/arm64/boot/dts/tesla/fsd.dtsi > > b/arch/arm64/boot/dts/tesla/fsd.dtsi > > index f35bc5a288c2..5decad45a1b6 100644 > > --- a/arch/arm64/boot/dts/tesla/fsd.dtsi > > +++ b/arch/arm64/boot/dts/tesla/fsd.dtsi > > @@ -32,6 +32,8 @@ > > spi0 = &spi_0; > > spi1 = &spi_1; > > spi2 = &spi_2; > > + tdm0 = &tdm_0; > > + tdm1 = &tdm_1; > > Why? Sorry, these aliases are not used right now. I'll remove it. > > > }; > > > > cpus { > > @@ -809,6 +811,42 @@ > > status = "disabled"; > > }; > > > > + tdm_0: tdm@140e0000 { > > Node names should be generic, so this looks like i2s. > https://protect2.fireeye.com/v1/url?k=2cfaa5af-4d874de8-2cfb2ee0- > 74fe485fff30-cb16acc0c0c574e9&q=1&e=fc8e3b54-a0ef-475e-a4f2- > 83626a86ac8a&u=https%3A%2F%2Fdevicetree- > specification.readthedocs.io%2Fen%2Flatest%2Fchapter2-devicetree- > basics.html%23generic-names-recommendation Thank you for the link. I could only find audio-controller in the list and not i2s. so I believe I can use audio-controller node name. Please correct me otherwise. > > > + compatible = "samsung,exynos7-i2s"; > > + reg = <0x0 0x140E0000 0x0 0x100>; > > + interrupts = <GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH>; > > + dmas = <&pdma1 14>, <&pdma1 13>, <&pdma1 12>; > > + dma-names = "tx", "rx", "tx-sec"; > > + #clock-cells = <1>; > > + #sound-dai-cells = <1>; > > + clocks = <&clock_peric PERIC_HCLK_TDM0>, > > + <&clock_peric PERIC_HCLK_TDM0>, > > + <&clock_peric PERIC_PCLK_TDM0>; > > + clock-names = "i2s_opclk0", "i2s_opclk1", "iis"; > > Does not look like you tested the DTS against bindings. Please run `make > dtbs_check` (see Documentation/devicetree/bindings/writing-schema.rst > for instructions). I'll double check and run dtbs_check to see if I'm hitting any errors. > > Best regards, > Krzysztof Thank you for reviewing the patch
> -----Original Message----- > From: Krzysztof Kozlowski [mailto:krzysztof.kozlowski@linaro.org] > Sent: 21 October 2022 06:32 PM > To: Padmanabhan Rajanbabu <p.rajanbabu@samsung.com>; > lgirdwood@gmail.com; broonie@kernel.org; robh+dt@kernel.org; > krzysztof.kozlowski+dt@linaro.org; s.nawrocki@samsung.com; > perex@perex.cz; tiwai@suse.com; pankaj.dubey@samsung.com; > alim.akhtar@samsung.com; rcsekar@samsung.com; > aswani.reddy@samsung.com > Cc: alsa-devel@alsa-project.org; devicetree@vger.kernel.org; linux- > kernel@vger.kernel.org; linux-samsung-soc@vger.kernel.org > Subject: Re: [PATCH 5/6] arm64: dts: fsd: Add I2S DAI node for Tesla FSD > > On 21/10/2022 04:49, Padmanabhan Rajanbabu wrote: > >>> > >>> cpus { > >>> @@ -809,6 +811,42 @@ > >>> status = "disabled"; > >>> }; > >>> > >>> + tdm_0: tdm@140e0000 { > >> > >> Node names should be generic, so this looks like i2s. > >> https://protect2.fireeye.com/v1/url?k=2cfaa5af-4d874de8-2cfb2ee0- > >> 74fe485fff30-cb16acc0c0c574e9&q=1&e=fc8e3b54-a0ef-475e-a4f2- > >> 83626a86ac8a&u=https%3A%2F%2Fdevicetree- > >> specification.readthedocs.io%2Fen%2Flatest%2Fchapter2-devicetree- > >> basics.html%23generic-names-recommendation > > > > Thank you for the link. I could only find audio-controller in the list > > and not i2s. so I believe I can use audio-controller node name. Please > > correct me otherwise. > > All I2S controllers use node name "i2s", so if this is I2S, then use "i2s". Okay, I'll ensure the next version will use "i2s" node name > > > Best regards, > Krzysztof
diff --git a/arch/arm64/boot/dts/tesla/fsd-evb.dts b/arch/arm64/boot/dts/tesla/fsd-evb.dts index 1db6ddf03f01..c0a4509499ab 100644 --- a/arch/arm64/boot/dts/tesla/fsd-evb.dts +++ b/arch/arm64/boot/dts/tesla/fsd-evb.dts @@ -41,3 +41,11 @@ &ufs { status = "okay"; }; + +&tdm_0 { + status = "okay"; +}; + +&tdm_1 { + status = "okay"; +}; diff --git a/arch/arm64/boot/dts/tesla/fsd-pinctrl.dtsi b/arch/arm64/boot/dts/tesla/fsd-pinctrl.dtsi index e3852c946352..ff6f5d4b16dd 100644 --- a/arch/arm64/boot/dts/tesla/fsd-pinctrl.dtsi +++ b/arch/arm64/boot/dts/tesla/fsd-pinctrl.dtsi @@ -339,6 +339,20 @@ samsung,pin-pud = <FSD_PIN_PULL_UP>; samsung,pin-drv = <FSD_PIN_DRV_LV4>; }; + + i2s0_bus: i2s0-bus { + samsung,pins = "gpd1-0", "gpd1-1", "gpd1-2", "gpd1-3", "gpd1-4"; + samsung,pin-function = <FSD_PIN_FUNC_2>; + samsung,pin-pud = <FSD_PIN_PULL_DOWN>; + samsung,pin-drv = <FSD_PIN_DRV_LV4>; + }; + + i2s1_bus: i2s1-bus { + samsung,pins = "gpd2-0", "gpd2-1", "gpd2-2", "gpd2-3", "gpd2-4"; + samsung,pin-function = <FSD_PIN_FUNC_2>; + samsung,pin-pud = <FSD_PIN_PULL_DOWN>; + samsung,pin-drv = <FSD_PIN_DRV_LV4>; + }; }; &pinctrl_pmu { diff --git a/arch/arm64/boot/dts/tesla/fsd.dtsi b/arch/arm64/boot/dts/tesla/fsd.dtsi index f35bc5a288c2..5decad45a1b6 100644 --- a/arch/arm64/boot/dts/tesla/fsd.dtsi +++ b/arch/arm64/boot/dts/tesla/fsd.dtsi @@ -32,6 +32,8 @@ spi0 = &spi_0; spi1 = &spi_1; spi2 = &spi_2; + tdm0 = &tdm_0; + tdm1 = &tdm_1; }; cpus { @@ -809,6 +811,42 @@ status = "disabled"; }; + tdm_0: tdm@140e0000 { + compatible = "samsung,exynos7-i2s"; + reg = <0x0 0x140E0000 0x0 0x100>; + interrupts = <GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH>; + dmas = <&pdma1 14>, <&pdma1 13>, <&pdma1 12>; + dma-names = "tx", "rx", "tx-sec"; + #clock-cells = <1>; + #sound-dai-cells = <1>; + clocks = <&clock_peric PERIC_HCLK_TDM0>, + <&clock_peric PERIC_HCLK_TDM0>, + <&clock_peric PERIC_PCLK_TDM0>; + clock-names = "i2s_opclk0", "i2s_opclk1", "iis"; + pinctrl-names = "default"; + pinctrl-0 = <&i2s0_bus>; + samsung,sec-dai-id = <0>; + status = "disabled"; + }; + + tdm_1: tdm@140f0000 { + compatible = "samsung,exynos7-i2s"; + reg = <0x0 0x140F0000 0x0 0x100>; + interrupts = <GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>; + dmas = <&pdma1 17>, <&pdma1 16>, <&pdma1 15>; + dma-names = "tx", "rx", "tx-sec"; + #clock-cells = <1>; + #sound-dai-cells = <1>; + clocks = <&clock_peric PERIC_HCLK_TDM1>, + <&clock_peric PERIC_HCLK_TDM1>, + <&clock_peric PERIC_PCLK_TDM1>; + clock-names = "i2s_opclk0", "i2s_opclk1", "iis"; + pinctrl-names = "default"; + pinctrl-0 = <&i2s1_bus>; + samsung,sec-dai-id = <1>; + status = "disabled"; + }; + timer@10040000 { compatible = "tesla,fsd-mct", "samsung,exynos4210-mct"; reg = <0x0 0x10040000 0x0 0x800>;
Add device tree node for I2S0 and I2S1 CPU DAI instances for Tesla FSD board Signed-off-by: Padmanabhan Rajanbabu <p.rajanbabu@samsung.com> --- arch/arm64/boot/dts/tesla/fsd-evb.dts | 8 +++++ arch/arm64/boot/dts/tesla/fsd-pinctrl.dtsi | 14 ++++++++ arch/arm64/boot/dts/tesla/fsd.dtsi | 38 ++++++++++++++++++++++ 3 files changed, 60 insertions(+)