diff mbox

[v2] ARM: dts: imx7d: cl-som-imx7: add basic module support

Message ID 1449756097-2921-1-git-send-email-grinberg@compulab.co.il (mailing list archive)
State New, archived
Headers show

Commit Message

Igor Grinberg Dec. 10, 2015, 2:01 p.m. UTC
From: Ilya Ledvich <ilya@compulab.co.il>

CL-SOM-iMX7 is a miniature System-on-Module (SoM) based on
Freescale i.MX7 System-on-Chip family.

http://www.compulab.co.il/products/computer-on-modules/cl-som-imx7-freescale-i-mx-7-system-on-module/

Add basic DT support for standalone module (without a carrier board):

* Memory configuration
* I2C2 bus
* PMIC
* UART1

Signed-off-by: Ilya Ledvich <ilya@compulab.co.il>
Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
Acked-by: Rob Herring <robh@kernel.org>
---

v2: use generic node name for pmic (Thanks Rob).

 Documentation/devicetree/bindings/arm/fsl.txt |   4 +
 arch/arm/boot/dts/Makefile                    |   1 +
 arch/arm/boot/dts/imx7d-cl-som-imx7.dts       | 150 ++++++++++++++++++++++++++
 3 files changed, 155 insertions(+)
 create mode 100644 arch/arm/boot/dts/imx7d-cl-som-imx7.dts

Comments

Shawn Guo Dec. 14, 2015, 2:43 a.m. UTC | #1
On Thu, Dec 10, 2015 at 04:01:37PM +0200, Igor Grinberg wrote:
> From: Ilya Ledvich <ilya@compulab.co.il>
> 
> CL-SOM-iMX7 is a miniature System-on-Module (SoM) based on
> Freescale i.MX7 System-on-Chip family.
> 
> http://www.compulab.co.il/products/computer-on-modules/cl-som-imx7-freescale-i-mx-7-system-on-module/
> 
> Add basic DT support for standalone module (without a carrier board):
> 
> * Memory configuration
> * I2C2 bus
> * PMIC
> * UART1
> 
> Signed-off-by: Ilya Ledvich <ilya@compulab.co.il>
> Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
> Acked-by: Rob Herring <robh@kernel.org>
> ---
> 
> v2: use generic node name for pmic (Thanks Rob).
> 
>  arch/arm/boot/dts/Makefile                    |   1 +
>  arch/arm/boot/dts/imx7d-cl-som-imx7.dts       | 150 ++++++++++++++++++++++++++
>  3 files changed, 155 insertions(+)
>  create mode 100644 arch/arm/boot/dts/imx7d-cl-som-imx7.dts
> 
> diff --git a/Documentation/devicetree/bindings/arm/fsl.txt b/Documentation/devicetree/bindings/arm/fsl.txt
> index 34c88b0..30b0ba1 100644
> --- a/Documentation/devicetree/bindings/arm/fsl.txt
> +++ b/Documentation/devicetree/bindings/arm/fsl.txt
> @@ -53,6 +53,10 @@ i.MX6 Quad SABRE Automotive Board
>  Required root node properties:
>      - compatible = "fsl,imx6q-sabreauto", "fsl,imx6q";
>  
> +i.MX7D CL-SOM-iMX7 Board
> +Required root node properties:
> +    - compatible = "compulab,cl-som-imx7", "fsl,imx7d";
> +

This is not a board produced by FSL, so it should be documented in
fsl.txt.

>  Generic i.MX boards
>  -------------------
>  
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index 30bbc37..83ed521 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -350,6 +350,7 @@ dtb-$(CONFIG_SOC_IMX6SX) += \
>  dtb-$(CONFIG_SOC_IMX6UL) += \
>  	imx6ul-14x14-evk.dtb
>  dtb-$(CONFIG_SOC_IMX7D) += \
> +	imx7d-cl-som-imx7.dtb \
>  	imx7d-sdb.dtb
>  dtb-$(CONFIG_SOC_LS1021A) += \
>  	ls1021a-qds.dtb \
> diff --git a/arch/arm/boot/dts/imx7d-cl-som-imx7.dts b/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
> new file mode 100644
> index 0000000..ba05198
> --- /dev/null
> +++ b/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
> @@ -0,0 +1,150 @@
> +/*
> + * Support for CompuLab CL-SOM-iMX7 System-on-Module
> + *
> + * Copyright (C) 2015 CompuLab Ltd. - http://www.compulab.co.il/
> + * Author: Ilya Ledvich <ilya@compulab.co.il>
> + *
> + * This program is free software; you can redistribute it and/or modify it
> + * under the terms of the GNU General Public License version 2 as published by
> + * the Free Software Foundation.
> + */

