1/*
2 * Copyright 2013 Crystalfontz America, Inc.
3 * 				  Free Electrons
4 *
5 * The code contained herein is licensed under the GNU General Public
6 * License. You may obtain a copy of the GNU General Public License
7 * Version 2 or later at the following locations:
8 *
9 * http://www.opensource.org/licenses/gpl-license.html
10 * http://www.gnu.org/copyleft/gpl.html
11 */
12
13/*
14 * The CFA-10055 is an expansion board for the CFA-10036 module and
15 * CFA-10037, thus we need to include the CFA-10037 DTS.
16 */
17#include "imx28-cfa10037.dts"
18
19/ {
20	model = "Crystalfontz CFA-10055 Board";
21	compatible = "crystalfontz,cfa10055", "crystalfontz,cfa10037", "crystalfontz,cfa10036", "fsl,imx28";
22
23	apb@80000000 {
24		apbh@80000000 {
25			pinctrl@80018000 {
26				spi2_pins_cfa10055: spi2-cfa10055@0 {
27					reg = <0>;
28					fsl,pinmux-ids = <
29						MX28_PAD_SSP2_SCK__GPIO_2_16
30						MX28_PAD_SSP2_MOSI__GPIO_2_17
31						MX28_PAD_SSP2_MISO__GPIO_2_18
32						MX28_PAD_AUART1_TX__GPIO_3_5
33					>;
34					fsl,drive-strength = <MXS_DRIVE_8mA>;
35					fsl,voltage = <MXS_VOLTAGE_HIGH>;
36					fsl,pull-up = <MXS_PULL_ENABLE>;
37				};
38
39				lcdif_18bit_pins_cfa10055: lcdif-18bit@0 {
40					reg = <0>;
41					fsl,pinmux-ids = <
42						MX28_PAD_LCD_D00__LCD_D0
43						MX28_PAD_LCD_D01__LCD_D1
44						MX28_PAD_LCD_D02__LCD_D2
45						MX28_PAD_LCD_D03__LCD_D3
46						MX28_PAD_LCD_D04__LCD_D4
47						MX28_PAD_LCD_D05__LCD_D5
48						MX28_PAD_LCD_D06__LCD_D6
49						MX28_PAD_LCD_D07__LCD_D7
50						MX28_PAD_LCD_D08__LCD_D8
51						MX28_PAD_LCD_D09__LCD_D9
52						MX28_PAD_LCD_D10__LCD_D10
53						MX28_PAD_LCD_D11__LCD_D11
54						MX28_PAD_LCD_D12__LCD_D12
55						MX28_PAD_LCD_D13__LCD_D13
56						MX28_PAD_LCD_D14__LCD_D14
57						MX28_PAD_LCD_D15__LCD_D15
58						MX28_PAD_LCD_D16__LCD_D16
59						MX28_PAD_LCD_D17__LCD_D17
60					>;
61					fsl,drive-strength = <MXS_DRIVE_4mA>;
62					fsl,voltage = <MXS_VOLTAGE_HIGH>;
63					fsl,pull-up = <MXS_PULL_DISABLE>;
64				};
65
66				lcdif_pins_cfa10055: lcdif-evk@0 {
67					reg = <0>;
68					fsl,pinmux-ids = <
69						MX28_PAD_LCD_RD_E__LCD_VSYNC
70						MX28_PAD_LCD_WR_RWN__LCD_HSYNC
71						MX28_PAD_LCD_RS__LCD_DOTCLK
72						MX28_PAD_LCD_CS__LCD_ENABLE
73					>;
74					fsl,drive-strength = <MXS_DRIVE_4mA>;
75					fsl,voltage = <MXS_VOLTAGE_HIGH>;
76					fsl,pull-up = <MXS_PULL_DISABLE>;
77				};
78
79				lcdif_pins_cfa10055_pullup: lcdif-10055-pullup@0 {
80					reg = <0>;
81					fsl,pinmux-ids = <
82						MX28_PAD_LCD_RESET__GPIO_3_30
83					>;
84					fsl,drive-strength = <MXS_DRIVE_4mA>;
85					fsl,voltage = <MXS_VOLTAGE_HIGH>;
86					fsl,pull-up = <MXS_PULL_ENABLE>;
87				};
88			};
89
90			lcdif@80030000 {
91				pinctrl-names = "default";
92				pinctrl-0 = <&lcdif_18bit_pins_cfa10055
93					     &lcdif_pins_cfa10055
94					     &lcdif_pins_cfa10055_pullup>;
95				display = <&display0>;
96				status = "okay";
97
98				display0: display0 {
99					bits-per-pixel = <32>;
100					bus-width = <18>;
101
102					display-timings {
103						native-mode = <&timing0>;
104						timing0: timing0 {
105							clock-frequency = <9216000>;
106							hactive = <320>;
107							vactive = <480>;
108							hback-porch = <2>;
109							hfront-porch = <2>;
110							vback-porch = <2>;
111							vfront-porch = <2>;
112							hsync-len = <15>;
113							vsync-len = <15>;
114							hsync-active = <0>;
115							vsync-active = <0>;
116							de-active = <1>;
117							pixelclk-active = <1>;
118						};
119					};
120				};
121			};
122		};
123
124		apbx@80040000 {
125			lradc@80050000 {
126				fsl,lradc-touchscreen-wires = <4>;
127				status = "okay";
128			};
129
130			pwm: pwm@80064000 {
131				pinctrl-names = "default";
132				pinctrl-0 = <&pwm3_pins_b>;
133				status = "okay";
134			};
135		};
136	};
137
138	spi2 {
139		compatible = "spi-gpio";
140		pinctrl-names = "default";
141		pinctrl-0 = <&spi2_pins_cfa10055>;
142		status = "okay";
143		gpio-sck = <&gpio2 16 0>;
144		gpio-mosi = <&gpio2 17 0>;
145		gpio-miso = <&gpio2 18 0>;
146		cs-gpios = <&gpio3 5 0>;
147		num-chipselects = <1>;
148		#address-cells = <1>;
149		#size-cells = <0>;
150
151		hx8357: hx8357@0 {
152			compatible = "himax,hx8357b", "himax,hx8357";
153			reg = <0>;
154			spi-max-frequency = <100000>;
155			spi-cpol;
156			spi-cpha;
157			gpios-reset = <&gpio3 30 0>;
158		};
159	};
160
161	backlight {
162		compatible = "pwm-backlight";
163		pwms = <&pwm 3 5000000>;
164		brightness-levels = <0 4 8 16 32 64 128 255>;
165		default-brightness-level = <6>;
166	};
167};
168