1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * Copyright 2013 Crystalfontz America, Inc.
4 * Copyright 2013 Free Electrons
5 */
6
7/*
8 * The CFA-10058 is an expansion board for the CFA-10036 module, thus we
9 * need to include the CFA-10036 DTS.
10 */
11#include "imx28-cfa10036.dts"
12
13/ {
14	model = "Crystalfontz CFA-10058 Board";
15	compatible = "crystalfontz,cfa10058", "crystalfontz,cfa10036", "fsl,imx28";
16
17	apb@80000000 {
18		apbh@80000000 {
19			pinctrl@80018000 {
20				usb_pins_cfa10058: usb-10058@0 {
21					reg = <0>;
22					fsl,pinmux-ids = <
23						MX28_PAD_GPMI_D07__GPIO_0_7
24					>;
25					fsl,drive-strength = <MXS_DRIVE_4mA>;
26					fsl,voltage = <MXS_VOLTAGE_HIGH>;
27					fsl,pull-up = <MXS_PULL_DISABLE>;
28				};
29
30				lcdif_pins_cfa10058: lcdif-10058@0 {
31					reg = <0>;
32					fsl,pinmux-ids = <
33						MX28_PAD_LCD_RD_E__LCD_VSYNC
34						MX28_PAD_LCD_WR_RWN__LCD_HSYNC
35						MX28_PAD_LCD_RS__LCD_DOTCLK
36						MX28_PAD_LCD_CS__LCD_ENABLE
37					>;
38					fsl,drive-strength = <MXS_DRIVE_4mA>;
39					fsl,voltage = <MXS_VOLTAGE_HIGH>;
40					fsl,pull-up = <MXS_PULL_DISABLE>;
41				};
42			};
43
44			lcdif@80030000 {
45				pinctrl-names = "default";
46				pinctrl-0 = <&lcdif_24bit_pins_a
47						 &lcdif_pins_cfa10058>;
48				display = <&display0>;
49				status = "okay";
50
51				display0: display0 {
52					bits-per-pixel = <32>;
53					bus-width = <24>;
54
55					display-timings {
56						native-mode = <&timing0>;
57						timing0: timing0 {
58							clock-frequency = <30000000>;
59							hactive = <800>;
60							vactive = <480>;
61							hback-porch = <40>;
62							hfront-porch = <40>;
63							vback-porch = <13>;
64							vfront-porch = <29>;
65							hsync-len = <8>;
66							vsync-len = <8>;
67							hsync-active = <0>;
68							vsync-active = <0>;
69							de-active = <1>;
70							pixelclk-active = <1>;
71						};
72					};
73				};
74			};
75		};
76
77		apbx@80040000 {
78			lradc@80050000 {
79				fsl,lradc-touchscreen-wires = <4>;
80				status = "okay";
81			};
82
83			pwm: pwm@80064000 {
84				pinctrl-names = "default";
85				pinctrl-0 = <&pwm3_pins_b>;
86				status = "okay";
87			};
88
89			usbphy1: usbphy@8007e000 {
90				status = "okay";
91			};
92		};
93	};
94
95	ahb@80080000 {
96		usb1: usb@80090000 {
97			vbus-supply = <&reg_usb1_vbus>;
98			pinctrl-0 = <&usb1_pins_a>;
99			pinctrl-names = "default";
100			status = "okay";
101		};
102	};
103
104	regulators {
105		compatible = "simple-bus";
106		#address-cells = <1>;
107		#size-cells = <0>;
108
109		reg_usb1_vbus: regulator@0 {
110			pinctrl-names = "default";
111			pinctrl-0 = <&usb_pins_cfa10058>;
112			compatible = "regulator-fixed";
113			reg = <0>;
114			regulator-name = "usb1_vbus";
115			regulator-min-microvolt = <5000000>;
116			regulator-max-microvolt = <5000000>;
117			gpio = <&gpio0 7 1>;
118		};
119	};
120
121	ahb@80080000 {
122		mac0: ethernet@800f0000 {
123			phy-mode = "rmii";
124			pinctrl-names = "default";
125			pinctrl-0 = <&mac0_pins_a>;
126			phy-reset-gpios = <&gpio2 21 GPIO_ACTIVE_LOW>;
127			phy-reset-duration = <100>;
128			status = "okay";
129		};
130	};
131
132	backlight {
133		compatible = "pwm-backlight";
134		pwms = <&pwm 3 5000000>;
135		brightness-levels = <0 4 8 16 32 64 128 255>;
136		default-brightness-level = <6>;
137	};
138};
139