diff mbox

[v3,4/4] ARM: dts: add initial MVF600 Tower board dts support

Message ID 1368684648-20826-5-git-send-email-b35083@freescale.com (mailing list archive)
State New, archived
Headers show

Commit Message

Lu Jingchang May 16, 2013, 6:10 a.m. UTC
Add initial MVF600 Tower board  support with uart, fec,
i2c, qspi, and sai enabled.

Signed-off-by: Xiaochun Li <b41219@freescale.com>
Signed-off-by: Jingchang Lu <b35083@freescale.com>
---
v3:
  split DTS support to SoC and board patches.
  sort node by alphabet order of labels.

 arch/arm/boot/dts/Makefile       |   3 +-
 arch/arm/boot/dts/mvf600-twr.dts | 108 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 110 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/boot/dts/mvf600-twr.dts

Comments

Shawn Guo May 19, 2013, 3:29 p.m. UTC | #1
On Thu, May 16, 2013 at 02:10:48PM +0800, Jingchang Lu wrote:
> Add initial MVF600 Tower board  support with uart, fec,
> i2c, qspi, and sai enabled.
> 
> Signed-off-by: Xiaochun Li <b41219@freescale.com>
> Signed-off-by: Jingchang Lu <b35083@freescale.com>
> ---
> v3:
>   split DTS support to SoC and board patches.
>   sort node by alphabet order of labels.
> 
>  arch/arm/boot/dts/Makefile       |   3 +-
>  arch/arm/boot/dts/mvf600-twr.dts | 108 +++++++++++++++++++++++++++++++++++++++
>  2 files changed, 110 insertions(+), 1 deletion(-)
>  create mode 100644 arch/arm/boot/dts/mvf600-twr.dts
> 
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index 87e603c..968164b 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -122,7 +122,8 @@ dtb-$(CONFIG_ARCH_MXC) += \
>  	imx6q-sabrelite.dtb \
>  	imx6q-sabresd.dtb \
>  	imx6q-sbc6x.dtb \
> -	imx6sl-evk.dtb
> +	imx6sl-evk.dtb \
> +	mvf600-twr.dtb
>  dtb-$(CONFIG_ARCH_MXS) += imx23-evk.dtb \
>  	imx23-olinuxino.dtb \
>  	imx23-stmp378x_devb.dtb \
> diff --git a/arch/arm/boot/dts/mvf600-twr.dts b/arch/arm/boot/dts/mvf600-twr.dts
> new file mode 100644
> index 0000000..fe2e0e6
> --- /dev/null
> +++ b/arch/arm/boot/dts/mvf600-twr.dts
> @@ -0,0 +1,108 @@
> +/*
> + * Copyright 2013 Freescale Semiconductor, Inc.
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License as published by
> + * the Free Software Foundation; either version 2 of the License, or
> + * (at your option) any later version.
> + */
> +
> +/dts-v1/;
> +#include "mvf600.dtsi"
> +
> +/ {
> +	model = "MVF600 Tower Board";
> +	compatible = "fsl,mvf600-twr", "fsl,mvf600";
> +
> +	chosen {
> +		bootargs = "console=ttyLP1,115200";
> +	};
> +
> +	memory {
> +		reg = <0x80000000 0x8000000>;
> +	};
> +
> +	clocks {
> +		audio_ext {
> +			compatible = "fixed-clock";
> +			clock-frequency = <24576000>;
> +		};
> +
> +		enet_ext {
> +			compatible = "fixed-clock";
> +			clock-frequency = <50000000>;
> +		};
> +	};
> +
> +	sound {
> +		compatible = "fsl,mvf600-audio-sgtl5000";
> +		model = "mvf600-sgtl5000";
> +		sai-controller = <&sai2>;
> +		audio-codec = <&codec>;
> +		audio-routing =
> +			"MIC_IN", "Mic Jack",
> +			"Mic Jack", "Mic Bias",
> +			"Headphone Jack", "HP_OUT";
> +	};

Has this been tested against mainline kernel?  If not, please remove it.

> +
> +};
> +
> +&fec0 {
> +	phy-mode = "rmii";
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_fec0_1>;
> +};
> +
> +&fec1 {
> +	phy-mode = "rmii";
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_fec1_1>;
> +};

For the peripherals where the availability can be a decision of board
designers, we generally disable them in <soc>.dtsi by default with
status = "disabled", and only enable them on boards where they are
available in <board>.dts with status = "okay".

One way to judge this type of peripherals could be seeing if they will
need to have their pins routed on boards to function.

> +
> +&i2c0 {
> +	status = "okay";

We generally put status at the end of property list of a node.

> +	clock-frequency = <100000>;
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_i2c0_1>;
> +
> +	codec: sgtl5000@0a {
> +		compatible = "fsl,sgtl5000";
> +		reg = <0x0a>;
> +		clocks = <&clks MVF600_CLK_SAI2>;

The sgtl5000 uses SAI2 clock?

> +	};
> +};

Is i2c-imx driver working for mvf600 right now?

> +
> +&qspi0 { /* QuadSPI0 */
> +	fsl,spi-num-chipselects = <1>;
> +	fsl,spi-flash-chipselects = <0>;
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_qspi0_1>;
> +	status = "okay";
> +
> +	flash: s25fl128s@0 {
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +		compatible = "spansion,s25fl128s";
> +		spi-max-frequency = <20000000>;
> +		reg = <0>;
> +		linux,modalias = "m25p80";
> +		modal = "s25fl128s";
> +		partition@0 {
> +			label = "s25fl128s";
> +			reg = <0x0 0x1000000>;
> +		};
> +	};
> +};

Do we have a QuadSPI driver on mainline kernel?  Please only add it when
it's been tested against mainline kernel.

