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	regulators {
18		compatible = "simple-bus";
19		#address-cells = <1>;
20		#size-cells = <0>;
21
22		reg_usb1_vbus: regulator@0 {
23			pinctrl-names = "default";
24			pinctrl-0 = <&usb_pins_cfa10058>;
25			compatible = "regulator-fixed";
26			reg = <0>;
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 3 5000000>;
37		brightness-levels = <0 4 8 16 32 64 128 255>;
38		default-brightness-level = <6>;
39	};
40};
41
42&lcdif {
43	pinctrl-names = "default";
44	pinctrl-0 = <&lcdif_24bit_pins_a
45			 &lcdif_pins_cfa10058>;
46	display = <&display0>;
47	status = "okay";
48
49	display0: display0 {
50		bits-per-pixel = <32>;
51		bus-width = <24>;
52
53		display-timings {
54			native-mode = <&timing0>;
55			timing0: timing0 {
56				clock-frequency = <30000000>;
57				hactive = <800>;
58				vactive = <480>;
59				hback-porch = <40>;
60				hfront-porch = <40>;
61				vback-porch = <13>;
62				vfront-porch = <29>;
63				hsync-len = <8>;
64				vsync-len = <8>;
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&mac0 {
80	phy-mode = "rmii";
81	pinctrl-names = "default";
82	pinctrl-0 = <&mac0_pins_a>;
83	phy-reset-gpios = <&gpio2 21 GPIO_ACTIVE_LOW>;
84	phy-reset-duration = <100>;
85	status = "okay";
86};
87
88&pinctrl {
89	usb_pins_cfa10058: usb-10058@0 {
90		reg = <0>;
91		fsl,pinmux-ids = <
92			MX28_PAD_GPMI_D07__GPIO_0_7
93		>;
94		fsl,drive-strength = <MXS_DRIVE_4mA>;
95		fsl,voltage = <MXS_VOLTAGE_HIGH>;
96		fsl,pull-up = <MXS_PULL_DISABLE>;
97	};
98
99	lcdif_pins_cfa10058: lcdif-10058@0 {
100		reg = <0>;
101		fsl,pinmux-ids = <
102			MX28_PAD_LCD_RD_E__LCD_VSYNC
103			MX28_PAD_LCD_WR_RWN__LCD_HSYNC
104			MX28_PAD_LCD_RS__LCD_DOTCLK
105			MX28_PAD_LCD_CS__LCD_ENABLE
106		>;
107		fsl,drive-strength = <MXS_DRIVE_4mA>;
108		fsl,voltage = <MXS_VOLTAGE_HIGH>;
109		fsl,pull-up = <MXS_PULL_DISABLE>;
110	};
111};
112
113&pwm {
114	pinctrl-names = "default";
115	pinctrl-0 = <&pwm3_pins_b>;
116	status = "okay";
117};
118
119&usb1 {
120	vbus-supply = <&reg_usb1_vbus>;
121	pinctrl-0 = <&usb1_pins_a>;
122	pinctrl-names = "default";
123	status = "okay";
124};
125
126&usbphy1 {
127	status = "okay";
128};
129