1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * Copyright 2012 Free Electrons
4 */
5
6/dts-v1/;
7#include "imx28.dtsi"
8#include <dt-bindings/gpio/gpio.h>
9
10/ {
11	model = "Crystalfontz CFA-10036 Board";
12	compatible = "crystalfontz,cfa10036", "fsl,imx28";
13
14	memory@40000000 {
15		device_type = "memory";
16		reg = <0x40000000 0x08000000>;
17	};
18
19	apb@80000000 {
20		apbh@80000000 {
21			pinctrl@80018000 {
22				ssd1306_cfa10036: ssd1306-10036@0 {
23					reg = <0>;
24					fsl,pinmux-ids = <
25						MX28_PAD_SSP0_DATA7__GPIO_2_7
26					>;
27					fsl,drive-strength = <MXS_DRIVE_4mA>;
28					fsl,voltage = <MXS_VOLTAGE_HIGH>;
29					fsl,pull-up = <MXS_PULL_DISABLE>;
30				};
31
32				led_pins_cfa10036: leds-10036@0 {
33					reg = <0>;
34					fsl,pinmux-ids = <
35						MX28_PAD_AUART1_RX__GPIO_3_4
36					>;
37					fsl,drive-strength = <MXS_DRIVE_4mA>;
38					fsl,voltage = <MXS_VOLTAGE_HIGH>;
39					fsl,pull-up = <MXS_PULL_DISABLE>;
40				};
41
42				usb0_otg_cfa10036: otg-10036@0 {
43					reg = <0>;
44					fsl,pinmux-ids = <
45						MX28_PAD_GPMI_RDY0__USB0_ID
46					>;
47					fsl,drive-strength = <MXS_DRIVE_4mA>;
48					fsl,voltage = <MXS_VOLTAGE_HIGH>;
49					fsl,pull-up = <MXS_PULL_DISABLE>;
50				};
51
52				mmc_pwr_cfa10036: mmc_pwr_cfa10036@0 {
53					reg = <0>;
54					fsl,pinmux-ids = <
55						0x31c3 /*
56						MX28_PAD_PWM3__GPIO_3_28 */
57					>;
58					fsl,drive-strength = <0>;
59					fsl,voltage = <1>;
60					fsl,pull-up = <0>;
61				};
62
63			};
64
65			ssp0: spi@80010000 {
66				compatible = "fsl,imx28-mmc";
67				pinctrl-names = "default";
68				pinctrl-0 = <&mmc0_4bit_pins_a
69					&mmc0_cd_cfg &mmc0_sck_cfg>;
70				vmmc-supply = <&reg_vddio_sd0>;
71				bus-width = <4>;
72				status = "okay";
73			};
74		};
75
76		apbx@80040000 {
77			duart: serial@80074000 {
78				pinctrl-names = "default";
79				pinctrl-0 = <&duart_pins_b>;
80				status = "okay";
81			};
82
83			i2c0: i2c@80058000 {
84				pinctrl-names = "default";
85				pinctrl-0 = <&i2c0_pins_b>;
86				clock-frequency = <400000>;
87				status = "okay";
88
89				ssd1306: oled@3c {
90					compatible = "solomon,ssd1306fb-i2c";
91					pinctrl-names = "default";
92					pinctrl-0 = <&ssd1306_cfa10036>;
93					reg = <0x3c>;
94					reset-gpios = <&gpio2 7 GPIO_ACTIVE_LOW>;
95					solomon,height = <32>;
96					solomon,width = <128>;
97					solomon,page-offset = <0>;
98					solomon,com-lrremap;
99					solomon,com-invdir;
100					solomon,com-offset = <32>;
101				};
102			};
103
104			usbphy0: usbphy@8007c000 {
105				status = "okay";
106			};
107		};
108	};
109
110	ahb@80080000 {
111		usb0: usb@80080000 {
112			pinctrl-names = "default";
113			pinctrl-0 = <&usb0_otg_cfa10036>;
114			dr_mode = "peripheral";
115			phy_type = "utmi";
116			status = "okay";
117		};
118	};
119
120	leds {
121		compatible = "gpio-leds";
122		pinctrl-names = "default";
123		pinctrl-0 = <&led_pins_cfa10036>;
124
125		power {
126			gpios = <&gpio3 4 1>;
127			default-state = "on";
128		};
129	};
130
131	reg_vddio_sd0: vddio-sd0 {
132		compatible = "regulator-fixed";
133		pinctrl-names = "default";
134		pinctrl-0 = <&mmc_pwr_cfa10036>;
135		regulator-name = "vddio-sd0";
136		regulator-min-microvolt = <3300000>;
137		regulator-max-microvolt = <3300000>;
138		gpio = <&gpio3 28 0>;
139	};
140};
141