// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * Copyright 2013 Crystalfontz America, Inc.
 * Copyright 2012 Free Electrons
 */

/*
 * The CFA-10057 is an expansion board for the CFA-10036 module, thus we
 * need to include the CFA-10036 DTS.
 */
#include "imx28-cfa10036.dts"

/ {
	model = "Crystalfontz CFA-10057 Board";
	compatible = "crystalfontz,cfa10057", "crystalfontz,cfa10036", "fsl,imx28";

	apb@80000000 {
		apbh@80000000 {
			pinctrl@80018000 {
				usb_pins_cfa10057: usb-10057@0 {
					reg = <0>;
					fsl,pinmux-ids = <
						MX28_PAD_GPMI_D07__GPIO_0_7
					>;
					fsl,drive-strength = <MXS_DRIVE_4mA>;
					fsl,voltage = <MXS_VOLTAGE_HIGH>;
					fsl,pull-up = <MXS_PULL_DISABLE>;
				};

				lcdif_18bit_pins_cfa10057: lcdif-18bit@0 {
					reg = <0>;
					fsl,pinmux-ids = <
						MX28_PAD_LCD_D00__LCD_D0
						MX28_PAD_LCD_D01__LCD_D1
						MX28_PAD_LCD_D02__LCD_D2
						MX28_PAD_LCD_D03__LCD_D3
						MX28_PAD_LCD_D04__LCD_D4
						MX28_PAD_LCD_D05__LCD_D5
						MX28_PAD_LCD_D06__LCD_D6
						MX28_PAD_LCD_D07__LCD_D7
						MX28_PAD_LCD_D08__LCD_D8
						MX28_PAD_LCD_D09__LCD_D9
						MX28_PAD_LCD_D10__LCD_D10
						MX28_PAD_LCD_D11__LCD_D11
						MX28_PAD_LCD_D12__LCD_D12
						MX28_PAD_LCD_D13__LCD_D13
						MX28_PAD_LCD_D14__LCD_D14
						MX28_PAD_LCD_D15__LCD_D15
						MX28_PAD_LCD_D16__LCD_D16
						MX28_PAD_LCD_D17__LCD_D17
					>;
					fsl,drive-strength = <MXS_DRIVE_4mA>;
					fsl,voltage = <MXS_VOLTAGE_HIGH>;
					fsl,pull-up = <MXS_PULL_DISABLE>;
				};

				lcdif_pins_cfa10057: lcdif-evk@0 {
					reg = <0>;
					fsl,pinmux-ids = <
						MX28_PAD_LCD_RD_E__LCD_VSYNC
						MX28_PAD_LCD_WR_RWN__LCD_HSYNC
						MX28_PAD_LCD_RS__LCD_DOTCLK
						MX28_PAD_LCD_CS__LCD_ENABLE
					>;
					fsl,drive-strength = <MXS_DRIVE_4mA>;
					fsl,voltage = <MXS_VOLTAGE_HIGH>;
					fsl,pull-up = <MXS_PULL_DISABLE>;
				};
			};

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

				display0: display0 {
					bits-per-pixel = <32>;
					bus-width = <18>;

					display-timings {
						native-mode = <&timing0>;
						timing0: timing0 {
							clock-frequency = <30000000>;
							hactive = <480>;
							vactive = <800>;
							hfront-porch = <12>;
							hback-porch = <2>;
							vfront-porch = <5>;
							vback-porch = <3>;
							hsync-len = <2>;
							vsync-len = <2>;
							hsync-active = <0>;
							vsync-active = <0>;
							de-active = <1>;
							pixelclk-active = <1>;
						};
					};
				};
			};
		};

		apbx@80040000 {
			lradc@80050000 {
				fsl,lradc-touchscreen-wires = <4>;
				status = "okay";
			};

			pwm: pwm@80064000 {
				pinctrl-names = "default";
				pinctrl-0 = <&pwm4_pins_a>;
				status = "okay";
			};

			i2c1: i2c@8005a000 {
				pinctrl-names = "default";
				pinctrl-0 = <&i2c1_pins_a>;
				status = "okay";
			};

			usbphy1: usbphy@8007e000 {
				status = "okay";
			};
		};
	};

	ahb@80080000 {
		usb1: usb@80090000 {
			vbus-supply = <&reg_usb1_vbus>;
			pinctrl-0 = <&usb1_pins_a>;
			pinctrl-names = "default";
			status = "okay";
		};
	};

	regulators {
		compatible = "simple-bus";
		#address-cells = <1>;
		#size-cells = <0>;

		reg_usb1_vbus: regulator@0 {
			compatible = "regulator-fixed";
			reg = <0>;
			pinctrl-names = "default";
			pinctrl-0 = <&usb_pins_cfa10057>;
			regulator-name = "usb1_vbus";
			regulator-min-microvolt = <5000000>;
			regulator-max-microvolt = <5000000>;
			gpio = <&gpio0 7 1>;
		};
	};

	ahb@80080000 {
		mac0: ethernet@800f0000 {
			phy-mode = "rmii";
			pinctrl-names = "default";
			pinctrl-0 = <&mac0_pins_a>;
			phy-reset-gpios = <&gpio2 21 GPIO_ACTIVE_LOW>;
			phy-reset-duration = <100>;
			status = "okay";
		};
	};

	backlight {
		compatible = "pwm-backlight";
		pwms = <&pwm 4 5000000>;
		brightness-levels = <0 4 8 16 32 64 128 255>;
		default-brightness-level = <7>;
	};
};