GPL/X11 dual licence is generally suggested for newly added dts files,
as it will let non-Linux OS use them.

> +
> +/dts-v1/;
> +
> +#include <dt-bindings/input/input.h>
> +#include "imx7d.dtsi"
> +
> +/ {
> +	model = "CompuLab CL-SOM-iMX7";
> +	compatible = "compulab,cl-som-imx7", "fsl,imx7d";
> +
> +	memory {
> +		reg = <0x80000000 0x10000000>; /* 256 MB - minimal configuration */
> +	};
> +};
> +
> +&cpu0 {
> +	arm-supply = <&sw1a_reg>;
> +};
> +
> +&i2c2 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_i2c2>;
> +	status = "okay";
> +
> +	pmic: pmic@8 {
> +		compatible = "fsl,pfuze3000";
> +		reg = <0x08>;
> +
> +		regulators {
> +			sw1a_reg: sw1a {
> +				regulator-min-microvolt = <700000>;
> +				regulator-max-microvolt = <1475000>;
> +				regulator-boot-on;
> +				regulator-always-on;
> +				regulator-ramp-delay = <6250>;
> +			};
> +
> +			/* use sw1c_reg to align with pfuze100/pfuze200 */
> +			sw1c_reg: sw1b {
> +				regulator-min-microvolt = <700000>;
> +				regulator-max-microvolt = <1475000>;
> +				regulator-boot-on;
> +				regulator-always-on;
> +				regulator-ramp-delay = <6250>;
> +			};
> +
> +			sw2_reg: sw2 {
> +				regulator-min-microvolt = <1500000>;
> +				regulator-max-microvolt = <1850000>;
> +				regulator-boot-on;
> +				regulator-always-on;
> +			};
> +
> +			sw3a_reg: sw3 {
> +				regulator-min-microvolt = <900000>;
> +				regulator-max-microvolt = <1650000>;
> +				regulator-boot-on;
> +				regulator-always-on;
> +			};
> +
> +			swbst_reg: swbst {
> +				regulator-min-microvolt = <5000000>;
> +				regulator-max-microvolt = <5150000>;
> +			};
> +
> +			snvs_reg: vsnvs {
> +				regulator-min-microvolt = <1000000>;
> +				regulator-max-microvolt = <3000000>;
> +				regulator-boot-on;
> +				regulator-always-on;
> +			};
> +
> +			vref_reg: vrefddr {
> +				regulator-boot-on;
> +				regulator-always-on;
> +			};
> +
> +			vgen1_reg: vldo1 {
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <3300000>;
> +				regulator-always-on;
> +			};
> +
> +			vgen2_reg: vldo2 {
> +				regulator-min-microvolt = <800000>;
> +				regulator-max-microvolt = <1550000>;
> +			};
> +
> +			vgen3_reg: vccsd {
> +				regulator-min-microvolt = <2850000>;
> +				regulator-max-microvolt = <3300000>;
> +				regulator-always-on;
> +			};
> +
> +			vgen4_reg: v33 {
> +				regulator-min-microvolt = <2850000>;
> +				regulator-max-microvolt = <3300000>;
> +				regulator-always-on;
> +			};
> +
> +			vgen5_reg: vldo3 {
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <3300000>;
> +				regulator-always-on;
> +			};
> +
> +			vgen6_reg: vldo4 {
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <3300000>;
> +				regulator-always-on;
> +			};
> +		};
> +	};
> +};
> +
> +&uart1 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_uart1>;
> +	assigned-clocks = <&clks IMX7D_UART1_ROOT_SRC>;
> +	assigned-clock-parents = <&clks IMX7D_PLL_SYS_MAIN_240M_CLK>;
> +	status = "okay";
> +};
> +
> +&iomuxc {
> +	cl-som-imx7 {

Since commit (5fcdf6a7ed95 pinctrl: imx: Allow parsing DT without
function nodes), this level of container node is not really needed any
more.

Shawn

> +		pinctrl_i2c2: i2c2grp {
> +			fsl,pins = <
> +				MX7D_PAD_I2C2_SDA__I2C2_SDA		0x4000007f
> +				MX7D_PAD_I2C2_SCL__I2C2_SCL		0x4000007f
> +			>;
> +		};
> +
> +		pinctrl_uart1: uart1grp {
> +			fsl,pins = <
> +				MX7D_PAD_UART1_TX_DATA__UART1_DCE_TX	0x79
> +				MX7D_PAD_UART1_RX_DATA__UART1_DCE_RX	0x79
> +			>;
> +		};
> +	};
> +};
> -- 
> 2.4.10
> 
>
Igor Grinberg Dec. 16, 2015, 2:01 p.m. UTC | #2
Hi Shawn,

