All of lore.kernel.org
 help / color / mirror / Atom feed
From: Krzysztof Kozlowski <k.kozlowski@samsung.com>
To: Sylwester Nawrocki <s.nawrocki@samsung.com>
Cc: kgene@kernel.org, b.zolnierkie@samsung.com,
	linux-samsung-soc@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH] ARM: dts: exynos: Add entries for sound support on Odroid-XU board
Date: Tue, 30 Aug 2016 08:42:15 +0200	[thread overview]
Message-ID: <05c45777-732b-3701-36dc-2448003acd50@samsung.com> (raw)
In-Reply-To: <1471883654-2113-1-git-send-email-s.nawrocki@samsung.com>

On 08/22/2016 06:34 PM, Sylwester Nawrocki wrote:
> This patch adds device nodes for the AUDSS clock controller,
> peripheral DMA 0/1 controllers and the Audio Subsystem I2S controller.
> These entries are required for sound support on Odroid-XU board.
> 
> Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
> ---
> This patch depends on a patch adding clock ID macro definitions.
> I'm going to provide a topic branch containing required changes.
> ---
>  arch/arm/boot/dts/exynos5410-odroidxu.dts | 70 +++++++++++++++++++++++++++++++
>  arch/arm/boot/dts/exynos5410-pinctrl.dtsi |  9 ++++
>  arch/arm/boot/dts/exynos5410.dtsi         | 59 ++++++++++++++++++++++++++
>  3 files changed, 138 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/exynos5410-odroidxu.dts b/arch/arm/boot/dts/exynos5410-odroidxu.dts
> index d949931..91dd8e7 100644
> --- a/arch/arm/boot/dts/exynos5410-odroidxu.dts
> +++ b/arch/arm/boot/dts/exynos5410-odroidxu.dts
> @@ -15,6 +15,7 @@
>  #include <dt-bindings/clock/maxim,max77802.h>
>  #include <dt-bindings/gpio/gpio.h>
>  #include <dt-bindings/interrupt-controller/irq.h>
> +#include <dt-bindings/sound/samsung-i2s.h>
>  #include "exynos54xx-odroidxu-leds.dtsi"
>  
>  / {
> @@ -56,6 +57,62 @@
>  		compatible = "samsung,secure-firmware";
>  		reg = <0x02073000 0x1000>;
>  	};
> +
> +	sound: sound {
> +		compatible = "simple-audio-card";
> +
> +		simple-audio-card,name = "Odroid-XU";

Except the name and assigned clocks, this looks the same as
exynos5422-odroidxu3-audio.dtsi. How about combining them? The name
could be the same and the assigned-clocks maybe have to be applied to
XU3 as well?


> +		simple-audio-card,widgets =
> +			"Headphone", "Headphone Jack",
> +			"Speakers", "Speakers";
> +		simple-audio-card,routing =
> +			"Headphone Jack", "HPL",
> +			"Headphone Jack", "HPR",
> +			"Headphone Jack", "MICBIAS",
> +			"IN1", "Headphone Jack",
> +			"Speakers", "SPKL",
> +			"Speakers", "SPKR";
> +
> +		simple-audio-card,format = "i2s";
> +		simple-audio-card,bitclock-master = <&link0_codec>;
> +		simple-audio-card,frame-master = <&link0_codec>;
> +
> +		assigned-clocks = <&clock_audss EXYNOS_MOUT_AUDSS>,
> +				<&clock_audss EXYNOS_MOUT_I2S>,
> +				<&clock_audss EXYNOS_DOUT_SRP>,
> +				<&clock_audss EXYNOS_DOUT_AUD_BUS>;
> +
> +		assigned-clock-parents = <&clock CLK_FOUT_EPLL>,
> +				<&clock_audss EXYNOS_MOUT_AUDSS>;
> +
> +		assigned-clock-rates =  <0>,
> +					<0>,
> +					<96000000>,
> +					<19200000>;
> +
> +		simple-audio-card,cpu {
> +			sound-dai = <&audi2s0 0>;
> +			system-clock-frequency = <19200000>;
> +		};
> +
> +		link0_codec: simple-audio-card,codec {
> +			sound-dai = <&max98090>;
> +			clocks = <&audi2s0 CLK_I2S_CDCLK>;
> +		};
> +	};
> +};
> +
> +&audi2s0 {
> +	status = "okay";
> +};
> +
> +&clock {
> +       clocks = <&fin_pll>;

I dig into it and I have some questions:
1. Missing clock-names?
2. What code parses it?
3. Don't we need it also for other SoC/boards?

> +};
> +
> +&clock_audss {
> +	assigned-clocks = <&clock CLK_FOUT_EPLL>;
> +	assigned-clock-rates = <192000000>;
>  };
>  
>  &cpu0_thermal {
> @@ -439,6 +496,19 @@
>  	};
>  };
>  
> +&i2c_1 {
> +	status = "okay";
> +	max98090: max98090@10 {
> +		compatible = "maxim,max98090";
> +		reg = <0x10>;
> +		interrupt-parent = <&gpj3>;
> +		interrupts = <0 0>;
IRQ_TYPE_NONE
> +		clocks = <&audi2s0 CLK_I2S_CDCLK>;
> +		clock-names = "mclk";
> +		#sound-dai-cells = <0>;
> +	};
> +};
> +
>  &mmc_0 {
>  	status = "okay";
>  	mmc-pwrseq = <&emmc_pwrseq>;
> diff --git a/arch/arm/boot/dts/exynos5410-pinctrl.dtsi b/arch/arm/boot/dts/exynos5410-pinctrl.dtsi
> index b58a0f2..31f08a3 100644
> --- a/arch/arm/boot/dts/exynos5410-pinctrl.dtsi
> +++ b/arch/arm/boot/dts/exynos5410-pinctrl.dtsi
> @@ -613,4 +613,13 @@
>  		interrupt-controller;
>  		#interrupt-cells = <2>;
>  	};
> +
> +	audi2s0_bus: audi2s0-bus {
> +		samsung,pins = "gpz-0", "gpz-1", "gpz-2", "gpz-3",
> +				"gpz-4";
> +		samsung,pin-function = <2>;
> +		samsung,pin-pud = <0>;
> +		samsung,pin-drv = <0>;
> +	};
> +
>  };
> diff --git a/arch/arm/boot/dts/exynos5410.dtsi b/arch/arm/boot/dts/exynos5410.dtsi
> index 137f484..7a4cc0f 100644
> --- a/arch/arm/boot/dts/exynos5410.dtsi
> +++ b/arch/arm/boot/dts/exynos5410.dtsi
> @@ -16,6 +16,7 @@
>  #include "exynos54xx.dtsi"
>  #include "exynos-syscon-restart.dtsi"
>  #include <dt-bindings/clock/exynos5410.h>
> +#include <dt-bindings/clock/exynos-audss-clk.h>
>  #include <dt-bindings/interrupt-controller/arm-gic.h>
>  
>  / {
> @@ -82,6 +83,14 @@
>  			#clock-cells = <1>;
>  		};
>  
> +		clock_audss: audss-clock-controller@3810000 {
> +			compatible = "samsung,exynos5410-audss-clock";
> +			reg = <0x03810000 0x0C>;
> +			#clock-cells = <1>;
> +			clocks = <&fin_pll>, <&clock CLK_FOUT_EPLL>;
> +			clock-names = "pll_ref", "pll_in";
> +		};
> +
>  		tmu_cpu0: tmu@10060000 {
>  			compatible = "samsung,exynos5420-tmu";
>  			reg = <0x10060000 0x100>;
> @@ -183,6 +192,56 @@
>  			reg = <0x03860000 0x1000>;
>  			interrupts = <0 47 0>;
>  		};
> +
> +		amba {
> +			#address-cells = <1>;
> +			#size-cells = <1>;
> +			compatible = "simple-bus";
> +			interrupt-parent = <&gic>;
> +			ranges;
> +
> +			pdma0: pdma@12680000 {
> +				compatible = "arm,pl330", "arm,primecell";
> +				reg = <0x121A0000 0x1000>;
> +				interrupts = <0 34 0>;

Could you switch to symbols for IRQ entry? So that would be GIC_SPI and
TYPE_NONE.

> +				clocks = <&clock CLK_PDMA0>;
> +				clock-names = "apb_pclk";
> +				#dma-cells = <1>;
> +				#dma-channels = <8>;
> +				#dma-requests = <32>;
> +			};
> +
> +			pdma1: pdma@12690000 {
> +				compatible = "arm,pl330", "arm,primecell";
> +				reg = <0x121B0000 0x1000>;
> +				interrupts = <0 35 0>;

Ditto

Best regards,
Krzysztof

> +				clocks = <&clock CLK_PDMA1>;
> +				clock-names = "apb_pclk";
> +				#dma-cells = <1>;
> +				#dma-channels = <8>;
> +				#dma-requests = <32>;
> +			};
> +		};
> +
> +		audi2s0: i2s@03830000 {
> +			compatible = "samsung,exynos5420-i2s";
> +			reg = <0x03830000 0x100>;
> +			dmas = <&pdma0 10
> +				&pdma0 9
> +				&pdma0 8>;
> +			dma-names = "tx", "rx", "tx-sec";
> +			clocks = <&clock_audss EXYNOS_I2S_BUS>,
> +				<&clock_audss EXYNOS_I2S_BUS>,
> +				<&clock_audss EXYNOS_SCLK_I2S>;
> +			clock-names = "iis", "i2s_opclk0", "i2s_opclk1";
> +			#clock-cells = <1>;
> +			clock-output-names = "i2s_cdclk0";
> +			#sound-dai-cells = <1>;
> +			samsung,idma-addr = <0x03000000>;
> +			pinctrl-names = "default";
> +			pinctrl-0 = <&audi2s0_bus>;
> +			status = "disabled";
> +		};
>  	};
>  
>  	thermal-zones {
> 

WARNING: multiple messages have this Message-ID (diff)
From: k.kozlowski@samsung.com (Krzysztof Kozlowski)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] ARM: dts: exynos: Add entries for sound support on Odroid-XU board
Date: Tue, 30 Aug 2016 08:42:15 +0200	[thread overview]
Message-ID: <05c45777-732b-3701-36dc-2448003acd50@samsung.com> (raw)
In-Reply-To: <1471883654-2113-1-git-send-email-s.nawrocki@samsung.com>

