[PATCH 2/2] ARM: dts: imx6: Add support for imx6q dmo edmqmx6

Shawn Guo shawn.guo at linaro.org
Wed Nov 6 21:13:58 EST 2013


On Wed, Nov 06, 2013 at 10:04:42PM +0100, Silvio F wrote:
> Signed-off-by: Silvio F <silvio.fricke at gmail.com>
> ---
>  arch/arm/boot/dts/Makefile              |   1 +
>  arch/arm/boot/dts/imx6q-dmo-edmqmx6.dts | 182 ++++++++++++++++++++++++++++++++
>  2 files changed, 183 insertions(+)
>  create mode 100644 arch/arm/boot/dts/imx6q-dmo-edmqmx6.dts
> 
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index 5468d2d..3159ab6 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -143,6 +143,7 @@ dtb-$(CONFIG_ARCH_MXC) += \
>  	imx6dl-wandboard.dtb \
>  	imx6q-arm2.dtb \
>  	imx6q-cm-fx6.dtb \
> +	imx6q-dmo-edmqmx6.dtb \
>  	imx6q-gw51xx.dtb \
>  	imx6q-gw52xx.dtb \
>  	imx6q-gw53xx.dtb \
> diff --git a/arch/arm/boot/dts/imx6q-dmo-edmqmx6.dts b/arch/arm/boot/dts/imx6q-dmo-edmqmx6.dts
> new file mode 100644
> index 0000000..77b045a
> --- /dev/null
> +++ b/arch/arm/boot/dts/imx6q-dmo-edmqmx6.dts
> @@ -0,0 +1,182 @@
> +/*
> + * Copyright 2013 Data Modul AG
> + *
> + * The code contained herein is licensed under the GNU General Public
> + * License. You may obtain a copy of the GNU General Public License
> + * Version 2 or later at the following locations:
> + *
> + * http://www.opensource.org/licenses/gpl-license.html
> + * http://www.gnu.org/copyleft/gpl.html
> + */
> +
> +/dts-v1/;
> +
> +#include "imx6q.dtsi"
> +
> +/ {
> +	model = "Data Modul eDM-QMX6 Board";
> +	compatible = "dmo,imx6q-edmqmx6", "fsl,imx6q";
> +
> +	aliases {
> +		gpio7 = &stmpe_gpio_1;
> +		gpio8 = &stmpe_gpio_2;
> +	};
> +
> +	memory {
> +		reg = <0x10000000 0x80000000>;
> +	};
> +
> +	regulators {
> +		compatible = "simple-bus";
> +
> +		reg_3p3v: 3p3v {

Oh, we just started using generic name for fixed regulator nodes.  Can
you please have a look at the patch below and follow the naming schema
used there?

http://www.spinics.net/lists/arm-kernel/msg284474.html

> +			compatible = "regulator-fixed";
> +			regulator-name = "3P3V";
> +			regulator-min-microvolt = <3300000>;
> +			regulator-max-microvolt = <3300000>;
> +			regulator-always-on;
> +		};
> +
> +		reg_usb_otg_vbus: usb_otg_vbus {
> +			compatible = "regulator-fixed";
> +			regulator-name = "usb_otg_vbus";
> +			regulator-min-microvolt = <5000000>;
> +			regulator-max-microvolt = <5000000>;
> +			gpio = <&gpio7 12 0>;
> +		};
> +
> +		reg_usb_host1: usb_host1_en {
> +			compatible = "regulator-fixed";
> +			regulator-name = "usb_host1_en";
> +			regulator-min-microvolt = <3300000>;
> +			regulator-max-microvolt = <3300000>;
> +			gpio = <&gpio3 31 0>;
> +			enable-active-high;
> +		};
> +	};
> +};
> +
> +&fec {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_enet>;
> +	phy-mode = "rgmii";
> +	phy-reset-gpios = <&gpio3 23 0>;
> +	status = "okay";
> +};
> +
> +&i2c2 {
> +	clock-frequency = <100000>;
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_i2c2
> +		     &pinctrl_stmpe_1
> +		     &pinctrl_stmpe_2>;
> +	status = "okay";
> +
> +	rtc: m41t62 at 68 {
> +		compatible = "stm,m41t62";
> +		reg = <0x68>;
> +	};

We generally have a blank lines between nodes.  Also when nodes have
'@num' in their names, we would sort them in 'num'.

> +	stmpe1: stmpe1601 at 40 {
> +		compatible = "st,stmpe1601";
> +		reg = <0x40>;
> +		interrupts = <30 0>;
> +		interrupt-parent = <&gpio3>;
> +
> +		stmpe_gpio_1: stmpe_gpio {
> +			compatible = "st,stmpe-gpio";
> +		};
> +	};
> +
> +	stmpe2: stmpe1601 at 44 {
> +		compatible = "st,stmpe1601";
> +		reg = <0x44>;
> +		interrupts = <2 0>;
> +		interrupt-parent = <&gpio5>;
> +
> +		stmpe_gpio_2: stmpe_gpio {
> +			compatible = "st,stmpe-gpio";
> +		};
> +	};
> +
> +	temp1: ad7414 at 4c {
> +		compatible = "ad,ad7414";
> +		reg = <0x4c>;
> +	};
> +
> +	temp2: ad7414 at 4d {
> +		compatible = "ad,ad7414";
> +		reg = <0x4d>;
> +	};
> +};
> +
> +&iomuxc {
> +	pinctrl_enet: enetgrp {
> +		fsl,pins = <MX6QDL_ENET_PINGRP1>;
> +	};

Thanks for adopting the pingrp macros we just introduced.  But all
these pinctrl nodes should be in another container node.  Otherwise,
pinctrl driver will not be able to parse them.

> +
> +	pinctrl_i2c2: i2c2grp {
> +		fsl,pins = <MX6QDL_I2C2_PINGRP3>;
> +	};
> +
> +	stmpe1 {

Right, just like this.  But I would suggest you have one container node
for all these pinctrl node.

> +		pinctrl_stmpe_1: stmpe1grp-1 {

s/stmpe1grp-1/stmpe1grp

> +			fsl,pins = <MX6QDL_PAD_EIM_D30__GPIO3_IO30 0x80000000>;
> +		};
> +	};
> +
> +	stmpe2 {
> +		pinctrl_stmpe_2: stmpe2grp-1 {

Ditto

> +			fsl,pins = <MX6QDL_PAD_EIM_A25__GPIO5_IO02 0x80000000>;
> +		};
> +	};
> +
> +	pinctrl_uart1: uart1grp {
> +		fsl,pins = <MX6QDL_UART1_PINGRP2>;
> +	};
> +
> +	pinctrl_uart2: uart1grp {

s/uart1grp/uart2grp

Shawn

> +		fsl,pins = <MX6QDL_UART2_PINGRP1>;
> +	};
> +
> +	pinctrl_usbotg: usbotggrp {
> +		fsl,pins = <MX6QDL_USBOTG_PINGRP1>;
> +	};
> +
> +	pinctrl_usdhc3: usdhc3grp {
> +		fsl,pins = <MX6QDL_USDHC3_PINGRP2>;
> +	};
> +};
> +
> +&uart1 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_uart1>;
> +	status = "okay";
> +};
> +
> +&uart2 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_uart2>;
> +	status = "okay";
> +};
> +
> +&usbh1 {
> +	vbus-supply = <&reg_usb_host1>;
> +	disable-over-current;
> +	status = "okay";
> +};
> +
> +&usbotg {
> +	vbus-supply = <&reg_usb_otg_vbus>;
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_usbotg>;
> +	disable-over-current;
> +	status = "okay";
> +};
> +
> +&usdhc3 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_usdhc3>;
> +	vmmc-supply = <&reg_3p3v>;
> +	status = "okay";
> +};
> +
> -- 
> 1.8.4.2
> 




More information about the linux-arm-kernel mailing list