Message ID | 1345852300-2213-4-git-send-email-marex@denx.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Please base it on my mxs/dt-for-3.7 branch. On Sat, Aug 25, 2012 at 01:51:40AM +0200, Marek Vasut wrote: > Add DTS file for this custom board. > > Signed-off-by: Marek Vasut <marex@denx.de> > Cc: Fabio Estevam <fabio.estevam@freescale.com> > Cc: Shawn Guo <shawn.guo@linaro.org> > --- > arch/arm/boot/dts/imx28-sps1.dts | 168 ++++++++++++++++++++++++++++++++++++++ > arch/arm/mach-mxs/mach-mxs.c | 3 + > 2 files changed, 171 insertions(+) > create mode 100644 arch/arm/boot/dts/imx28-sps1.dts > > diff --git a/arch/arm/boot/dts/imx28-sps1.dts b/arch/arm/boot/dts/imx28-sps1.dts > new file mode 100644 > index 0000000..d05b1cb > --- /dev/null > +++ b/arch/arm/boot/dts/imx28-sps1.dts > @@ -0,0 +1,168 @@ > +/* > + * Copyright (C) 2012 Marek Vasut <marex@denx.de> > + * > + * 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/ "imx28.dtsi" > + > +/ { > + model = "SchulerControl GmbH, SC SPS 1"; > + compatible = "schulercontrol,imx28-sps1", "fsl,imx28"; We should use the short name as prefix if it has one. > + > + memory { > + reg = <0x40000000 0x08000000>; > + }; > + > + apb@80000000 { > + apbh@80000000 { > + pinctrl@80018000 { > + led_pins_sps1: leds@0 { It should be referenced by the pinctrl state directly under node pinctrl@80018000, otherwise the pins will not be set up. Also we usually use a generic name here something like hog_pins_a: hog@0 { so that we do not need to create new node every time we add pins for a new module. > + reg = <0>; > + fsl,pinmux-ids = < > + 0x0003 /* MX28_PAD_GPMI_D00__GPIO_0_0 */ > + 0x0033 /* MX28_PAD_GPMI_D03__GPIO_0_3 */ > + 0x0063 /* MX28_PAD_GPMI_D06__GPIO_0_6 */ > + >; > + fsl,drive-strength = <0>; > + fsl,voltage = <1>; > + fsl,pull-up = <0>; > + }; > + > + }; > + > + ssp0: ssp@80010000 { > + compatible = "fsl,imx28-mmc"; > + pinctrl-names = "default"; > + pinctrl-0 = <&mmc0_4bit_pins_a>; > + bus-width = <4>; > + status = "okay"; > + }; > + > + ssp2: ssp@80014000 { > + #address-cells = <1>; > + #size-cells = <0>; > + compatible = "fsl,imx28-spi"; > + pinctrl-names = "default"; > + pinctrl-0 = <&spi2_pins_a>; > + status = "okay"; > + > + flash: m25p80@0 { > + #address-cells = <1>; > + #size-cells = <1>; > + compatible = "everspin,mr25h256", "mr25h256"; Node name "m25p80" and "mr25h256", same thing? > + spi-max-frequency = <40000000>; > + reg = <0>; > + }; > + }; > + }; > + > + apbx@80040000 { > + i2c0: i2c@80058000 { > + pinctrl-names = "default"; > + pinctrl-0 = <&i2c0_pins_a>; > + clock-frequency = <400000>; > + status = "okay"; > + > + rtc: rtc@51 { > + compatible = "nxp,pcf8563"; > + reg = <0x51>; > + }; > + > + eeprom: eeprom@52 { > + compatible = "atmel,24c64"; > + reg = <0x52>; > + pagesize = <32>; > + }; > + }; > + > + duart: serial@80074000 { > + pinctrl-names = "default"; > + pinctrl-0 = <&duart_pins_a>; > + status = "okay"; > + }; > + > + usbphy0: usbphy@8007c000 { > + status = "okay"; > + }; > + > + auart0: serial@8006a000 { > + pinctrl-names = "default"; > + pinctrl-0 = <&auart0_pins_a>; > + status = "okay"; > + }; > + > + rtc@80056000 { > + status = "okay"; > + }; This is not needed. We have rtc enabled in imx28.dtsi by default now. > + }; > + }; > + > + ahb@80080000 { > + usb0: usb@80080000 { > + vbus-supply = <®_usb0_vbus>; > + pinctrl-names = "default"; > + pinctrl-0 = <&usbphy0_pins_b>; > + status = "okay"; > + }; > + > + mac0: ethernet@800f0000 { > + phy-mode = "rmii"; > + pinctrl-names = "default"; > + pinctrl-0 = <&mac0_pins_a>; > + status = "okay"; > + }; > + > + mac1: ethernet@800f4000 { > + phy-mode = "rmii"; > + pinctrl-names = "default"; > + pinctrl-0 = <&mac1_pins_a>; > + status = "okay"; > + }; > + }; > + > + regulators { > + compatible = "simple-bus"; > + > + reg_usb0_vbus: usb0_vbus { > + compatible = "regulator-fixed"; > + regulator-name = "usb0_vbus"; > + regulator-min-microvolt = <5000000>; > + regulator-max-microvolt = <5000000>; > + gpio = <&gpio3 9 0>; > + enable-active-low; Same comment I put on patch #3. > + }; > + }; > + > + leds { > + compatible = "gpio-leds"; > + pinctrl-names = "default"; > + pinctrl-0 = <&led_pins_sps1>; Aha, you put it here. But do you have leds-gpio driver call pinctrl to set them up? > + status = "okay"; > + > + led@1 { There should be a "reg" property matching the number after @. So you need to either give it a unique node name without @?, or you add a reg property. > + label = "sps1-1:yellow:user"; > + gpios = <&gpio0 6 0>; > + linux,default-trigger = "heartbeat"; > + }; > + > + led@2 { > + label = "sps1-2:red:user"; > + gpios = <&gpio0 3 0>; > + linux,default-trigger = "heartbeat"; > + }; > + > + led@3 { > + label = "sps1-3:red:user"; > + gpios = <&gpio0 0 0>; > + default-trigger = "heartbeat"; > + }; > + > + }; > +}; > diff --git a/arch/arm/mach-mxs/mach-mxs.c b/arch/arm/mach-mxs/mach-mxs.c > index 5ac45a1..f131ff1 100644 > --- a/arch/arm/mach-mxs/mach-mxs.c > +++ b/arch/arm/mach-mxs/mach-mxs.c > @@ -279,6 +279,8 @@ static void __init mxs_machine_init(void) > m28evk_init(); > else if (of_machine_is_compatible("bluegiga,apx4devkit")) > apx4devkit_init(); > + else if (of_machine_is_compatible("schulercontrol,imx28-sps1")) > + imx28_evk_init(); Call imx28_evk_init for imx28-sps1 board? > > of_platform_populate(NULL, of_default_bus_match_table, > mxs_auxdata_lookup, NULL); > @@ -298,6 +300,7 @@ static const char *imx28_dt_compat[] __initdata = { > "denx,m28evk", > "fsl,imx28-evk", > "karo,tx28", > + "schulercontrol,imx28-sps1", See mxs/dt-for-3.7 branch. We are using generic compat string for matching. > "fsl,imx28", > NULL, > }; > -- > 1.7.10.4 >
Dear Shawn Guo, > Please base it on my mxs/dt-for-3.7 branch. > > On Sat, Aug 25, 2012 at 01:51:40AM +0200, Marek Vasut wrote: > > Add DTS file for this custom board. > > > > Signed-off-by: Marek Vasut <marex@denx.de> > > Cc: Fabio Estevam <fabio.estevam@freescale.com> > > Cc: Shawn Guo <shawn.guo@linaro.org> > > --- > > > > arch/arm/boot/dts/imx28-sps1.dts | 168 > > ++++++++++++++++++++++++++++++++++++++ arch/arm/mach-mxs/mach-mxs.c > > | 3 + > > 2 files changed, 171 insertions(+) > > create mode 100644 arch/arm/boot/dts/imx28-sps1.dts > > > > diff --git a/arch/arm/boot/dts/imx28-sps1.dts > > b/arch/arm/boot/dts/imx28-sps1.dts new file mode 100644 > > index 0000000..d05b1cb > > --- /dev/null > > +++ b/arch/arm/boot/dts/imx28-sps1.dts > > @@ -0,0 +1,168 @@ > > +/* > > + * Copyright (C) 2012 Marek Vasut <marex@denx.de> > > + * > > + * 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/ "imx28.dtsi" > > + > > +/ { > > + model = "SchulerControl GmbH, SC SPS 1"; > > + compatible = "schulercontrol,imx28-sps1", "fsl,imx28"; > > We should use the short name as prefix if it has one. > > > + > > + memory { > > + reg = <0x40000000 0x08000000>; > > + }; > > + > > + apb@80000000 { > > + apbh@80000000 { > > + pinctrl@80018000 { > > + led_pins_sps1: leds@0 { > > It should be referenced by the pinctrl state directly under node > pinctrl@80018000, otherwise the pins will not be set up. > > Also we usually use a generic name here something like > > hog_pins_a: hog@0 { > > so that we do not need to create new node every time we add pins > for a new module. So I'll ignore this comment and add pinctrl call into leds-gpio ... can we agree on that ? [...]
On Sat, Aug 25, 2012 at 02:35:52PM +0200, Marek Vasut wrote: > So I'll ignore this comment and add pinctrl call into leds-gpio ... can we agree > on that ? > I'm fine. But I have to postpone this part of dts change until I see the driver part gets accepted.
On Sat, Aug 25, 2012 at 04:30:45PM +0800, Shawn Guo wrote: > > + flash: m25p80@0 { > > + #address-cells = <1>; > > + #size-cells = <1>; > > + compatible = "everspin,mr25h256", "mr25h256"; > > Node name "m25p80" and "mr25h256", same thing? > Ok, just got reminded by Fabio, m25p80 covers many devices including mr25h256 here.
Dear Shawn Guo, > On Sat, Aug 25, 2012 at 04:30:45PM +0800, Shawn Guo wrote: > > > + flash: m25p80@0 { > > > + #address-cells = <1>; > > > + #size-cells = <1>; > > > + compatible = "everspin,mr25h256", "mr25h256"; > > > > Node name "m25p80" and "mr25h256", same thing? > > Ok, just got reminded by Fabio, m25p80 covers many devices including > mr25h256 here. I still need to look into the OUI Best regards, Marek Vasut
diff --git a/arch/arm/boot/dts/imx28-sps1.dts b/arch/arm/boot/dts/imx28-sps1.dts new file mode 100644 index 0000000..d05b1cb --- /dev/null +++ b/arch/arm/boot/dts/imx28-sps1.dts @@ -0,0 +1,168 @@ +/* + * Copyright (C) 2012 Marek Vasut <marex@denx.de> + * + * 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/ "imx28.dtsi" + +/ { + model = "SchulerControl GmbH, SC SPS 1"; + compatible = "schulercontrol,imx28-sps1", "fsl,imx28"; + + memory { + reg = <0x40000000 0x08000000>; + }; + + apb@80000000 { + apbh@80000000 { + pinctrl@80018000 { + led_pins_sps1: leds@0 { + reg = <0>; + fsl,pinmux-ids = < + 0x0003 /* MX28_PAD_GPMI_D00__GPIO_0_0 */ + 0x0033 /* MX28_PAD_GPMI_D03__GPIO_0_3 */ + 0x0063 /* MX28_PAD_GPMI_D06__GPIO_0_6 */ + >; + fsl,drive-strength = <0>; + fsl,voltage = <1>; + fsl,pull-up = <0>; + }; + + }; + + ssp0: ssp@80010000 { + compatible = "fsl,imx28-mmc"; + pinctrl-names = "default"; + pinctrl-0 = <&mmc0_4bit_pins_a>; + bus-width = <4>; + status = "okay"; + }; + + ssp2: ssp@80014000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "fsl,imx28-spi"; + pinctrl-names = "default"; + pinctrl-0 = <&spi2_pins_a>; + status = "okay"; + + flash: m25p80@0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "everspin,mr25h256", "mr25h256"; + spi-max-frequency = <40000000>; + reg = <0>; + }; + }; + }; + + apbx@80040000 { + i2c0: i2c@80058000 { + pinctrl-names = "default"; + pinctrl-0 = <&i2c0_pins_a>; + clock-frequency = <400000>; + status = "okay"; + + rtc: rtc@51 { + compatible = "nxp,pcf8563"; + reg = <0x51>; + }; + + eeprom: eeprom@52 { + compatible = "atmel,24c64"; + reg = <0x52>; + pagesize = <32>; + }; + }; + + duart: serial@80074000 { + pinctrl-names = "default"; + pinctrl-0 = <&duart_pins_a>; + status = "okay"; + }; + + usbphy0: usbphy@8007c000 { + status = "okay"; + }; + + auart0: serial@8006a000 { + pinctrl-names = "default"; + pinctrl-0 = <&auart0_pins_a>; + status = "okay"; + }; + + rtc@80056000 { + status = "okay"; + }; + }; + }; + + ahb@80080000 { + usb0: usb@80080000 { + vbus-supply = <®_usb0_vbus>; + pinctrl-names = "default"; + pinctrl-0 = <&usbphy0_pins_b>; + status = "okay"; + }; + + mac0: ethernet@800f0000 { + phy-mode = "rmii"; + pinctrl-names = "default"; + pinctrl-0 = <&mac0_pins_a>; + status = "okay"; + }; + + mac1: ethernet@800f4000 { + phy-mode = "rmii"; + pinctrl-names = "default"; + pinctrl-0 = <&mac1_pins_a>; + status = "okay"; + }; + }; + + regulators { + compatible = "simple-bus"; + + reg_usb0_vbus: usb0_vbus { + compatible = "regulator-fixed"; + regulator-name = "usb0_vbus"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + gpio = <&gpio3 9 0>; + enable-active-low; + }; + }; + + leds { + compatible = "gpio-leds"; + pinctrl-names = "default"; + pinctrl-0 = <&led_pins_sps1>; + status = "okay"; + + led@1 { + label = "sps1-1:yellow:user"; + gpios = <&gpio0 6 0>; + linux,default-trigger = "heartbeat"; + }; + + led@2 { + label = "sps1-2:red:user"; + gpios = <&gpio0 3 0>; + linux,default-trigger = "heartbeat"; + }; + + led@3 { + label = "sps1-3:red:user"; + gpios = <&gpio0 0 0>; + default-trigger = "heartbeat"; + }; + + }; +}; diff --git a/arch/arm/mach-mxs/mach-mxs.c b/arch/arm/mach-mxs/mach-mxs.c index 5ac45a1..f131ff1 100644 --- a/arch/arm/mach-mxs/mach-mxs.c +++ b/arch/arm/mach-mxs/mach-mxs.c @@ -279,6 +279,8 @@ static void __init mxs_machine_init(void) m28evk_init(); else if (of_machine_is_compatible("bluegiga,apx4devkit")) apx4devkit_init(); + else if (of_machine_is_compatible("schulercontrol,imx28-sps1")) + imx28_evk_init(); of_platform_populate(NULL, of_default_bus_match_table, mxs_auxdata_lookup, NULL); @@ -298,6 +300,7 @@ static const char *imx28_dt_compat[] __initdata = { "denx,m28evk", "fsl,imx28-evk", "karo,tx28", + "schulercontrol,imx28-sps1", "fsl,imx28", NULL, };
Add DTS file for this custom board. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Fabio Estevam <fabio.estevam@freescale.com> Cc: Shawn Guo <shawn.guo@linaro.org> --- arch/arm/boot/dts/imx28-sps1.dts | 168 ++++++++++++++++++++++++++++++++++++++ arch/arm/mach-mxs/mach-mxs.c | 3 + 2 files changed, 171 insertions(+) create mode 100644 arch/arm/boot/dts/imx28-sps1.dts