diff mbox series

[1/2] mx23_olinuxino: enable device tree

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

Commit Message

Trevor Woerner March 22, 2021, 1:34 a.m. UTC
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

Comments

Sean Anderson March 22, 2021, 4:38 a.m. UTC | #1
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 = <&reg_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
>
Fabio Estevam March 22, 2021, 11:57 a.m. UTC | #2
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 mbox series

Patch

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 = <&reg_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