On 12/14/15 04:43, Shawn Guo wrote:
> On Thu, Dec 10, 2015 at 04:01:37PM +0200, Igor Grinberg wrote:
>> From: Ilya Ledvich <ilya@compulab.co.il>

[...]

>> diff --git a/Documentation/devicetree/bindings/arm/fsl.txt b/Documentation/devicetree/bindings/arm/fsl.txt
>> index 34c88b0..30b0ba1 100644
>> --- a/Documentation/devicetree/bindings/arm/fsl.txt
>> +++ b/Documentation/devicetree/bindings/arm/fsl.txt
>> @@ -53,6 +53,10 @@ i.MX6 Quad SABRE Automotive Board
>>  Required root node properties:
>>      - compatible = "fsl,imx6q-sabreauto", "fsl,imx6q";
>>  
>> +i.MX7D CL-SOM-iMX7 Board
>> +Required root node properties:
>> +    - compatible = "compulab,cl-som-imx7", "fsl,imx7d";
>> +
> 
> This is not a board produced by FSL, so it should be documented in
> fsl.txt.

You mean _should not_ be documented in fsl.txt, right?
Ok, I have no problem with that, we've just used the same approach OMAP
takes - all the OMAP based boards are documented in the same file:
Documentation/devicetree/bindings/arm/omap/omap.txt

Do you think we should document it in:
Documentation/devicetree/bindings/arm/compulab-boards.txt
(this file should already exist in arm-soc/next/dt)?

> 
>>  Generic i.MX boards
>>  -------------------
>>  
>> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
>> index 30bbc37..83ed521 100644
>> --- a/arch/arm/boot/dts/Makefile
>> +++ b/arch/arm/boot/dts/Makefile
>> @@ -350,6 +350,7 @@ dtb-$(CONFIG_SOC_IMX6SX) += \
>>  dtb-$(CONFIG_SOC_IMX6UL) += \
>>  	imx6ul-14x14-evk.dtb
>>  dtb-$(CONFIG_SOC_IMX7D) += \
>> +	imx7d-cl-som-imx7.dtb \
>>  	imx7d-sdb.dtb
>>  dtb-$(CONFIG_SOC_LS1021A) += \
>>  	ls1021a-qds.dtb \
>> diff --git a/arch/arm/boot/dts/imx7d-cl-som-imx7.dts b/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
>> new file mode 100644
>> index 0000000..ba05198
>> --- /dev/null
>> +++ b/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
>> @@ -0,0 +1,150 @@
>> +/*
>> + * Support for CompuLab CL-SOM-iMX7 System-on-Module
>> + *
>> + * Copyright (C) 2015 CompuLab Ltd. - http://www.compulab.co.il/
>> + * Author: Ilya Ledvich <ilya@compulab.co.il>
>> + *
>> + * This program is free software; you can redistribute it and/or modify it
>> + * under the terms of the GNU General Public License version 2 as published by
>> + * the Free Software Foundation.
>> + */
> 
> GPL/X11 dual licence is generally suggested for newly added dts files,
> as it will let non-Linux OS use them.

I don't remember we've used this one before...
Can you please point to an example?

[...]

