Message ID | 20210322013454.13782-1-twoerner@gmail.com |
---|---|
State | Superseded |
Delegated to: | Stefano Babic |
Headers | show |
Series | [1/2] mx23_olinuxino: enable device tree | expand |
On 3/21/21 9:34 PM, Trevor Woerner wrote: > Add the dts file for the Olimex Olinuxino from the linux kernel, and enable > its use in this machine's defconfig. > > Signed-off-by: Trevor Woerner <twoerner@gmail.com> > --- > arch/arm/dts/Makefile | 3 + > arch/arm/dts/imx23-olinuxino.dts | 131 +++++++++++++++++++++++++++++++ > configs/mx23_olinuxino_defconfig | 3 +- > 3 files changed, 136 insertions(+), 1 deletion(-) > create mode 100644 arch/arm/dts/imx23-olinuxino.dts > > diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile > index c6710826a0..d5cffc90d4 100644 > --- a/arch/arm/dts/Makefile > +++ b/arch/arm/dts/Makefile > @@ -651,6 +651,9 @@ dtb-$(CONFIG_VF610) += vf500-colibri.dtb \ > dtb-$(CONFIG_MX23) += \ > imx23-evk.dtb > > +dtb-$(CONFIG_TARGET_MX23_OLINUXINO) += \ > + imx23-olinuxino.dtb > + > dtb-$(CONFIG_MX28) += \ > imx28-xea.dtb > > diff --git a/arch/arm/dts/imx23-olinuxino.dts b/arch/arm/dts/imx23-olinuxino.dts > new file mode 100644 > index 0000000000..0729e72f22 > --- /dev/null > +++ b/arch/arm/dts/imx23-olinuxino.dts > @@ -0,0 +1,131 @@ > +// SPDX-License-Identifier: GPL-2.0-or-later > +/* > + * Copyright 2012 Freescale Semiconductor, Inc. > + * > + * Author: Fabio Estevam <fabio.estevam@freescale.com> > + */ > + > +/dts-v1/; > +#include <dt-bindings/gpio/gpio.h> > +#include "imx23.dtsi" > + > +/ { > + model = "i.MX23 Olinuxino Low Cost Board"; > + compatible = "olimex,imx23-olinuxino", "fsl,imx23"; > + > + memory@40000000 { > + device_type = "memory"; > + reg = <0x40000000 0x04000000>; > + }; > + > + apb@80000000 { > + apbh@80000000 { > + ssp0: spi@80010000 { > + compatible = "fsl,imx23-mmc"; > + pinctrl-names = "default"; > + pinctrl-0 = <&mmc0_4bit_pins_a &mmc0_sck_cfg>; > + bus-width = <4>; > + broken-cd; > + status = "okay"; > + }; > + > + pinctrl@80018000 { > + pinctrl-names = "default"; > + pinctrl-0 = <&hog_pins_a>; > + > + hog_pins_a: hog@0 { > + reg = <0>; > + fsl,pinmux-ids = < > + MX23_PAD_GPMI_ALE__GPIO_0_17 > + >; > + fsl,drive-strength = <MXS_DRIVE_4mA>; > + fsl,voltage = <MXS_VOLTAGE_HIGH>; > + fsl,pull-up = <MXS_PULL_DISABLE>; > + }; > + > + led_pin_gpio2_1: led_gpio2_1@0 { > + reg = <0>; > + fsl,pinmux-ids = < > + MX23_PAD_SSP1_DETECT__GPIO_2_1 > + >; > + fsl,drive-strength = <MXS_DRIVE_4mA>; > + fsl,voltage = <MXS_VOLTAGE_HIGH>; > + fsl,pull-up = <MXS_PULL_DISABLE>; > + }; > + }; > + > + ssp1: spi@80034000 { > + #address-cells = <1>; > + #size-cells = <0>; > + compatible = "fsl,imx23-spi"; > + pinctrl-names = "default"; > + pinctrl-0 = <&spi2_pins_a>; > + status = "okay"; > + }; > + }; > + > + apbx@80040000 { > + lradc@80050000 { > + status = "okay"; > + }; > + > + i2c: i2c@80058000 { > + pinctrl-names = "default"; > + pinctrl-0 = <&i2c_pins_b>; > + status = "okay"; > + }; > + > + duart: serial@80070000 { > + pinctrl-names = "default"; > + pinctrl-0 = <&duart_pins_a>; > + status = "okay"; > + }; > + > + auart0: serial@8006c000 { > + pinctrl-names = "default"; > + pinctrl-0 = <&auart0_2pins_a>; > + status = "okay"; > + }; > + > + usbphy0: usbphy@8007c000 { > + status = "okay"; > + }; > + }; > + }; > + > + ahb@80080000 { > + usb0: usb@80080000 { > + dr_mode = "host"; > + vbus-supply = <®_usb0_vbus>; > + status = "okay"; > + }; > + }; > + > + regulators { Does this need to be on a separate bus? Can't you just add the regulator at the top-level with no register? --Sean > + compatible = "simple-bus"; > + #address-cells = <1>; > + #size-cells = <0>; > + > + reg_usb0_vbus: regulator@0 { > + compatible = "regulator-fixed"; > + reg = <0>; > + regulator-name = "usb0_vbus"; > + regulator-min-microvolt = <5000000>; > + regulator-max-microvolt = <5000000>; > + enable-active-high; > + startup-delay-us = <300>; /* LAN9215 requires a POR of 200us minimum */ > + gpio = <&gpio0 17 0>; > + }; > + }; > + > + leds { > + compatible = "gpio-leds"; > + pinctrl-names = "default"; > + pinctrl-0 = <&led_pin_gpio2_1>; > + > + user { > + label = "green"; > + gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>; > + }; > + }; > +}; > diff --git a/configs/mx23_olinuxino_defconfig b/configs/mx23_olinuxino_defconfig > index 0da54c9e76..2bf6818ee3 100644 > --- a/configs/mx23_olinuxino_defconfig > +++ b/configs/mx23_olinuxino_defconfig > @@ -11,6 +11,7 @@ CONFIG_SPL_TEXT_BASE=0x00001000 > CONFIG_TARGET_MX23_OLINUXINO=y > CONFIG_SPL_SERIAL_SUPPORT=y > CONFIG_SPL=y > +CONFIG_DEFAULT_DEVICE_TREE="imx23-olinuxino" > CONFIG_BOOTDELAY=3 > # CONFIG_DISPLAY_BOARDINFO is not set > CONFIG_ARCH_MISC_INIT=y > @@ -24,6 +25,7 @@ CONFIG_CMD_DHCP=y > CONFIG_CMD_CACHE=y > CONFIG_CMD_EXT2=y > CONFIG_CMD_FAT=y > +CONFIG_OF_CONTROL=y > CONFIG_ENV_OVERWRITE=y > CONFIG_ENV_IS_IN_MMC=y > CONFIG_SYS_RELOC_GD_ENV_ADDR=y > @@ -44,4 +46,3 @@ CONFIG_USB_EHCI_HCD=y > CONFIG_USB_STORAGE=y > CONFIG_USB_HOST_ETHER=y > CONFIG_USB_ETHER_SMSC95XX=y > -CONFIG_OF_LIBFDT=y >
Hi Sean, On Mon, Mar 22, 2021 at 1:38 AM Sean Anderson <seanga2@gmail.com> wrote: > > + regulators { > > Does this need to be on a separate bus? Can't you just add the regulator > at the top-level with no register? Trevor has only imported the file from the Linux tree. Yes, your suggestion makes sense, but it should be fixed in the kernel dts first to avoid U-Boot/kernel dts mismatches. I am OK with using the Linux dts files for now.
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile index c6710826a0..d5cffc90d4 100644 --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile @@ -651,6 +651,9 @@ dtb-$(CONFIG_VF610) += vf500-colibri.dtb \ dtb-$(CONFIG_MX23) += \ imx23-evk.dtb +dtb-$(CONFIG_TARGET_MX23_OLINUXINO) += \ + imx23-olinuxino.dtb + dtb-$(CONFIG_MX28) += \ imx28-xea.dtb diff --git a/arch/arm/dts/imx23-olinuxino.dts b/arch/arm/dts/imx23-olinuxino.dts new file mode 100644 index 0000000000..0729e72f22 --- /dev/null +++ b/arch/arm/dts/imx23-olinuxino.dts @@ -0,0 +1,131 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright 2012 Freescale Semiconductor, Inc. + * + * Author: Fabio Estevam <fabio.estevam@freescale.com> + */ + +/dts-v1/; +#include <dt-bindings/gpio/gpio.h> +#include "imx23.dtsi" + +/ { + model = "i.MX23 Olinuxino Low Cost Board"; + compatible = "olimex,imx23-olinuxino", "fsl,imx23"; + + memory@40000000 { + device_type = "memory"; + reg = <0x40000000 0x04000000>; + }; + + apb@80000000 { + apbh@80000000 { + ssp0: spi@80010000 { + compatible = "fsl,imx23-mmc"; + pinctrl-names = "default"; + pinctrl-0 = <&mmc0_4bit_pins_a &mmc0_sck_cfg>; + bus-width = <4>; + broken-cd; + status = "okay"; + }; + + pinctrl@80018000 { + pinctrl-names = "default"; + pinctrl-0 = <&hog_pins_a>; + + hog_pins_a: hog@0 { + reg = <0>; + fsl,pinmux-ids = < + MX23_PAD_GPMI_ALE__GPIO_0_17 + >; + fsl,drive-strength = <MXS_DRIVE_4mA>; + fsl,voltage = <MXS_VOLTAGE_HIGH>; + fsl,pull-up = <MXS_PULL_DISABLE>; + }; + + led_pin_gpio2_1: led_gpio2_1@0 { + reg = <0>; + fsl,pinmux-ids = < + MX23_PAD_SSP1_DETECT__GPIO_2_1 + >; + fsl,drive-strength = <MXS_DRIVE_4mA>; + fsl,voltage = <MXS_VOLTAGE_HIGH>; + fsl,pull-up = <MXS_PULL_DISABLE>; + }; + }; + + ssp1: spi@80034000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "fsl,imx23-spi"; + pinctrl-names = "default"; + pinctrl-0 = <&spi2_pins_a>; + status = "okay"; + }; + }; + + apbx@80040000 { + lradc@80050000 { + status = "okay"; + }; + + i2c: i2c@80058000 { + pinctrl-names = "default"; + pinctrl-0 = <&i2c_pins_b>; + status = "okay"; + }; + + duart: serial@80070000 { + pinctrl-names = "default"; + pinctrl-0 = <&duart_pins_a>; + status = "okay"; + }; + + auart0: serial@8006c000 { + pinctrl-names = "default"; + pinctrl-0 = <&auart0_2pins_a>; + status = "okay"; + }; + + usbphy0: usbphy@8007c000 { + status = "okay"; + }; + }; + }; + + ahb@80080000 { + usb0: usb@80080000 { + dr_mode = "host"; + vbus-supply = <®_usb0_vbus>; + status = "okay"; + }; + }; + + regulators { + compatible = "simple-bus"; + #address-cells = <1>; + #size-cells = <0>; + + reg_usb0_vbus: regulator@0 { + compatible = "regulator-fixed"; + reg = <0>; + regulator-name = "usb0_vbus"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + enable-active-high; + startup-delay-us = <300>; /* LAN9215 requires a POR of 200us minimum */ + gpio = <&gpio0 17 0>; + }; + }; + + leds { + compatible = "gpio-leds"; + pinctrl-names = "default"; + pinctrl-0 = <&led_pin_gpio2_1>; + + user { + label = "green"; + gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>; + }; + }; +}; diff --git a/configs/mx23_olinuxino_defconfig b/configs/mx23_olinuxino_defconfig index 0da54c9e76..2bf6818ee3 100644 --- a/configs/mx23_olinuxino_defconfig +++ b/configs/mx23_olinuxino_defconfig @@ -11,6 +11,7 @@ CONFIG_SPL_TEXT_BASE=0x00001000 CONFIG_TARGET_MX23_OLINUXINO=y CONFIG_SPL_SERIAL_SUPPORT=y CONFIG_SPL=y +CONFIG_DEFAULT_DEVICE_TREE="imx23-olinuxino" CONFIG_BOOTDELAY=3 # CONFIG_DISPLAY_BOARDINFO is not set CONFIG_ARCH_MISC_INIT=y @@ -24,6 +25,7 @@ CONFIG_CMD_DHCP=y CONFIG_CMD_CACHE=y CONFIG_CMD_EXT2=y CONFIG_CMD_FAT=y +CONFIG_OF_CONTROL=y CONFIG_ENV_OVERWRITE=y CONFIG_ENV_IS_IN_MMC=y CONFIG_SYS_RELOC_GD_ENV_ADDR=y @@ -44,4 +46,3 @@ CONFIG_USB_EHCI_HCD=y CONFIG_USB_STORAGE=y CONFIG_USB_HOST_ETHER=y CONFIG_USB_ETHER_SMSC95XX=y -CONFIG_OF_LIBFDT=y
Add the dts file for the Olimex Olinuxino from the linux kernel, and enable its use in this machine's defconfig. Signed-off-by: Trevor Woerner <twoerner@gmail.com> --- arch/arm/dts/Makefile | 3 + arch/arm/dts/imx23-olinuxino.dts | 131 +++++++++++++++++++++++++++++++ configs/mx23_olinuxino_defconfig | 3 +- 3 files changed, 136 insertions(+), 1 deletion(-) create mode 100644 arch/arm/dts/imx23-olinuxino.dts