1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * Copyright 2013 Crystalfontz America, Inc.
4 * Copyright 2012 Free Electrons
5 */
6
7/*
8 * The CFA-10057 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-10057 Board";
15	compatible = "crystalfontz,cfa10057", "crystalfontz,cfa10036", "fsl,imx28";
16
17	regulators {
18		compatible = "simple-bus";
19		#address-cells = <1>;
20		#size-cells = <0>;
21
22		reg_usb1_vbus: regulator@0 {
23			compatible = "regulator-fixed";
24			reg = <0>;
25			pinctrl-names = "default";
26			pinctrl-0 = <&usb_pins_cfa10057>;
27			regulator-name = "usb1_vbus";
28			regulator-min-microvolt = <5000000>;
29			regulator-max-microvolt = <5000000>;
30			gpio = <&gpio0 7 1>;
31		};
32	};
33
34	backlight {
35		compatible = "pwm-backlight";
36		pwms = <&pwm 4 5000000>;
37		brightness-levels = <0 4 8 16 32 64 128 255>;
38		default-brightness-level = <7>;
39	};
40};
41
42&lcdif {
43	pinctrl-names = "default";
44	pinctrl-0 = <&lcdif_18bit_pins_cfa10057
45		     &lcdif_pins_cfa10057>;
46	display = <&display0>;
47	status = "okay";
48
49	display0: display0 {
50		bits-per-pixel = <32>;
51		bus-width = <18>;
52
53		display-timings {
54			native-mode = <&timing0>;
55			timing0: timing0 {
56				clock-frequency = <30000000>;
57				hactive = <480>;
58				vactive = <800>;
59				hfront-porch = <12>;
60				hback-porch = <2>;
61				vfront-porch = <5>;
62				vback-porch = <3>;
63				hsync-len = <2>;
64				vsync-len = <2>;
65				hsync-active = <0>;
66				vsync-active = <0>;
67				de-active = <1>;
68				pixelclk-active = <1>;
69			};
70		};
71	};
72};
73
74&lradc {
75	fsl,lradc-touchscreen-wires = <4>;
76	status = "okay";
77};
78
79&i2c1 {
80	pinctrl-names = "default";
81	pinctrl-0 = <&i2c1_pins_a>;
82	status = "okay";
83};
84
85&mac0 {
86	phy-mode = "rmii";
87	pinctrl-names = "default";
88	pinctrl-0 = <&mac0_pins_a>;
89	phy-reset-gpios = <&gpio2 21 GPIO_ACTIVE_LOW>;
90	phy-reset-duration = <100>;
91	status = "okay";
92};
93
94&pinctrl {
95	usb_pins_cfa10057: usb-10057@0 {
96		reg = <0>;
97		fsl,pinmux-ids = <
98			MX28_PAD_GPMI_D07__GPIO_0_7
99		>;
100		fsl,drive-strength = <MXS_DRIVE_4mA>;
101		fsl,voltage = <MXS_VOLTAGE_HIGH>;
102		fsl,pull-up = <MXS_PULL_DISABLE>;
103	};
104
105	lcdif_18bit_pins_cfa10057: lcdif-18bit@0 {
106		reg = <0>;
107		fsl,pinmux-ids = <
108			MX28_PAD_LCD_D00__LCD_D0
109			MX28_PAD_LCD_D01__LCD_D1
110			MX28_PAD_LCD_D02__LCD_D2
111			MX28_PAD_LCD_D03__LCD_D3
112			MX28_PAD_LCD_D04__LCD_D4
113			MX28_PAD_LCD_D05__LCD_D5
114			MX28_PAD_LCD_D06__LCD_D6
115			MX28_PAD_LCD_D07__LCD_D7
116			MX28_PAD_LCD_D08__LCD_D8
117			MX28_PAD_LCD_D09__LCD_D9
118			MX28_PAD_LCD_D10__LCD_D10
119			MX28_PAD_LCD_D11__LCD_D11
120			MX28_PAD_LCD_D12__LCD_D12
121			MX28_PAD_LCD_D13__LCD_D13
122			MX28_PAD_LCD_D14__LCD_D14
123			MX28_PAD_LCD_D15__LCD_D15
124			MX28_PAD_LCD_D16__LCD_D16
125			MX28_PAD_LCD_D17__LCD_D17
126		>;
127		fsl,drive-strength = <MXS_DRIVE_4mA>;
128		fsl,voltage = <MXS_VOLTAGE_HIGH>;
129		fsl,pull-up = <MXS_PULL_DISABLE>;
130	};
131
132	lcdif_pins_cfa10057: lcdif-evk@0 {
133		reg = <0>;
134		fsl,pinmux-ids = <
135			MX28_PAD_LCD_RD_E__LCD_VSYNC
136			MX28_PAD_LCD_WR_RWN__LCD_HSYNC
137			MX28_PAD_LCD_RS__LCD_DOTCLK
138			MX28_PAD_LCD_CS__LCD_ENABLE
139		>;
140		fsl,drive-strength = <MXS_DRIVE_4mA>;
141		fsl,voltage = <MXS_VOLTAGE_HIGH>;
142		fsl,pull-up = <MXS_PULL_DISABLE>;
143	};
144};
145
146&pwm {
147	pinctrl-names = "default";
148	pinctrl-0 = <&pwm4_pins_a>;
149	status = "okay";
150};
151
152&usb1 {
153	vbus-supply = <&reg_usb1_vbus>;
154	pinctrl-0 = <&usb1_pins_a>;
155	pinctrl-names = "default";
156	status = "okay";
157};
158
159&usbphy1 {
160	status = "okay";
161};
162