>> +&iomuxc {
>> +	cl-som-imx7 {
> 
> Since commit (5fcdf6a7ed95 pinctrl: imx: Allow parsing DT without
> function nodes), this level of container node is not really needed any
> more.

Ok. Will be done for the next version. Thanks!

> 
> Shawn
> 
>> +		pinctrl_i2c2: i2c2grp {
>> +			fsl,pins = <
>> +				MX7D_PAD_I2C2_SDA__I2C2_SDA		0x4000007f
>> +				MX7D_PAD_I2C2_SCL__I2C2_SCL		0x4000007f
>> +			>;
>> +		};
>> +
>> +		pinctrl_uart1: uart1grp {
>> +			fsl,pins = <
>> +				MX7D_PAD_UART1_TX_DATA__UART1_DCE_TX	0x79
>> +				MX7D_PAD_UART1_RX_DATA__UART1_DCE_RX	0x79
>> +			>;
>> +		};
>> +	};
>> +};
>> -- 
>> 2.4.10
>>
>>
>
Shawn Guo Dec. 21, 2015, 6:36 a.m. UTC | #3
On Wed, Dec 16, 2015 at 04:01:08PM +0200, Igor Grinberg wrote:
> Hi Shawn,
> 
> On 12/14/15 04:43, Shawn Guo wrote:
> > On Thu, Dec 10, 2015 at 04:01:37PM +0200, Igor Grinberg wrote:
> >> From: Ilya Ledvich <ilya@compulab.co.il>
> 
> [...]
> 
> >> diff --git a/Documentation/devicetree/bindings/arm/fsl.txt b/Documentation/devicetree/bindings/arm/fsl.txt
> >> index 34c88b0..30b0ba1 100644
> >> --- a/Documentation/devicetree/bindings/arm/fsl.txt
> >> +++ b/Documentation/devicetree/bindings/arm/fsl.txt
> >> @@ -53,6 +53,10 @@ i.MX6 Quad SABRE Automotive Board
> >>  Required root node properties:
> >>      - compatible = "fsl,imx6q-sabreauto", "fsl,imx6q";
> >>  
> >> +i.MX7D CL-SOM-iMX7 Board
> >> +Required root node properties:
> >> +    - compatible = "compulab,cl-som-imx7", "fsl,imx7d";
> >> +
> > 
> > This is not a board produced by FSL, so it should be documented in
> > fsl.txt.
> 
> You mean _should not_ be documented in fsl.txt, right?

Right.  Sorry.

> Ok, I have no problem with that, we've just used the same approach OMAP
> takes - all the OMAP based boards are documented in the same file:
> Documentation/devicetree/bindings/arm/omap/omap.txt

omap.txt is probably fine, as it's not ti.txt.

> 
> Do you think we should document it in:
> Documentation/devicetree/bindings/arm/compulab-boards.txt
> (this file should already exist in arm-soc/next/dt)?

Yeah, if the file already exist, it's the best option.  But, as it
doesn't exist on my tree, I can not apply this change.

> 
> > 
> >>  Generic i.MX boards
> >>  -------------------
> >>  
> >> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> >> index 30bbc37..83ed521 100644
> >> --- a/arch/arm/boot/dts/Makefile
> >> +++ b/arch/arm/boot/dts/Makefile
> >> @@ -350,6 +350,7 @@ dtb-$(CONFIG_SOC_IMX6SX) += \
> >>  dtb-$(CONFIG_SOC_IMX6UL) += \
> >>  	imx6ul-14x14-evk.dtb
> >>  dtb-$(CONFIG_SOC_IMX7D) += \
> >> +	imx7d-cl-som-imx7.dtb \
> >>  	imx7d-sdb.dtb
> >>  dtb-$(CONFIG_SOC_LS1021A) += \
> >>  	ls1021a-qds.dtb \
> >> diff --git a/arch/arm/boot/dts/imx7d-cl-som-imx7.dts b/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
> >> new file mode 100644
> >> index 0000000..ba05198
> >> --- /dev/null
> >> +++ b/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
> >> @@ -0,0 +1,150 @@
> >> +/*
> >> + * Support for CompuLab CL-SOM-iMX7 System-on-Module
> >> + *
> >> + * Copyright (C) 2015 CompuLab Ltd. - http://www.compulab.co.il/
> >> + * Author: Ilya Ledvich <ilya@compulab.co.il>
> >> + *
> >> + * This program is free software; you can redistribute it and/or modify it
> >> + * under the terms of the GNU General Public License version 2 as published by
> >> + * the Free Software Foundation.
> >> + */
> > 
> > GPL/X11 dual licence is generally suggested for newly added dts files,
> > as it will let non-Linux OS use them.
> 
> I don't remember we've used this one before...
> Can you please point to an example?

