Patchwork ARM: mx23: Add initial support for olinuxino board

login
register
mail settings
Submitter Fabio Estevam
Date June 17, 2012, 6:28 a.m.
Message ID <1339914539-4154-1-git-send-email-festevam@gmail.com>
Download mbox | patch
Permalink /patch/165325/
State New
Headers show

Comments

Fabio Estevam - June 17, 2012, 6:28 a.m.
From: Fabio Estevam <fabio.estevam@freescale.com>

mx23-olinuxino is a low cost board designed by Olimex.

It has the following features:

- Freescale iMX233 ARM926J processor at 454MHz
-64 MB RAM
-SD-card connector
-TV PAL/NTSC video output
-2 USB High Speed Hosts
-Ethernet 100 Mbit
-Stereo Audio Input
-Stereo Headphones Audio Output

More information at:
http://www.olimex.com/dev/imx233-olinuxino-maxi.html

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
---
 Documentation/devicetree/bindings/arm/fsl.txt |    4 ++
 arch/arm/boot/dts/imx23-olinuxino.dts         |   45 +++++++++++++++++++++++++
 arch/arm/boot/dts/imx23.dtsi                  |   14 ++++++++
 arch/arm/mach-mxs/mach-mxs.c                  |    1 +
 4 files changed, 64 insertions(+), 0 deletions(-)
 create mode 100644 arch/arm/boot/dts/imx23-olinuxino.dts
Marek Vasut - June 17, 2012, 11:14 a.m.
Dear Fabio Estevam,