On 08/22/2016 06:34 PM, Sylwester Nawrocki wrote:
> This patch adds device nodes for the AUDSS clock controller,
> peripheral DMA 0/1 controllers and the Audio Subsystem I2S controller.
> These entries are required for sound support on Odroid-XU board.
> 
> Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
> ---
> This patch depends on a patch adding clock ID macro definitions.
> I'm going to provide a topic branch containing required changes.
> ---
>  arch/arm/boot/dts/exynos5410-odroidxu.dts | 70 +++++++++++++++++++++++++++++++
>  arch/arm/boot/dts/exynos5410-pinctrl.dtsi |  9 ++++
>  arch/arm/boot/dts/exynos5410.dtsi         | 59 ++++++++++++++++++++++++++
>  3 files changed, 138 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/exynos5410-odroidxu.dts b/arch/arm/boot/dts/exynos5410-odroidxu.dts
> index d949931..91dd8e7 100644
> --- a/arch/arm/boot/dts/exynos5410-odroidxu.dts
> +++ b/arch/arm/boot/dts/exynos5410-odroidxu.dts
> @@ -15,6 +15,7 @@
>  #include <dt-bindings/clock/maxim,max77802.h>
>  #include <dt-bindings/gpio/gpio.h>
>  #include <dt-bindings/interrupt-controller/irq.h>
> +#include <dt-bindings/sound/samsung-i2s.h>
>  #include "exynos54xx-odroidxu-leds.dtsi"
>  
>  / {
> @@ -56,6 +57,62 @@
>  		compatible = "samsung,secure-firmware";
>  		reg = <0x02073000 0x1000>;
>  	};
> +
> +	sound: sound {
> +		compatible = "simple-audio-card";
> +
> +		simple-audio-card,name = "Odroid-XU";

Except the name and assigned clocks, this looks the same as
exynos5422-odroidxu3-audio.dtsi. How about combining them? The name
could be the same and the assigned-clocks maybe have to be applied to
XU3 as well?


> +		simple-audio-card,widgets =
> +			"Headphone", "Headphone Jack",
> +			"Speakers", "Speakers";
> +		simple-audio-card,routing =
> +			"Headphone Jack", "HPL",
> +			"Headphone Jack", "HPR",
> +			"Headphone Jack", "MICBIAS",
> +			"IN1", "Headphone Jack",
> +			"Speakers", "SPKL",
> +			"Speakers", "SPKR";
> +
> +		simple-audio-card,format = "i2s";
> +		simple-audio-card,bitclock-master = <&link0_codec>;
> +		simple-audio-card,frame-master = <&link0_codec>;
> +
> +		assigned-clocks = <&clock_audss EXYNOS_MOUT_AUDSS>,
> +				<&clock_audss EXYNOS_MOUT_I2S>,
> +				<&clock_audss EXYNOS_DOUT_SRP>,
> +				<&clock_audss EXYNOS_DOUT_AUD_BUS>;
> +
> +		assigned-clock-parents = <&clock CLK_FOUT_EPLL>,
> +				<&clock_audss EXYNOS_MOUT_AUDSS>;
> +
> +		assigned-clock-rates =  <0>,
> +					<0>,
> +					<96000000>,
> +					<19200000>;
> +
> +		simple-audio-card,cpu {
> +			sound-dai = <&audi2s0 0>;
> +			system-clock-frequency = <19200000>;
> +		};
> +
> +		link0_codec: simple-audio-card,codec {
> +			sound-dai = <&max98090>;
> +			clocks = <&audi2s0 CLK_I2S_CDCLK>;
> +		};
> +	};
> +};
> +
> +&audi2s0 {
> +	status = "okay";
> +};
> +
> +&clock {
> +       clocks = <&fin_pll>;

I dig into it and I have some questions:
1. Missing clock-names?
2. What code parses it?
3. Don't we need it also for other SoC/boards?

> +};
> +
> +&clock_audss {
> +	assigned-clocks = <&clock CLK_FOUT_EPLL>;
> +	assigned-clock-rates = <192000000>;
>  };
>  
>  &cpu0_thermal {
> @@ -439,6 +496,19 @@
>  	};
>  };
>  
> +&i2c_1 {
> +	status = "okay";
> +	max98090: max98090 at 10 {
> +		compatible = "maxim,max98090";
> +		reg = <0x10>;
> +		interrupt-parent = <&gpj3>;
> +		interrupts = <0 0>;
IRQ_TYPE_NONE
> +		clocks = <&audi2s0 CLK_I2S_CDCLK>;
> +		clock-names = "mclk";
> +		#sound-dai-cells = <0>;
> +	};
> +};
> +
>  &mmc_0 {
>  	status = "okay";
>  	mmc-pwrseq = <&emmc_pwrseq>;
> diff --git a/arch/arm/boot/dts/exynos5410-pinctrl.dtsi b/arch/arm/boot/dts/exynos5410-pinctrl.dtsi
> index b58a0f2..31f08a3 100644
> --- a/arch/arm/boot/dts/exynos5410-pinctrl.dtsi
> +++ b/arch/arm/boot/dts/exynos5410-pinctrl.dtsi
> @@ -613,4 +613,13 @@
>  		interrupt-controller;
>  		#interrupt-cells = <2>;
>  	};
> +
> +	audi2s0_bus: audi2s0-bus {
> +		samsung,pins = "gpz-0", "gpz-1", "gpz-2", "gpz-3",
> +				"gpz-4";
> +		samsung,pin-function = <2>;
> +		samsung,pin-pud = <0>;
> +		samsung,pin-drv = <0>;
> +	};
> +
>  };
> diff --git a/arch/arm/boot/dts/exynos5410.dtsi b/arch/arm/boot/dts/exynos5410.dtsi
> index 137f484..7a4cc0f 100644
> --- a/arch/arm/boot/dts/exynos5410.dtsi
> +++ b/arch/arm/boot/dts/exynos5410.dtsi
> @@ -16,6 +16,7 @@
>  #include "exynos54xx.dtsi"
>  #include "exynos-syscon-restart.dtsi"
>  #include <dt-bindings/clock/exynos5410.h>
> +#include <dt-bindings/clock/exynos-audss-clk.h>
>  #include <dt-bindings/interrupt-controller/arm-gic.h>
>  
>  / {
> @@ -82,6 +83,14 @@
>  			#clock-cells = <1>;
>  		};
>  
> +		clock_audss: audss-clock-controller at 3810000 {
> +			compatible = "samsung,exynos5410-audss-clock";
> +			reg = <0x03810000 0x0C>;
> +			#clock-cells = <1>;
> +			clocks = <&fin_pll>, <&clock CLK_FOUT_EPLL>;
> +			clock-names = "pll_ref", "pll_in";
> +		};
> +
>  		tmu_cpu0: tmu at 10060000 {
>  			compatible = "samsung,exynos5420-tmu";
>  			reg = <0x10060000 0x100>;
> @@ -183,6 +192,56 @@
>  			reg = <0x03860000 0x1000>;
>  			interrupts = <0 47 0>;
>  		};
> +
> +		amba {
> +			#address-cells = <1>;
> +			#size-cells = <1>;
> +			compatible = "simple-bus";
> +			interrupt-parent = <&gic>;
> +			ranges;
> +
> +			pdma0: pdma at 12680000 {
> +				compatible = "arm,pl330", "arm,primecell";
> +				reg = <0x121A0000 0x1000>;
> +				interrupts = <0 34 0>;

Could you switch to symbols for IRQ entry? So that would be GIC_SPI and
TYPE_NONE.

> +				clocks = <&clock CLK_PDMA0>;
> +				clock-names = "apb_pclk";
> +				#dma-cells = <1>;
> +				#dma-channels = <8>;
> +				#dma-requests = <32>;
> +			};
> +
> +			pdma1: pdma at 12690000 {
> +				compatible = "arm,pl330", "arm,primecell";
> +				reg = <0x121B0000 0x1000>;
> +				interrupts = <0 35 0>;

Ditto

Best regards,
Krzysztof

> +				clocks = <&clock CLK_PDMA1>;
> +				clock-names = "apb_pclk";
> +				#dma-cells = <1>;
> +				#dma-channels = <8>;
> +				#dma-requests = <32>;
> +			};
> +		};
> +
> +		audi2s0: i2s at 03830000 {
> +			compatible = "samsung,exynos5420-i2s";
> +			reg = <0x03830000 0x100>;
> +			dmas = <&pdma0 10
> +				&pdma0 9
> +				&pdma0 8>;
> +			dma-names = "tx", "rx", "tx-sec";
> +			clocks = <&clock_audss EXYNOS_I2S_BUS>,
> +				<&clock_audss EXYNOS_I2S_BUS>,
> +				<&clock_audss EXYNOS_SCLK_I2S>;
> +			clock-names = "iis", "i2s_opclk0", "i2s_opclk1";
> +			#clock-cells = <1>;
> +			clock-output-names = "i2s_cdclk0";
> +			#sound-dai-cells = <1>;
> +			samsung,idma-addr = <0x03000000>;
> +			pinctrl-names = "default";
> +			pinctrl-0 = <&audi2s0_bus>;
> +			status = "disabled";
> +		};
>  	};
>  
>  	thermal-zones {
> 

  reply	other threads:[~2016-08-30  6:42 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-22 16:34 [PATCH] ARM: dts: exynos: Add entries for sound support on Odroid-XU board Sylwester Nawrocki
2016-08-22 16:34 ` Sylwester Nawrocki
2016-08-30  6:42 ` Krzysztof Kozlowski [this message]
2016-08-30  6:42   ` Krzysztof Kozlowski
2016-09-05 11:39   ` Sylwester Nawrocki
2016-09-05 11:39     ` Sylwester Nawrocki
2016-09-06 11:30   ` Sylwester Nawrocki
2016-09-06 11:30     ` Sylwester Nawrocki

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=05c45777-732b-3701-36dc-2448003acd50@samsung.com \
    --to=k.kozlowski@samsung.com \
    --cc=b.zolnierkie@samsung.com \
    --cc=kgene@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=s.nawrocki@samsung.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.