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®_arm { 179 vin-supply = <&vdd_soc_in_1v4>; 180}; 181 182®_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}; 268