The following command will give you a plenty of examples.

$ git grep X11 arch/arm/boot/dts

Shawn
Igor Grinberg Dec. 21, 2015, 8:07 a.m. UTC | #4
Hi Shawn,

On 12/21/15 08:36, Shawn Guo wrote:
> On Wed, Dec 16, 2015 at 04:01:08PM +0200, Igor Grinberg wrote:
>> Hi Shawn,
>>
>> On 12/14/15 04:43, Shawn Guo wrote:
>>> On Thu, Dec 10, 2015 at 04:01:37PM +0200, Igor Grinberg wrote:
>>>> From: Ilya Ledvich <ilya@compulab.co.il>
>>
>> [...]
>>
>>>> diff --git a/Documentation/devicetree/bindings/arm/fsl.txt b/Documentation/devicetree/bindings/arm/fsl.txt
>>>> index 34c88b0..30b0ba1 100644
>>>> --- a/Documentation/devicetree/bindings/arm/fsl.txt
>>>> +++ b/Documentation/devicetree/bindings/arm/fsl.txt
>>>> @@ -53,6 +53,10 @@ i.MX6 Quad SABRE Automotive Board
>>>>  Required root node properties:
>>>>      - compatible = "fsl,imx6q-sabreauto", "fsl,imx6q";
>>>>  
>>>> +i.MX7D CL-SOM-iMX7 Board
>>>> +Required root node properties:
>>>> +    - compatible = "compulab,cl-som-imx7", "fsl,imx7d";
>>>> +
>>>
>>> This is not a board produced by FSL, so it should be documented in
>>> fsl.txt.
>>
>> You mean _should not_ be documented in fsl.txt, right?
> 
> Right.  Sorry.
> 
>> Ok, I have no problem with that, we've just used the same approach OMAP
>> takes - all the OMAP based boards are documented in the same file:
>> Documentation/devicetree/bindings/arm/omap/omap.txt
> 
> omap.txt is probably fine, as it's not ti.txt.

Have you considered creating a kind of imx.txt?

> 
>>
>> Do you think we should document it in:
>> Documentation/devicetree/bindings/arm/compulab-boards.txt
>> (this file should already exist in arm-soc/next/dt)?
> 
> Yeah, if the file already exist, it's the best option.  But, as it
> doesn't exist on my tree, I can not apply this change.

