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	leds {
20		compatible = "gpio-leds";
21		pinctrl-names = "default";
22		pinctrl-0 = <&led_pins_cfa10036>;
23
24		power {
25			gpios = <&gpio3 4 1>;
26			default-state = "on";
27		};
28	};
29
30	reg_vddio_sd0: vddio-sd0 {
31		compatible = "regulator-fixed";
32		pinctrl-names = "default";
33		pinctrl-0 = <&mmc_pwr_cfa10036>;
34		regulator-name = "vddio-sd0";
35		regulator-min-microvolt = <3300000>;
36		regulator-max-microvolt = <3300000>;
37		gpio = <&gpio3 28 0>;
38	};
39};
40
41&duart {
42	pinctrl-names = "default";
43	pinctrl-0 = <&duart_pins_b>;
44	status = "okay";
45};
46
47&i2c0 {
48	pinctrl-names = "default";
49	pinctrl-0 = <&i2c0_pins_b>;
50	clock-frequency = <400000>;
51	status = "okay";
52
53	ssd1306: oled@3c {
54		compatible = "solomon,ssd1306fb-i2c";
55		pinctrl-names = "default";
56		pinctrl-0 = <&ssd1306_cfa10036>;
57		reg = <0x3c>;
58		reset-gpios = <&gpio2 7 GPIO_ACTIVE_LOW>;
59		solomon,height = <32>;
60		solomon,width = <128>;
61		solomon,page-offset = <0>;
62		solomon,com-lrremap;
63		solomon,com-invdir;
64		solomon,com-offset = <32>;
65	};
66};
67
68&pinctrl {
69	ssd1306_cfa10036: ssd1306-10036@0 {
70		reg = <0>;
71		fsl,pinmux-ids = <
72			MX28_PAD_SSP0_DATA7__GPIO_2_7
73		>;
74		fsl,drive-strength = <MXS_DRIVE_4mA>;
75		fsl,voltage = <MXS_VOLTAGE_HIGH>;
76		fsl,pull-up = <MXS_PULL_DISABLE>;
77	};
78
79	led_pins_cfa10036: leds-10036@0 {
80		reg = <0>;
81		fsl,pinmux-ids = <
82			MX28_PAD_AUART1_RX__GPIO_3_4
83		>;
84		fsl,drive-strength = <MXS_DRIVE_4mA>;
85		fsl,voltage = <MXS_VOLTAGE_HIGH>;
86		fsl,pull-up = <MXS_PULL_DISABLE>;
87	};
88
89	usb0_otg_cfa10036: otg-10036@0 {
90		reg = <0>;
91		fsl,pinmux-ids = <
92			MX28_PAD_GPMI_RDY0__USB0_ID
93		>;
94		fsl,drive-strength = <MXS_DRIVE_4mA>;
95		fsl,voltage = <MXS_VOLTAGE_HIGH>;
96		fsl,pull-up = <MXS_PULL_DISABLE>;
97	};
98
99	mmc_pwr_cfa10036: mmc_pwr_cfa10036@0 {
100		reg = <0>;
101		fsl,pinmux-ids = <
102			0x31c3 /*
103			MX28_PAD_PWM3__GPIO_3_28 */
104		>;
105		fsl,drive-strength = <0>;
106		fsl,voltage = <1>;
107		fsl,pull-up = <0>;
108	};
109};
110
111&ssp0 {
112	compatible = "fsl,imx28-mmc";
113	pinctrl-names = "default";
114	pinctrl-0 = <&mmc0_4bit_pins_a
115		&mmc0_cd_cfg &mmc0_sck_cfg>;
116	vmmc-supply = <&reg_vddio_sd0>;
117	bus-width = <4>;
118	status = "okay";
119};
120
121&usb0 {
122	pinctrl-names = "default";
123	pinctrl-0 = <&usb0_otg_cfa10036>;
124	dr_mode = "peripheral";
125	phy_type = "utmi";
126	status = "okay";
127};
128
129&usbphy0 {
130	status = "okay";
131};
132