]> git.ipfire.org Git - thirdparty/u-boot.git/blob - src/arm/nxp/imx/imx6ull-dhcor-som.dtsi
Squashed 'dts/upstream/' content from commit aaba2d45dc2a
[thirdparty/u-boot.git] / src / arm / nxp / imx / imx6ull-dhcor-som.dtsi
1 // SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
2 /*
3 * Copyright (C) 2023 DH electronics GmbH
4 */
5
6 #include <dt-bindings/clock/imx6ul-clock.h>
7 #include <dt-bindings/gpio/gpio.h>
8 #include <dt-bindings/input/input.h>
9 #include <dt-bindings/leds/common.h>
10 #include <dt-bindings/pwm/pwm.h>
11 #include <dt-bindings/regulator/dlg,da9063-regulator.h>
12 #include "imx6ull.dtsi"
13
14 / {
15 aliases {
16 /delete-property/ mmc0;
17 /delete-property/ mmc1;
18 };
19
20 memory@80000000 {
21 /* Appropriate memory size will be filled by U-Boot */
22 reg = <0x80000000 0>;
23 device_type = "memory";
24 };
25 };
26
27 &cpu0 {
28 /*
29 * Due to the design as a solderable SOM, there are no capacitors
30 * below the SoC, therefore higher voltages are required.
31 */
32 operating-points = <
33 /* kHz uV */
34 900000 1275000
35 792000 1250000 /* Voltage increased */
36 528000 1175000
37 396000 1025000
38 198000 950000
39 >;
40 fsl,soc-operating-points = <
41 /* KHz uV */
42 900000 1250000
43 792000 1250000 /* Voltage increased */
44 528000 1175000
45 396000 1175000
46 198000 1175000
47 >;
48 };
49
50 &gpio1 {
51 pinctrl-0 = <&pinctrl_spi1_switch>;
52 pinctrl-names = "default";
53 /*
54 * Pin SPI_BOOT_FLASH_EN (GPIO 1.9) is a switch for either using the
55 * DHCOM SPI1 interface or accessing the SPI bootflash. Both using
56 * ecspi1, but muxed to different pins. The DHCOM SPI1 interface uses
57 * the pins PAD_LCD_DATA21..23 and the SPI bootflash uses the pins
58 * PAD_CSI_DATA04..07. If the SPI bootflash is enabled the pins for
59 * DHCOM GPIOs N/O/P/Q/R/S/T/U aren't usable anymore, because they
60 * are used for the bus interface to the SPI bootflash. The GPIOs are
61 * disconnected by a buffer which is also controlled via the pin
62 * SPI_BOOT_FLASH_EN. Therefore the access to the bootflash is a
63 * special case and is disabled by setting GPIO 1.9 to high.
64 */
65 spi1-switch-hog {
66 gpio-hog;
67 gpios = <9 0>;
68 output-high;
69 line-name = "spi1-switch";
70 };
71 };
72
73 &i2c1 {
74 clock-frequency = <100000>;
75 pinctrl-0 = <&pinctrl_i2c1>;
76 pinctrl-1 = <&pinctrl_i2c1_gpio>;
77 pinctrl-names = "default", "gpio";
78 scl-gpios = <&gpio1 28 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
79 sda-gpios = <&gpio1 29 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
80 status = "okay";
81
82 pmic@58 {
83 compatible = "dlg,da9061";
84 reg = <0x58>;
85
86 onkey {
87 compatible = "dlg,da9061-onkey", "dlg,da9062-onkey";
88 status = "disabled";
89 };
90
91 regulators {
92 vdd_soc_in_1v4: buck1 {
93 regulator-allowed-modes = <DA9063_BUCK_MODE_SLEEP>; /* PFM */
94 regulator-always-on;
95 regulator-boot-on;
96 regulator-initial-mode = <DA9063_BUCK_MODE_SLEEP>;
97 regulator-max-microvolt = <1400000>;
98 regulator-min-microvolt = <1400000>;
99 regulator-name = "vdd_soc_in_1v4";
100 };
101
102 vcc_3v3: buck2 {
103 regulator-allowed-modes = <DA9063_BUCK_MODE_SYNC>; /* PWM */
104 regulator-always-on;
105 regulator-boot-on;
106 regulator-initial-mode = <DA9063_BUCK_MODE_SYNC>;
107 regulator-max-microvolt = <3300000>;
108 regulator-min-microvolt = <3300000>;
109 regulator-name = "vcc_3v3";
110 };
111
112 /*
113 * The current DRR3 memory can be supplied with a
114 * voltage of either 1.35V or 1.5V. For reasons of
115 * backward compatibility to only 1.5V DDR3 memory,
116 * the voltage is set to 1.5V.
117 */
118 vcc_ddr_1v35: buck3 {
119 regulator-allowed-modes = <DA9063_BUCK_MODE_SYNC>; /* PWM */
120 regulator-always-on;
121 regulator-boot-on;
122 regulator-initial-mode = <DA9063_BUCK_MODE_SYNC>;
123 regulator-max-microvolt = <1500000>;
124 regulator-min-microvolt = <1500000>;
125 regulator-name = "vcc_ddr_1v35";
126 };
127
128 vcc_2v5: ldo1 {
129 regulator-always-on;
130 regulator-boot-on;
131 regulator-max-microvolt = <2500000>;
132 regulator-min-microvolt = <2500000>;
133 regulator-name = "vcc_2v5";
134 };
135
136 vdd_snvs_in_3v3: ldo2 {
137 regulator-always-on;
138 regulator-boot-on;
139 regulator-max-microvolt = <3300000>;
140 regulator-min-microvolt = <3300000>;
141 regulator-name = "vdd_snvs_in_3v3";
142 };
143
144 vcc_1v8: ldo3 {
145 regulator-always-on;
146 regulator-boot-on;
147 regulator-max-microvolt = <1800000>;
148 regulator-min-microvolt = <1800000>;
149 regulator-name = "vcc_1v8";
150 };
151
152 vcc_1v2: ldo4 {
153 regulator-always-on;
154 regulator-boot-on;
155 regulator-max-microvolt = <1200000>;
156 regulator-min-microvolt = <1200000>;
157 regulator-name = "vcc_1v2";
158 };
159 };
160
161 thermal {
162 compatible = "dlg,da9061-thermal", "dlg,da9062-thermal";
163 status = "disabled";
164 };
165
166 watchdog {
167 compatible = "dlg,da9061-watchdog", "dlg,da9062-watchdog";
168 status = "disabled";
169 };
170 };
171 };
172
173 &ocotp {
174 /* Don't get write access by default */
175 read-only;
176 };
177
178 &reg_arm {
179 vin-supply = <&vdd_soc_in_1v4>;
180 };
181
182 &reg_soc {
183 vin-supply = <&vdd_soc_in_1v4>;
184 };
185
186 /* BT on LGA (BT_REG_ON is connected to LGA pin E1) */
187 &uart2 {
188 pinctrl-0 = <&pinctrl_uart2>;
189 pinctrl-names = "default";
190 uart-has-rtscts;
191 status = "okay";
192
193 /*
194 * Actually, the maximum speed of the chip is 4MBdps, but there are
195 * limitations that prevent this speed. It hasn't yet been figured out
196 * what the reason for this is. Currently, the maximum speed of 3MBdps
197 * can be used without any problems. If the limitation can be overcome,
198 * the speed can be increased accordingly.
199 */
200 bluetooth: bluetooth {
201 compatible = "brcm,bcm43430a1-bt"; /* muRata 1DX */
202 max-speed = <3000000>;
203 vbat-supply = <&vcc_3v3>;
204 vddio-supply = <&vcc_3v3>;
205 };
206 };
207
208 /* WiFi on LGA (WL_REG_ON is connected to LGA pin E3) */
209 &usdhc1 {
210 #address-cells = <1>;
211 #size-cells = <0>;
212 bus-width = <4>;
213 no-1-8-v;
214 non-removable;
215 keep-power-in-suspend;
216 pinctrl-0 = <&pinctrl_usdhc1_wifi>;
217 pinctrl-names = "default";
218 wakeup-source;
219 status = "okay";
220
221 brcmf: wifi@1 {
222 compatible = "brcm,bcm43430a1-fmac", "brcm,bcm4329-fmac"; /* muRata 1DX */
223 reg = <1>;
224 };
225 };
226
227 &iomuxc {
228 pinctrl_i2c1: i2c1-grp {
229 fsl,pins = <
230 MX6UL_PAD_UART4_TX_DATA__I2C1_SCL 0x4001b8b0
231 MX6UL_PAD_UART4_RX_DATA__I2C1_SDA 0x4001b8b0
232 >;
233 };
234
235 pinctrl_i2c1_gpio: i2c1-gpio-grp {
236 fsl,pins = <
237 MX6UL_PAD_UART4_TX_DATA__GPIO1_IO28 0x4001b8b0
238 MX6UL_PAD_UART4_RX_DATA__GPIO1_IO29 0x4001b8b0
239 >;
240 };
241
242 pinctrl_spi1_switch: spi1-switch-grp {
243 fsl,pins = <
244 MX6UL_PAD_GPIO1_IO09__GPIO1_IO09 0x120b0 /* SPI_BOOT_FLASH_EN */
245 >;
246 };
247
248 pinctrl_uart2: uart2-grp {
249 fsl,pins = <
250 MX6UL_PAD_UART2_TX_DATA__UART2_DCE_TX 0x1b0b1
251 MX6UL_PAD_UART2_RX_DATA__UART2_DCE_RX 0x1b0b1
252 MX6UL_PAD_UART3_RX_DATA__UART2_DCE_RTS 0x1b0b1
253 MX6UL_PAD_UART3_TX_DATA__UART2_DCE_CTS 0x1b0b1
254 >;
255 };
256
257 pinctrl_usdhc1_wifi: usdhc1-wifi-grp {
258 fsl,pins = <
259 MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x1b0b0
260 MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x10010
261 MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x1b0b0
262 MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x1b0b0
263 MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x1b0b0
264 MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x1b0b0
265 >;
266 };
267 };