> From: Fabio Estevam <fabio.estevam@freescale.com>
> 
> mx23-olinuxino is a low cost board designed by Olimex.
> 
> It has the following features:
> 
> - Freescale iMX233 ARM926J processor at 454MHz
> -64 MB RAM
> -SD-card connector
> -TV PAL/NTSC video output
> -2 USB High Speed Hosts
> -Ethernet 100 Mbit
> -Stereo Audio Input
> -Stereo Headphones Audio Output
> 
> More information at:
> http://www.olimex.com/dev/imx233-olinuxino-maxi.html
> 
> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
> ---
>  Documentation/devicetree/bindings/arm/fsl.txt |    4 ++
>  arch/arm/boot/dts/imx23-olinuxino.dts         |   45
> +++++++++++++++++++++++++ arch/arm/boot/dts/imx23.dtsi                  | 
>  14 ++++++++
>  arch/arm/mach-mxs/mach-mxs.c                  |    1 +
>  4 files changed, 64 insertions(+), 0 deletions(-)
>  create mode 100644 arch/arm/boot/dts/imx23-olinuxino.dts
> 
> diff --git a/Documentation/devicetree/bindings/arm/fsl.txt
> b/Documentation/devicetree/bindings/arm/fsl.txt index ac9e751..ca2bc1c
> 100644
> --- a/Documentation/devicetree/bindings/arm/fsl.txt
> +++ b/Documentation/devicetree/bindings/arm/fsl.txt
> @@ -5,6 +5,10 @@ i.MX23 Evaluation Kit
>  Required root node properties:
>      - compatible = "fsl,imx23-evk", "fsl,imx23";
> 
> +i.MX23 Olinuxino Low Cost Board
> +Required root node properties:
> +    - compatible = "fsl,imx23-olinuxino", "fsl,imx23";
> +
>  i.MX28 Evaluation Kit
>  Required root node properties:
>      - compatible = "fsl,imx28-evk", "fsl,imx28";
> diff --git a/arch/arm/boot/dts/imx23-olinuxino.dts
> b/arch/arm/boot/dts/imx23-olinuxino.dts new file mode 100644
> index 0000000..3c56010
> --- /dev/null
> +++ b/arch/arm/boot/dts/imx23-olinuxino.dts
> @@ -0,0 +1,44 @@
> +/*
> + * Copyright 2012 Freescale Semiconductor, Inc.
> + *
> + * Author: Fabio Estevam <fabio.estevam@freescale.com>
> + *
> + * 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/ "imx23.dtsi"
> +
> +/ {
> +	model = "i.MX23 Olinuxino Low Cost Board";
> +	compatible = "fsl,imx23-olinuxino", "fsl,imx23";
> +
> +	memory {
> +		reg = <0x40000000 0x08000000>;
> +	};
> +
> +	apb@80000000 {
> +		apbh@80000000 {
> +			ssp0: ssp@80010000 {
> +				compatible = "fsl,imx23-mmc";
> +				pinctrl-names = "default";
> +				pinctrl-0 = <&mmc0_4bit_pins_a &mmc0_sck_cfg>;
> +				bus-width = <4>;
> +				status = "okay";
> +			};
> +		};
> +
> +		apbx@80040000 {
> +			duart: serial@80070000 {
> +				pinctrl-names = "default";
> +				pinctrl-0 = <&duart_pins_a>;
> +				status = "okay";
> +			};
> +		};
> +	};
> +};
> diff --git a/arch/arm/boot/dts/imx23.dtsi b/arch/arm/boot/dts/imx23.dtsi
> index 8c5f999..89044f0 100644
> --- a/arch/arm/boot/dts/imx23.dtsi
> +++ b/arch/arm/boot/dts/imx23.dtsi
> @@ -134,6 +134,20 @@
>  					fsl,pinmux-ids = <0x2010 0x2060>;
>  					fsl,pull-up = <0>;
>  				};
> +
> +				mmc0_4bit_pins_a: mmc0-4bit@0 {
> +					reg = <0>;
> +					fsl,pinmux-ids = <0x2000 0x2020 0x2030
> +						0x2040 0x2050>;
> +					fsl,drive-strength = <1>;
> +					fsl,voltage = <1>;
> +					fsl,pull-up = <1>;
> +				};
> +
> +				mmc0_sck_cfg: mmc0_sck_cfg {
> +					fsl,pinmux-ids = <0x2010>;
> +					fsl,pull-up = <0>;
> +				};
>  			};
> 
>  			digctl@8001c000 {
> diff --git a/arch/arm/mach-mxs/mach-mxs.c b/arch/arm/mach-mxs/mach-mxs.c
> index 8cac94b..a321753 100644
> --- a/arch/arm/mach-mxs/mach-mxs.c
> +++ b/arch/arm/mach-mxs/mach-mxs.c
> @@ -92,6 +92,7 @@ static void __init mxs_machine_init(void)
> 
>  static const char *imx23_dt_compat[] __initdata = {
>  	"fsl,imx23-evk",
> +	"fsl,imx23-olinuxino",

Is this addition needed?

>  	"fsl,imx23",
>  	NULL,
>  };

Best regards,
Marek Vasut
Fabio Estevam - June 17, 2012, 12:41 p.m.
On Sun, Jun 17, 2012 at 8:14 AM, Marek Vasut <marex@denx.de> wrote:

>>  static const char *imx23_dt_compat[] __initdata = {
>>       "fsl,imx23-evk",
>> +     "fsl,imx23-olinuxino",
>
> Is this addition needed?

Actually it is not required. Board boots just fine without it.

I have just kept this for compatibilty with other i.MX boards boards
added to dt.

I followed the same approach from imx6q_dt_compat and imx53_dt_compat.
Fabio Estevam - June 17, 2012, 12:59 p.m.
On Sun, Jun 17, 2012 at 9:41 AM, Fabio Estevam <festevam@gmail.com> wrote:
> On Sun, Jun 17, 2012 at 8:14 AM, Marek Vasut <marex@denx.de> wrote:
>
>>>  static const char *imx23_dt_compat[] __initdata = {
>>>       "fsl,imx23-evk",
>>> +     "fsl,imx23-olinuxino",
>>
>> Is this addition needed?
>
> Actually it is not required. Board boots just fine without it.
>
> I have just kept this for compatibilty with other i.MX boards boards
> added to dt.
>
> I followed the same approach from imx6q_dt_compat and imx53_dt_compat.

I would prefer to do something like that instead:

static const char *<soc>_dt_compat[] __initdata = {
	"fsl,<soc>",
	NULL,
}

,this way we do not have to patch a C file when adding a new board file.

Shawn, what do you think?

Should I drop the  "fsl,imx23-olinuxino",

addition of this patch and then work on another patch that keeps the

static const char *<soc>_dt_compat[] __initdata = {
	"fsl,<soc>",
	NULL,
}

approach?
Sascha Hauer - June 17, 2012, 1:02 p.m.
On Sun, Jun 17, 2012 at 09:59:18AM -0300, Fabio Estevam wrote:
> On Sun, Jun 17, 2012 at 9:41 AM, Fabio Estevam <festevam@gmail.com> wrote:
> > On Sun, Jun 17, 2012 at 8:14 AM, Marek Vasut <marex@denx.de> wrote:
> >
> >>>  static const char *imx23_dt_compat[] __initdata = {
> >>>       "fsl,imx23-evk",
> >>> +     "fsl,imx23-olinuxino",
> >>
> >> Is this addition needed?
> >
> > Actually it is not required. Board boots just fine without it.
> >
> > I have just kept this for compatibilty with other i.MX boards boards
> > added to dt.
> >
> > I followed the same approach from imx6q_dt_compat and imx53_dt_compat.
> 
> I would prefer to do something like that instead:
> 
> static const char *<soc>_dt_compat[] __initdata = {
> 	"fsl,<soc>",
> 	NULL,
> }
> 
> ,this way we do not have to patch a C file when adding a new board file.
> 

There already is a fsl,imx23 compatible entry, you just have to use it.

Sascha
Shawn Guo - June 18, 2012, 1:18 p.m.
On Sun, Jun 17, 2012 at 01:14:09PM +0200, Marek Vasut wrote:
> >  static const char *imx23_dt_compat[] __initdata = {
> >  	"fsl,imx23-evk",
> > +	"fsl,imx23-olinuxino",
> 
> Is this addition needed?
> 
Unlike the .of_match_table of platform_driver, I would prefer to
maintain such an explicit compatible list to show all the in-tree
boards supported by the DT_MACHINE.  Also, if we only list "fsl,imx23"
there, I'm a little worrying about people will start even dropping the
board compatible string from their board dts, then we will have no way
to play of_machine_is_compatible().

Regards,
Shawn

> >  	"fsl,imx23",
> >  	NULL,
> >  };
>
Shawn Guo - June 18, 2012, 1:27 p.m.
On Sun, Jun 17, 2012 at 03:28:59AM -0300, Fabio Estevam wrote:
> From: Fabio Estevam <fabio.estevam@freescale.com>
> 
> mx23-olinuxino is a low cost board designed by Olimex.
> 
> It has the following features:
> 
> - Freescale iMX233 ARM926J processor at 454MHz
> -64 MB RAM
> -SD-card connector
> -TV PAL/NTSC video output
> -2 USB High Speed Hosts
> -Ethernet 100 Mbit
> -Stereo Audio Input
> -Stereo Headphones Audio Output
> 
> More information at:
> http://www.olimex.com/dev/imx233-olinuxino-maxi.html
> 
> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
> ---
>  Documentation/devicetree/bindings/arm/fsl.txt |    4 ++
>  arch/arm/boot/dts/imx23-olinuxino.dts         |   45 +++++++++++++++++++++++++
>  arch/arm/boot/dts/imx23.dtsi                  |   14 ++++++++
>  arch/arm/mach-mxs/mach-mxs.c                  |    1 +
>  4 files changed, 64 insertions(+), 0 deletions(-)
>  create mode 100644 arch/arm/boot/dts/imx23-olinuxino.dts
> 
> diff --git a/Documentation/devicetree/bindings/arm/fsl.txt b/Documentation/devicetree/bindings/arm/fsl.txt
> index ac9e751..ca2bc1c 100644
> --- a/Documentation/devicetree/bindings/arm/fsl.txt
> +++ b/Documentation/devicetree/bindings/arm/fsl.txt
> @@ -5,6 +5,10 @@ i.MX23 Evaluation Kit
>  Required root node properties:
>      - compatible = "fsl,imx23-evk", "fsl,imx23";
>  
> +i.MX23 Olinuxino Low Cost Board
> +Required root node properties:
> +    - compatible = "fsl,imx23-olinuxino", "fsl,imx23";
> +

I'm not sure it's appropriate to have these in fsl.txt which should
only contain the boards made by Freescale I think.

And I even think the compatible string should be something like
"olimex,imx23-olinuxino"?

Regards,
Shawn

Patch

diff --git a/Documentation/devicetree/bindings/arm/fsl.txt b/Documentation/devicetree/bindings/arm/fsl.txt
index ac9e751..ca2bc1c 100644
--- a/Documentation/devicetree/bindings/arm/fsl.txt
+++ b/Documentation/devicetree/bindings/arm/fsl.txt
@@ -5,6 +5,10 @@  i.MX23 Evaluation Kit
 Required root node properties:
     - compatible = "fsl,imx23-evk", "fsl,imx23";
 
+i.MX23 Olinuxino Low Cost Board
+Required root node properties:
+    - compatible = "fsl,imx23-olinuxino", "fsl,imx23";
+
 i.MX28 Evaluation Kit
 Required root node properties:
     - compatible = "fsl,imx28-evk", "fsl,imx28";
diff --git a/arch/arm/boot/dts/imx23-olinuxino.dts b/arch/arm/boot/dts/imx23-olinuxino.dts
new file mode 100644
index 0000000..3c56010
--- /dev/null
+++ b/arch/arm/boot/dts/imx23-olinuxino.dts
@@ -0,0 +1,44 @@ 
+/*
+ * Copyright 2012 Freescale Semiconductor, Inc.
+ *
+ * Author: Fabio Estevam <fabio.estevam@freescale.com>
+ *
+ * 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/ "imx23.dtsi"
+
+/ {
+	model = "i.MX23 Olinuxino Low Cost Board";
+	compatible = "fsl,imx23-olinuxino", "fsl,imx23";
+
+	memory {
+		reg = <0x40000000 0x08000000>;
+	};
+
+	apb@80000000 {
+		apbh@80000000 {
+			ssp0: ssp@80010000 {
+				compatible = "fsl,imx23-mmc";
+				pinctrl-names = "default";
+				pinctrl-0 = <&mmc0_4bit_pins_a &mmc0_sck_cfg>;
+				bus-width = <4>;
+				status = "okay";
+			};
+		};
+
+		apbx@80040000 {
+			duart: serial@80070000 {
+				pinctrl-names = "default";
+				pinctrl-0 = <&duart_pins_a>;
+				status = "okay";
+			};
+		};
+	};
+};
diff --git a/arch/arm/boot/dts/imx23.dtsi b/arch/arm/boot/dts/imx23.dtsi
index 8c5f999..89044f0 100644
--- a/arch/arm/boot/dts/imx23.dtsi
+++ b/arch/arm/boot/dts/imx23.dtsi
@@ -134,6 +134,20 @@ 
 					fsl,pinmux-ids = <0x2010 0x2060>;
 					fsl,pull-up = <0>;
 				};
+
+				mmc0_4bit_pins_a: mmc0-4bit@0 {
+					reg = <0>;
+					fsl,pinmux-ids = <0x2000 0x2020 0x2030
+						0x2040 0x2050>;
+					fsl,drive-strength = <1>;
+					fsl,voltage = <1>;
+					fsl,pull-up = <1>;
+				};
+
+				mmc0_sck_cfg: mmc0_sck_cfg {
+					fsl,pinmux-ids = <0x2010>;
+					fsl,pull-up = <0>;
+				};
 			};
 
 			digctl@8001c000 {
diff --git a/arch/arm/mach-mxs/mach-mxs.c b/arch/arm/mach-mxs/mach-mxs.c
index 8cac94b..a321753 100644
--- a/arch/arm/mach-mxs/mach-mxs.c
+++ b/arch/arm/mach-mxs/mach-mxs.c
@@ -92,6 +92,7 @@  static void __init mxs_machine_init(void)
 
 static const char *imx23_dt_compat[] __initdata = {
 	"fsl,imx23-evk",
+	"fsl,imx23-olinuxino",
 	"fsl,imx23",
 	NULL,
 };