1/*
2 * Copyright (C) 2014 Russell King
3 */
4#include "imx6qdl-microsom.dtsi"
5#include "imx6qdl-microsom-ar8035.dtsi"
6
7/ {
8	ir_recv: ir-receiver {
9		compatible = "gpio-ir-receiver";
10		gpios = <&gpio3 9 1>;
11		pinctrl-names = "default";
12		pinctrl-0 = <&pinctrl_cubox_i_ir>;
13	};
14
15	pwmleds {
16		compatible = "pwm-leds";
17		pinctrl-names = "default";
18		pinctrl-0 = <&pinctrl_cubox_i_pwm1>;
19
20		front {
21			active-low;
22			label = "imx6:red:front";
23			max-brightness = <248>;
24			pwms = <&pwm1 0 50000>;
25		};
26	};
27
28	regulators {
29		compatible = "simple-bus";
30
31		reg_3p3v: 3p3v {
32			compatible = "regulator-fixed";
33			regulator-name = "3P3V";
34			regulator-min-microvolt = <3300000>;
35			regulator-max-microvolt = <3300000>;
36			regulator-always-on;
37		};
38
39		reg_usbh1_vbus: usb-h1-vbus {
40			compatible = "regulator-fixed";
41			enable-active-high;
42			gpio = <&gpio1 0 0>;
43			pinctrl-names = "default";
44			pinctrl-0 = <&pinctrl_cubox_i_usbh1_vbus>;
45			regulator-name = "usb_h1_vbus";
46			regulator-min-microvolt = <5000000>;
47			regulator-max-microvolt = <5000000>;
48		};
49
50		reg_usbotg_vbus: usb-otg-vbus {
51			compatible = "regulator-fixed";
52			enable-active-high;
53			gpio = <&gpio3 22 0>;
54			pinctrl-names = "default";
55			pinctrl-0 = <&pinctrl_cubox_i_usbotg_vbus>;
56			regulator-name = "usb_otg_vbus";
57			regulator-min-microvolt = <5000000>;
58			regulator-max-microvolt = <5000000>;
59		};
60	};
61
62	sound-spdif {
63		compatible = "fsl,imx-audio-spdif";
64		model = "Integrated SPDIF";
65		/* IMX6 doesn't implement this yet */
66		spdif-controller = <&spdif>;
67		spdif-out;
68	};
69};
70
71&hdmi {
72	pinctrl-names = "default";
73	pinctrl-0 = <&pinctrl_cubox_i_hdmi>;
74	ddc-i2c-bus = <&i2c2>;
75	status = "okay";
76};
77
78&i2c2 {
79	clock-frequency = <100000>;
80	pinctrl-names = "default";
81	pinctrl-0 = <&pinctrl_cubox_i_i2c2>;
82	status = "okay";
83};
84
85&i2c3 {
86	pinctrl-names = "default";
87	pinctrl-0 = <&pinctrl_cubox_i_i2c3>;
88
89	status = "okay";
90
91	rtc: pcf8523@68 {
92		compatible = "nxp,pcf8523";
93		reg = <0x68>;
94	};
95};
96
97&iomuxc {
98	cubox_i {
99		pinctrl_cubox_i_hdmi: cubox-i-hdmi {
100			fsl,pins = <
101				MX6QDL_PAD_KEY_ROW2__HDMI_TX_CEC_LINE 0x1f8b0
102			>;
103		};
104
105		pinctrl_cubox_i_i2c2: cubox-i-i2c2 {
106			fsl,pins = <
107				MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1
108				MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1
109			>;
110		};
111
112		pinctrl_cubox_i_i2c3: cubox-i-i2c3 {
113			fsl,pins = <
114				MX6QDL_PAD_EIM_D17__I2C3_SCL 0x4001b8b1
115				MX6QDL_PAD_EIM_D18__I2C3_SDA 0x4001b8b1
116			>;
117		};
118
119		pinctrl_cubox_i_ir: cubox-i-ir {
120			fsl,pins = <
121				MX6QDL_PAD_EIM_DA9__GPIO3_IO09 0x80000000
122			>;
123		};
124
125		pinctrl_cubox_i_pwm1: cubox-i-pwm1-front-led {
126			fsl,pins = <MX6QDL_PAD_DISP0_DAT8__PWM1_OUT 0x1b0b0>;
127		};
128
129		pinctrl_cubox_i_spdif: cubox-i-spdif {
130			fsl,pins = <MX6QDL_PAD_GPIO_17__SPDIF_OUT 0x13091>;
131		};
132
133		pinctrl_cubox_i_usbh1: cubox-i-usbh1 {
134			fsl,pins = <MX6QDL_PAD_GPIO_3__USB_H1_OC 0x1b0b0>;
135		};
136
137		pinctrl_cubox_i_usbh1_vbus: cubox-i-usbh1-vbus {
138			fsl,pins = <MX6QDL_PAD_GPIO_0__GPIO1_IO00 0x4001b0b0>;
139		};
140
141		pinctrl_cubox_i_usbotg: cubox-i-usbotg {
142			/*
143			 * The Cubox-i pulls ID low, but as it's pointless
144			 * leaving it as a pull-up, even if it is just 10uA.
145			 */
146			fsl,pins = <
147				MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x13059
148				MX6QDL_PAD_KEY_COL4__USB_OTG_OC 0x1b0b0
149			>;
150		};
151
152		pinctrl_cubox_i_usbotg_vbus: cubox-i-usbotg-vbus {
153			fsl,pins = <MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x4001b0b0>;
154		};
155
156		pinctrl_cubox_i_usdhc2_aux: cubox-i-usdhc2-aux {
157			fsl,pins = <
158				MX6QDL_PAD_GPIO_4__GPIO1_IO04    0x1f071
159				MX6QDL_PAD_KEY_ROW1__SD2_VSELECT 0x1b071
160			>;
161		};
162
163		pinctrl_cubox_i_usdhc2: cubox-i-usdhc2 {
164			fsl,pins = <
165				MX6QDL_PAD_SD2_CMD__SD2_CMD    0x17059
166				MX6QDL_PAD_SD2_CLK__SD2_CLK    0x10059
167				MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x17059
168				MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x17059
169				MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x17059
170				MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x13059
171			>;
172		};
173	};
174};
175
176&spdif {
177	pinctrl-names = "default";
178	pinctrl-0 = <&pinctrl_cubox_i_spdif>;
179	status = "okay";
180};
181
182&usbh1 {
183	pinctrl-names = "default";
184	pinctrl-0 = <&pinctrl_cubox_i_usbh1>;
185	vbus-supply = <&reg_usbh1_vbus>;
186	status = "okay";
187};
188
189&usbotg {
190	pinctrl-names = "default";
191	pinctrl-0 = <&pinctrl_cubox_i_usbotg>;
192	vbus-supply = <&reg_usbotg_vbus>;
193	status = "okay";
194};
195
196&usdhc2 {
197	pinctrl-names = "default";
198	pinctrl-0 = <&pinctrl_cubox_i_usdhc2_aux &pinctrl_cubox_i_usdhc2>;
199	vmmc-supply = <&reg_3p3v>;
200	cd-gpios = <&gpio1 4 0>;
201	status = "okay";
202};
203