Re: [PATCH] dts: ls1021a: audio: Add dts nodes for audio on LS1021A

From: Shawn Guo
Date: Mon Jul 13 2015 - 10:19:51 EST


On Fri, Jul 03, 2015 at 11:58:32AM +0800, Alison Wang wrote:
> This patch adds dts nodes for audio on LS1021A.
>
> Signed-off-by: Alison Wang <alison.wang@xxxxxxxxxxxxx>
> ---
> arch/arm/boot/dts/ls1021a-qds.dts | 71 +++++++++++++++++++++++++++++++++++++++
> arch/arm/boot/dts/ls1021a-twr.dts | 63 ++++++++++++++++++++++++++++++++++
> arch/arm/boot/dts/ls1021a.dtsi | 14 ++++----
> 3 files changed, 142 insertions(+), 6 deletions(-)
>
> diff --git a/arch/arm/boot/dts/ls1021a-qds.dts b/arch/arm/boot/dts/ls1021a-qds.dts
> index f16a061..9533f1d 100644
> --- a/arch/arm/boot/dts/ls1021a-qds.dts
> +++ b/arch/arm/boot/dts/ls1021a-qds.dts
> @@ -58,6 +58,57 @@
> enet0_sgmii_phy = &sgmii_phy1c;
> enet1_sgmii_phy = &sgmii_phy1d;
> };
> +
> + clocks {
> + sys_mclk: clock {

The generic node name works only when there is a @unit-address after it.
Otherwise, when you have more clocks to add, they will have the same
node name.

But one of the device tree maintainer doesn't like the idea of "clocks"
container at all. So you may just want to put the node directly under
root with a unit node name, something like the following.

sys_mclk: clock-mclk {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <24576000>;
};

Shawn

> + compatible = "fixed-clock";
> + #clock-cells = <0>;
> + clock-frequency = <24576000>;
> + };
> + };
> +
> + regulators {
> + compatible = "simple-bus";
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + reg_3p3v: regulator@0 {
> + compatible = "regulator-fixed";
> + reg = <0>;
> + regulator-name = "3P3V";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-always-on;
> + };
> + };
> +
> + sound {
> + compatible = "simple-audio-card";
> + simple-audio-card,format = "i2s";
> + simple-audio-card,widgets =
> + "Microphone", "Microphone Jack",
> + "Headphone", "Headphone Jack",
> + "Speaker", "Speaker Ext",
> + "Line", "Line In Jack";
> + simple-audio-card,routing =
> + "MIC_IN", "Microphone Jack",
> + "Microphone Jack", "Mic Bias",
> + "LINE_IN", "Line In Jack",
> + "Headphone Jack", "HP_OUT",
> + "Speaker Ext", "LINE_OUT";
> +
> + simple-audio-card,cpu {
> + sound-dai = <&sai2>;
> + frame-master;
> + bitclock-master;
> + };
> +
> + simple-audio-card,codec {
> + sound-dai = <&codec>;
> + frame-master;
> + bitclock-master;
> + };
> + };
> };
>
> &dspi0 {
> @@ -99,6 +150,7 @@
> status = "okay";
>
> pca9547: mux@77 {
> + compatible = "nxp,pca9547";
> reg = <0x77>;
> #address-cells = <1>;
> #size-cells = <0>;
> @@ -153,6 +205,21 @@
> reg = <0x4c>;
> };
> };
> +
> + i2c@4 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + reg = <0x4>;
> +
> + codec: sgtl5000@2a {
> + #sound-dai-cells = <0>;
> + compatible = "fsl,sgtl5000";
> + reg = <0x2a>;
> + VDDA-supply = <&reg_3p3v>;
> + VDDIO-supply = <&reg_3p3v>;
> + clocks = <&sys_mclk 1>;
> + };
> + };
> };
> };
>
> @@ -251,6 +318,10 @@
> };
> };
>
> +&sai2 {
> + status = "okay";
> +};
> +
> &uart0 {
> status = "okay";
> };
> diff --git a/arch/arm/boot/dts/ls1021a-twr.dts b/arch/arm/boot/dts/ls1021a-twr.dts
> index 4b61766..a0d9ad6 100644
> --- a/arch/arm/boot/dts/ls1021a-twr.dts
> +++ b/arch/arm/boot/dts/ls1021a-twr.dts
> @@ -56,6 +56,57 @@
> enet0_sgmii_phy = &sgmii_phy2;
> enet1_sgmii_phy = &sgmii_phy0;
> };
> +
> + clocks {
> + sys_mclk: clock {
> + compatible = "fixed-clock";
> + #clock-cells = <0>;
> + clock-frequency = <24576000>;
> + };
> + };
> +
> + regulators {
> + compatible = "simple-bus";
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + reg_3p3v: regulator@0 {
> + compatible = "regulator-fixed";
> + reg = <0>;
> + regulator-name = "3P3V";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-always-on;
> + };
> + };
> +
> + sound {
> + compatible = "simple-audio-card";
> + simple-audio-card,format = "i2s";
> + simple-audio-card,widgets =
> + "Microphone", "Microphone Jack",
> + "Headphone", "Headphone Jack",
> + "Speaker", "Speaker Ext",
> + "Line", "Line In Jack";
> + simple-audio-card,routing =
> + "MIC_IN", "Microphone Jack",
> + "Microphone Jack", "Mic Bias",
> + "LINE_IN", "Line In Jack",
> + "Headphone Jack", "HP_OUT",
> + "Speaker Ext", "LINE_OUT";
> +
> + simple-audio-card,cpu {
> + sound-dai = <&sai1>;
> + frame-master;
> + bitclock-master;
> + };
> +
> + simple-audio-card,codec {
> + sound-dai = <&codec>;
> + frame-master;
> + bitclock-master;
> + };
> + };
> };
>
> &dspi1 {
> @@ -99,6 +150,14 @@
>
> &i2c1 {
> status = "okay";
> + codec: sgtl5000@a {
> + #sound-dai-cells = <0>;
> + compatible = "fsl,sgtl5000";
> + reg = <0x0a>;
> + VDDA-supply = <&reg_3p3v>;
> + VDDIO-supply = <&reg_3p3v>;
> + clocks = <&sys_mclk 1>;
> + };
> };
>
> &ifc {
> @@ -138,6 +197,10 @@
> };
> };
>
> +&sai1 {
> + status = "okay";
> +};
> +
> &uart0 {
> status = "okay";
> };
> diff --git a/arch/arm/boot/dts/ls1021a.dtsi b/arch/arm/boot/dts/ls1021a.dtsi
> index 6c41b10..4ad30d0 100644
> --- a/arch/arm/boot/dts/ls1021a.dtsi
> +++ b/arch/arm/boot/dts/ls1021a.dtsi
> @@ -345,28 +345,30 @@
> };
>
> sai1: sai@2b50000 {
> + #sound-dai-cells = <0>;
> compatible = "fsl,vf610-sai";
> reg = <0x0 0x2b50000 0x0 0x10000>;
> interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>;
> - clocks = <&platform_clk 1>;
> - clock-names = "sai";
> + clocks = <&platform_clk 1>, <&platform_clk 1>,
> + <&platform_clk 1>, <&platform_clk 1>;
> + clock-names = "bus", "mclk1", "mclk2", "mclk3";
> dma-names = "tx", "rx";
> dmas = <&edma0 1 47>,
> <&edma0 1 46>;
> - big-endian;
> status = "disabled";
> };
>
> sai2: sai@2b60000 {
> + #sound-dai-cells = <0>;
> compatible = "fsl,vf610-sai";
> reg = <0x0 0x2b60000 0x0 0x10000>;
> interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
> - clocks = <&platform_clk 1>;
> - clock-names = "sai";
> + clocks = <&platform_clk 1>, <&platform_clk 1>,
> + <&platform_clk 1>, <&platform_clk 1>;
> + clock-names = "bus", "mclk1", "mclk2", "mclk3";
> dma-names = "tx", "rx";
> dmas = <&edma0 1 45>,
> <&edma0 1 44>;
> - big-endian;
> status = "disabled";
> };
>
> --
> 2.1.0.27.g96db324
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/