[PATCH 4/4] ARM: mxs: Add SchulerControl SPS1 DTS file
Shawn Guo
shawn.guo at linaro.org
Sat Aug 25 04:30:45 EDT 2012
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 at denx.de>
> Cc: Fabio Estevam <fabio.estevam at freescale.com>
> Cc: Shawn Guo <shawn.guo at 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 at 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 at 80000000 {
> + apbh at 80000000 {
> + pinctrl at 80018000 {
> + led_pins_sps1: leds at 0 {
It should be referenced by the pinctrl state directly under node
pinctrl at 80018000, otherwise the pins will not be set up.
Also we usually use a generic name here something like
hog_pins_a: hog at 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 at 80010000 {
> + compatible = "fsl,imx28-mmc";
> + pinctrl-names = "default";
> + pinctrl-0 = <&mmc0_4bit_pins_a>;
> + bus-width = <4>;
> + status = "okay";
> + };
> +
> + ssp2: ssp at 80014000 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + compatible = "fsl,imx28-spi";
> + pinctrl-names = "default";
> + pinctrl-0 = <&spi2_pins_a>;
> + status = "okay";
> +
> + flash: m25p80 at 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 at 80040000 {
> + i2c0: i2c at 80058000 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&i2c0_pins_a>;
> + clock-frequency = <400000>;
> + status = "okay";
> +
> + rtc: rtc at 51 {
> + compatible = "nxp,pcf8563";
> + reg = <0x51>;
> + };
> +
> + eeprom: eeprom at 52 {
> + compatible = "atmel,24c64";
> + reg = <0x52>;
> + pagesize = <32>;
> + };
> + };
> +
> + duart: serial at 80074000 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&duart_pins_a>;
> + status = "okay";
> + };
> +
> + usbphy0: usbphy at 8007c000 {
> + status = "okay";
> + };
> +
> + auart0: serial at 8006a000 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&auart0_pins_a>;
> + status = "okay";
> + };
> +
> + rtc at 80056000 {
> + status = "okay";
> + };
This is not needed. We have rtc enabled in imx28.dtsi by default now.
> + };
> + };
> +
> + ahb at 80080000 {
> + usb0: usb at 80080000 {
> + vbus-supply = <®_usb0_vbus>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&usbphy0_pins_b>;
> + status = "okay";
> + };
> +
> + mac0: ethernet at 800f0000 {
> + phy-mode = "rmii";
> + pinctrl-names = "default";
> + pinctrl-0 = <&mac0_pins_a>;
> + status = "okay";
> + };
> +
> + mac1: ethernet at 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 at 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 at 2 {
> + label = "sps1-2:red:user";
> + gpios = <&gpio0 3 0>;
> + linux,default-trigger = "heartbeat";
> + };
> +
> + led at 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
>
--
Regards,
Shawn
More information about the linux-arm-kernel
mailing list