Skip to content
Snippets Groups Projects
imx23-olinuxino.dts 4.09 KiB
/*
 * 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 = "olimex,imx23-olinuxino", "fsl,imx23";

	memory {
		reg = <0x40000000 0x04000000>;
	};

	apb@80000000 {
		apbh@80000000 {
			ssp0: ssp@80010000 {
				compatible = "fsl,imx23-mmc";
				pinctrl-names = "default";
				pinctrl-0 = <&mmc0_4bit_pins_a &mmc0_pins_fixup>;
				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 = <
						0x0113 /* MX23_PAD_GPMI_ALE__GPIO_0_17 */
					>;
					fsl,drive-strength = <0>;
					fsl,voltage = <1>;
					fsl,pull-up = <0>;
				};

				led_pin_gpio2_1: led_gpio2_1@0 {
					reg = <0>;
					fsl,pinmux-ids = <
						0x2013 /* MX23_PAD_SSP1_DETECT__GPIO_2_1 */
					>;
					fsl,drive-strength = <0>;
					fsl,voltage = <1>;
					fsl,pull-up = <0>;
				};
				lcdif_16bit_pins_a: lcdif-16bit@0 {
					reg = <0>;
					fsl,pinmux-ids = <
						MX23_PAD_LCD_D00__LCD_D00
						MX23_PAD_LCD_D01__LCD_D01
						MX23_PAD_LCD_D02__LCD_D02
						MX23_PAD_LCD_D03__LCD_D03
						MX23_PAD_LCD_D04__LCD_D04
						MX23_PAD_LCD_D05__LCD_D05
						MX23_PAD_LCD_D06__LCD_D06
						MX23_PAD_LCD_D07__LCD_D07
						MX23_PAD_LCD_D08__LCD_D08
						MX23_PAD_LCD_D09__LCD_D09
						MX23_PAD_LCD_D10__LCD_D10
						MX23_PAD_LCD_D11__LCD_D11
						MX23_PAD_LCD_D12__LCD_D12
						MX23_PAD_LCD_D13__LCD_D13
						MX23_PAD_LCD_D14__LCD_D14
						MX23_PAD_LCD_D15__LCD_D15
						MX23_PAD_LCD_DOTCK__LCD_DOTCK
						MX23_PAD_LCD_ENABLE__LCD_ENABLE
						MX23_PAD_LCD_HSYNC__LCD_HSYNC
						MX23_PAD_LCD_VSYNC__LCD_VSYNC
					>;
					fsl,drive-strength = <MXS_DRIVE_12mA>;
					fsl,voltage = <MXS_VOLTAGE_HIGH>;
					fsl,pull-up = <MXS_PULL_DISABLE>;
				};

			};

			ssp1: ssp@80034000 {
				#address-cells = <1>;
				#size-cells = <0>;
				compatible = "fsl,imx23-spi";
				pinctrl-names = "default";
				pinctrl-0 = <&spi2_pins_a>;
				status = "okay";
			};

			lcdif@80030000 {
				pinctrl-names = "default";
				pinctrl-0 = <&lcdif_16bit_pins_a>;
				display = <&display>;
				status = "okay";

				display: display {
					bits-per-pixel = <16>;
					bus-width = <16>;

					display-timings {
						native-mode = <&timing0>;
						timing0: timing0 {
							clock-frequency = <2000000>;
							hactive = <960>; /* 960 */
							vactive = <8>;
							hback-porch = <0>; /* can be 0 */
							hfront-porch = <1>; /* canNOT be 0 */
							vback-porch = <1>;
							vfront-porch = <0>;
							hsync-len = <1>; /* Can be 0, but imx does weird things that way... */
							vsync-len = <1>;
							hsync-active = <1>;
							vsync-active = <1>;
							de-active = <0>;
							pixelclk-active = <1>;
						};
					};
				};
			};
		};

		apbx@80040000 {
			lradc@80050000 {
				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 {
			vbus-supply = <&reg_usb0_vbus>;
			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>;
			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 1>;
		};
	};
};