// 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-bus@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-bus@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";
		};
	};

	reg_usb0_vbus: regulator-0 {
		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 GPIO_ACTIVE_HIGH>;
		};
	};
};