It is already in linux-next.
Who do you think should apply the v2 patch then?
May be the arm-soc guys? (Cc'ed Olof and Arnd)

> 
>>
>>>
>>>>  Generic i.MX boards
>>>>  -------------------
>>>>  
>>>> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
>>>> index 30bbc37..83ed521 100644
>>>> --- a/arch/arm/boot/dts/Makefile
>>>> +++ b/arch/arm/boot/dts/Makefile
>>>> @@ -350,6 +350,7 @@ dtb-$(CONFIG_SOC_IMX6SX) += \
>>>>  dtb-$(CONFIG_SOC_IMX6UL) += \
>>>>  	imx6ul-14x14-evk.dtb
>>>>  dtb-$(CONFIG_SOC_IMX7D) += \
>>>> +	imx7d-cl-som-imx7.dtb \
>>>>  	imx7d-sdb.dtb
>>>>  dtb-$(CONFIG_SOC_LS1021A) += \
>>>>  	ls1021a-qds.dtb \
>>>> diff --git a/arch/arm/boot/dts/imx7d-cl-som-imx7.dts b/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
>>>> new file mode 100644
>>>> index 0000000..ba05198
>>>> --- /dev/null
>>>> +++ b/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
>>>> @@ -0,0 +1,150 @@
>>>> +/*
>>>> + * Support for CompuLab CL-SOM-iMX7 System-on-Module
>>>> + *
>>>> + * Copyright (C) 2015 CompuLab Ltd. - http://www.compulab.co.il/
>>>> + * Author: Ilya Ledvich <ilya@compulab.co.il>
>>>> + *
>>>> + * This program is free software; you can redistribute it and/or modify it
>>>> + * under the terms of the GNU General Public License version 2 as published by
>>>> + * the Free Software Foundation.
>>>> + */
>>>
>>> GPL/X11 dual licence is generally suggested for newly added dts files,
>>> as it will let non-Linux OS use them.
>>
>> I don't remember we've used this one before...
>> Can you please point to an example?
> 
> The following command will give you a plenty of examples.
> 
> $ git grep X11 arch/arm/boot/dts

10x!
Shawn Guo Dec. 21, 2015, 1:54 p.m. UTC | #5
On Mon, Dec 21, 2015 at 10:07:29AM +0200, Igor Grinberg wrote:
> >> Do you think we should document it in:
> >> Documentation/devicetree/bindings/arm/compulab-boards.txt
> >> (this file should already exist in arm-soc/next/dt)?
> > 
> > Yeah, if the file already exist, it's the best option.  But, as it
> > doesn't exist on my tree, I can not apply this change.
> 
> It is already in linux-next.
> Who do you think should apply the v2 patch then?
> May be the arm-soc guys? (Cc'ed Olof and Arnd)

I think the best approach here is you leave the change out from the
patch, and send that change to arm-soc folks.

Shawn
Shawn Guo Dec. 21, 2015, 1:59 p.m. UTC | #6
On Mon, Dec 21, 2015 at 10:07:29AM +0200, Igor Grinberg wrote:
> >> Do you think we should document it in:
> >> Documentation/devicetree/bindings/arm/compulab-boards.txt
> >> (this file should already exist in arm-soc/next/dt)?
> > 
> > Yeah, if the file already exist, it's the best option.  But, as it
> > doesn't exist on my tree, I can not apply this change.
> 
> It is already in linux-next.
> Who do you think should apply the v2 patch then?
> May be the arm-soc guys? (Cc'ed Olof and Arnd)

I think you can leave out the change from the patch, so that I can
apply.  And you send that change separately to arm-soc folks.

Shawn
Igor Grinberg Dec. 22, 2015, 7:38 a.m. UTC | #7
On 12/21/15 15:59, Shawn Guo wrote:
> On Mon, Dec 21, 2015 at 10:07:29AM +0200, Igor Grinberg wrote:
>>>> Do you think we should document it in:
>>>> Documentation/devicetree/bindings/arm/compulab-boards.txt
>>>> (this file should already exist in arm-soc/next/dt)?
>>>
>>> Yeah, if the file already exist, it's the best option.  But, as it
>>> doesn't exist on my tree, I can not apply this change.
>>
>> It is already in linux-next.
>> Who do you think should apply the v2 patch then?
>> May be the arm-soc guys? (Cc'ed Olof and Arnd)
> 
> I think you can leave out the change from the patch, so that I can
> apply.  And you send that change separately to arm-soc folks.

Ok. We'll send a v2 today.

Thanks!
diff mbox

Patch

diff --git a/Documentation/devicetree/bindings/arm/fsl.txt b/Documentation/devicetree/bindings/arm/fsl.txt
index 34c88b0..30b0ba1 100644
--- a/Documentation/devicetree/bindings/arm/fsl.txt
+++ b/Documentation/devicetree/bindings/arm/fsl.txt
@@ -53,6 +53,10 @@  i.MX6 Quad SABRE Automotive Board
 Required root node properties:
     - compatible = "fsl,imx6q-sabreauto", "fsl,imx6q";
 
+i.MX7D CL-SOM-iMX7 Board
+Required root node properties:
+    - compatible = "compulab,cl-som-imx7", "fsl,imx7d";
+
 Generic i.MX boards
 -------------------
 
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 30bbc37..83ed521 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -350,6 +350,7 @@  dtb-$(CONFIG_SOC_IMX6SX) += \
 dtb-$(CONFIG_SOC_IMX6UL) += \
 	imx6ul-14x14-evk.dtb
 dtb-$(CONFIG_SOC_IMX7D) += \
+	imx7d-cl-som-imx7.dtb \
 	imx7d-sdb.dtb
 dtb-$(CONFIG_SOC_LS1021A) += \
 	ls1021a-qds.dtb \
diff --git a/arch/arm/boot/dts/imx7d-cl-som-imx7.dts b/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
new file mode 100644
index 0000000..ba05198
--- /dev/null
+++ b/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
@@ -0,0 +1,150 @@ 
+/*
+ * Support for CompuLab CL-SOM-iMX7 System-on-Module
+ *
+ * Copyright (C) 2015 CompuLab Ltd. - http://www.compulab.co.il/
+ * Author: Ilya Ledvich <ilya@compulab.co.il>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 as published by
+ * the Free Software Foundation.
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/input/input.h>
+#include "imx7d.dtsi"
+
+/ {
+	model = "CompuLab CL-SOM-iMX7";
+	compatible = "compulab,cl-som-imx7", "fsl,imx7d";
+
+	memory {
+		reg = <0x80000000 0x10000000>; /* 256 MB - minimal configuration */
+	};
+};
+
+&cpu0 {
+	arm-supply = <&sw1a_reg>;
+};
+
+&i2c2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c2>;
+	status = "okay";
+
+	pmic: pmic@8 {
+		compatible = "fsl,pfuze3000";
+		reg = <0x08>;
+
+		regulators {
+			sw1a_reg: sw1a {
+				regulator-min-microvolt = <700000>;
+				regulator-max-microvolt = <1475000>;
+				regulator-boot-on;
+				regulator-always-on;
+				regulator-ramp-delay = <6250>;
+			};
+
+			/* use sw1c_reg to align with pfuze100/pfuze200 */
+			sw1c_reg: sw1b {
+				regulator-min-microvolt = <700000>;
+				regulator-max-microvolt = <1475000>;
+				regulator-boot-on;
+				regulator-always-on;
+				regulator-ramp-delay = <6250>;
+			};
+
+			sw2_reg: sw2 {
+				regulator-min-microvolt = <1500000>;
+				regulator-max-microvolt = <1850000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			sw3a_reg: sw3 {
+				regulator-min-microvolt = <900000>;
+				regulator-max-microvolt = <1650000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			swbst_reg: swbst {
+				regulator-min-microvolt = <5000000>;
+				regulator-max-microvolt = <5150000>;
+			};
+
+			snvs_reg: vsnvs {
+				regulator-min-microvolt = <1000000>;
+				regulator-max-microvolt = <3000000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			vref_reg: vrefddr {
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			vgen1_reg: vldo1 {
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-always-on;
+			};
+
+			vgen2_reg: vldo2 {
+				regulator-min-microvolt = <800000>;
+				regulator-max-microvolt = <1550000>;
+			};
+
+			vgen3_reg: vccsd {
+				regulator-min-microvolt = <2850000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-always-on;
+			};
+
+			vgen4_reg: v33 {
+				regulator-min-microvolt = <2850000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-always-on;
+			};
+
+			vgen5_reg: vldo3 {
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-always-on;
+			};
+
+			vgen6_reg: vldo4 {
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-always-on;
+			};
+		};
+	};
+};
+
+&uart1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart1>;
+	assigned-clocks = <&clks IMX7D_UART1_ROOT_SRC>;
+	assigned-clock-parents = <&clks IMX7D_PLL_SYS_MAIN_240M_CLK>;
+	status = "okay";
+};
+
+&iomuxc {
+	cl-som-imx7 {
+		pinctrl_i2c2: i2c2grp {
+			fsl,pins = <
+				MX7D_PAD_I2C2_SDA__I2C2_SDA		0x4000007f
+				MX7D_PAD_I2C2_SCL__I2C2_SCL		0x4000007f
+			>;
+		};
+
+		pinctrl_uart1: uart1grp {
+			fsl,pins = <
+				MX7D_PAD_UART1_TX_DATA__UART1_DCE_TX	0x79
+				MX7D_PAD_UART1_RX_DATA__UART1_DCE_RX	0x79
+			>;
+		};
+	};
+};