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