> +
> +&sai2 {
> +	fsl,mode = "i2s-slave";
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_sai2_1>;
> +	status = "okay";
> +};

Ditto

Shawn

> +
> +&uart1 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_uart1_1>;
> +	status = "okay";
> +};
> -- 
> 1.8.0
> 
>
Lu Jingchang May 20, 2013, 5:01 a.m. UTC | #2
>> +
>> +	sound {
>> +		compatible = "fsl,mvf600-audio-sgtl5000";
>> +		model = "mvf600-sgtl5000";
>> +		sai-controller = <&sai2>;
>> +		audio-codec = <&codec>;
>> +		audio-routing =
>> +			"MIC_IN", "Mic Jack",
>> +			"Mic Jack", "Mic Bias",
>> +			"Headphone Jack", "HP_OUT";
>> +	};
>
>Has this been tested against mainline kernel?  If not, please remove it.
>
>> +	clock-frequency = <100000>;
>> +	pinctrl-names = "default";
>> +	pinctrl-0 = <&pinctrl_i2c0_1>;
>> +
>> +	codec: sgtl5000@0a {
>> +		compatible = "fsl,sgtl5000";
>> +		reg = <0x0a>;
>> +		clocks = <&clks MVF600_CLK_SAI2>;
>
>The sgtl5000 uses SAI2 clock?
[Lu Jingchang-B35083] 
  Yes, the sgtl5000 uses the SAI2 clock on MVF600 Tower board. Thanks!
>
>> +	};
>> +};
>
>Is i2c-imx driver working for mvf600 right now?
>
>
>Do we have a QuadSPI driver on mainline kernel?  Please only add it when
>it's been tested against mainline kernel.
[Lu Jingchang-B35083] 
 Sound, I2C, QuadSPI and SAI added in the initial dts have been test locally on the mainline kernel, and the patches will be sent to maillist later. Thanks!
Shawn Guo May 20, 2013, 5:53 a.m. UTC | #3
On Mon, May 20, 2013 at 05:01:47AM +0000, Lu Jingchang-B35083 wrote:
> [Lu Jingchang-B35083] 
>  Sound, I2C, QuadSPI and SAI added in the initial dts have been test locally on the mainline kernel, and the patches will be sent to maillist later. Thanks!
> 

Please add them after driver patches get accepted by subsystem
maintainers.  If the DT bindings can not be accepted as it is, we will
end up changing the dts files back and forth.

Shawn
diff mbox

Patch

diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 87e603c..968164b 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -122,7 +122,8 @@  dtb-$(CONFIG_ARCH_MXC) += \
 	imx6q-sabrelite.dtb \
 	imx6q-sabresd.dtb \
 	imx6q-sbc6x.dtb \
-	imx6sl-evk.dtb
+	imx6sl-evk.dtb \
+	mvf600-twr.dtb
 dtb-$(CONFIG_ARCH_MXS) += imx23-evk.dtb \
 	imx23-olinuxino.dtb \
 	imx23-stmp378x_devb.dtb \
diff --git a/arch/arm/boot/dts/mvf600-twr.dts b/arch/arm/boot/dts/mvf600-twr.dts
new file mode 100644
index 0000000..fe2e0e6
--- /dev/null
+++ b/arch/arm/boot/dts/mvf600-twr.dts
@@ -0,0 +1,108 @@ 
+/*
+ * Copyright 2013 Freescale Semiconductor, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ */
+
+/dts-v1/;
+#include "mvf600.dtsi"
+
+/ {
+	model = "MVF600 Tower Board";
+	compatible = "fsl,mvf600-twr", "fsl,mvf600";
+
+	chosen {
+		bootargs = "console=ttyLP1,115200";
+	};
+
+	memory {
+		reg = <0x80000000 0x8000000>;
+	};
+
+	clocks {
+		audio_ext {
+			compatible = "fixed-clock";
+			clock-frequency = <24576000>;
+		};
+
+		enet_ext {
+			compatible = "fixed-clock";
+			clock-frequency = <50000000>;
+		};
+	};
+
+	sound {
+		compatible = "fsl,mvf600-audio-sgtl5000";
+		model = "mvf600-sgtl5000";
+		sai-controller = <&sai2>;
+		audio-codec = <&codec>;
+		audio-routing =
+			"MIC_IN", "Mic Jack",
+			"Mic Jack", "Mic Bias",
+			"Headphone Jack", "HP_OUT";
+	};
+
+};
+
+&fec0 {
+	phy-mode = "rmii";
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_fec0_1>;
+};
+
+&fec1 {
+	phy-mode = "rmii";
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_fec1_1>;
+};
+
+&i2c0 {
+	status = "okay";
+	clock-frequency = <100000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c0_1>;
+
+	codec: sgtl5000@0a {
+		compatible = "fsl,sgtl5000";
+		reg = <0x0a>;
+		clocks = <&clks MVF600_CLK_SAI2>;
+	};
+};
+
+&qspi0 { /* QuadSPI0 */
+	fsl,spi-num-chipselects = <1>;
+	fsl,spi-flash-chipselects = <0>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_qspi0_1>;
+	status = "okay";
+
+	flash: s25fl128s@0 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "spansion,s25fl128s";
+		spi-max-frequency = <20000000>;
+		reg = <0>;
+		linux,modalias = "m25p80";
+		modal = "s25fl128s";
+		partition@0 {
+			label = "s25fl128s";
+			reg = <0x0 0x1000000>;
+		};
+	};
+};
+
+&sai2 {
+	fsl,mode = "i2s-slave";
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_sai2_1>;
+	status = "okay";
+};
+
+&uart1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart1_1>;
+	status = "okay";
+};