| // SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause |
| /* |
| * Copyright (C) 2023 DH electronics GmbH |
| */ |
| |
| #include <dt-bindings/clock/imx6ul-clock.h> |
| #include <dt-bindings/gpio/gpio.h> |
| #include <dt-bindings/input/input.h> |
| #include <dt-bindings/leds/common.h> |
| #include <dt-bindings/pwm/pwm.h> |
| #include <dt-bindings/regulator/dlg,da9063-regulator.h> |
| #include "imx6ull.dtsi" |
| |
| / { |
| memory@80000000 { |
| /* Appropriate memory size will be filled by U-Boot */ |
| reg = <0x80000000 0>; |
| device_type = "memory"; |
| }; |
| }; |
| |
| &cpu0 { |
| /* |
| * Due to the design as a solderable SOM, there are no capacitors |
| * below the SoC, therefore higher voltages are required. |
| */ |
| operating-points = < |
| /* kHz uV */ |
| 900000 1275000 |
| 792000 1250000 /* Voltage increased */ |
| 528000 1175000 |
| 396000 1025000 |
| 198000 950000 |
| >; |
| fsl,soc-operating-points = < |
| /* KHz uV */ |
| 900000 1250000 |
| 792000 1250000 /* Voltage increased */ |
| 528000 1175000 |
| 396000 1175000 |
| 198000 1175000 |
| >; |
| }; |
| |
| &gpio1 { |
| pinctrl-0 = <&pinctrl_spi1_switch>; |
| pinctrl-names = "default"; |
| /* |
| * Pin SPI_BOOT_FLASH_EN (GPIO 1.9) is a switch for either using the |
| * DHCOM SPI1 interface or accessing the SPI bootflash. Both using |
| * ecspi1, but muxed to different pins. The DHCOM SPI1 interface uses |
| * the pins PAD_LCD_DATA21..23 and the SPI bootflash uses the pins |
| * PAD_CSI_DATA04..07. If the SPI bootflash is enabled the pins for |
| * DHCOM GPIOs N/O/P/Q/R/S/T/U aren't usable anymore, because they |
| * are used for the bus interface to the SPI bootflash. The GPIOs are |
| * disconnected by a buffer which is also controlled via the pin |
| * SPI_BOOT_FLASH_EN. Therefore the access to the bootflash is a |
| * special case and is disabled by setting GPIO 1.9 to high. |
| */ |
| spi1-switch-hog { |
| gpio-hog; |
| gpios = <9 0>; |
| output-high; |
| line-name = "spi1-switch"; |
| }; |
| }; |
| |
| &i2c1 { |
| clock-frequency = <100000>; |
| pinctrl-0 = <&pinctrl_i2c1>; |
| pinctrl-1 = <&pinctrl_i2c1_gpio>; |
| pinctrl-names = "default", "gpio"; |
| scl-gpios = <&gpio1 28 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; |
| sda-gpios = <&gpio1 29 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; |
| status = "okay"; |
| |
| pmic@58 { |
| compatible = "dlg,da9061"; |
| reg = <0x58>; |
| |
| onkey { |
| compatible = "dlg,da9061-onkey", "dlg,da9062-onkey"; |
| status = "disabled"; |
| }; |
| |
| regulators { |
| vdd_soc_in_1v4: buck1 { |
| regulator-allowed-modes = <DA9063_BUCK_MODE_SLEEP>; /* PFM */ |
| regulator-always-on; |
| regulator-boot-on; |
| regulator-initial-mode = <DA9063_BUCK_MODE_SLEEP>; |
| regulator-max-microvolt = <1400000>; |
| regulator-min-microvolt = <1400000>; |
| regulator-name = "vdd_soc_in_1v4"; |
| }; |
| |
| vcc_3v3: buck2 { |
| regulator-allowed-modes = <DA9063_BUCK_MODE_SYNC>; /* PWM */ |
| regulator-always-on; |
| regulator-boot-on; |
| regulator-initial-mode = <DA9063_BUCK_MODE_SYNC>; |
| regulator-max-microvolt = <3300000>; |
| regulator-min-microvolt = <3300000>; |
| regulator-name = "vcc_3v3"; |
| }; |
| |
| /* |
| * The current DRR3 memory can be supplied with a |
| * voltage of either 1.35V or 1.5V. For reasons of |
| * backward compatibility to only 1.5V DDR3 memory, |
| * the voltage is set to 1.5V. |
| */ |
| vcc_ddr_1v35: buck3 { |
| regulator-allowed-modes = <DA9063_BUCK_MODE_SYNC>; /* PWM */ |
| regulator-always-on; |
| regulator-boot-on; |
| regulator-initial-mode = <DA9063_BUCK_MODE_SYNC>; |
| regulator-max-microvolt = <1500000>; |
| regulator-min-microvolt = <1500000>; |
| regulator-name = "vcc_ddr_1v35"; |
| }; |
| |
| vcc_2v5: ldo1 { |
| regulator-always-on; |
| regulator-boot-on; |
| regulator-max-microvolt = <2500000>; |
| regulator-min-microvolt = <2500000>; |
| regulator-name = "vcc_2v5"; |
| }; |
| |
| vdd_snvs_in_3v3: ldo2 { |
| regulator-always-on; |
| regulator-boot-on; |
| regulator-max-microvolt = <3300000>; |
| regulator-min-microvolt = <3300000>; |
| regulator-name = "vdd_snvs_in_3v3"; |
| }; |
| |
| vcc_1v8: ldo3 { |
| regulator-always-on; |
| regulator-boot-on; |
| regulator-max-microvolt = <1800000>; |
| regulator-min-microvolt = <1800000>; |
| regulator-name = "vcc_1v8"; |
| }; |
| |
| vcc_1v2: ldo4 { |
| regulator-always-on; |
| regulator-boot-on; |
| regulator-max-microvolt = <1200000>; |
| regulator-min-microvolt = <1200000>; |
| regulator-name = "vcc_1v2"; |
| }; |
| }; |
| |
| thermal { |
| compatible = "dlg,da9061-thermal", "dlg,da9062-thermal"; |
| status = "disabled"; |
| }; |
| |
| watchdog { |
| compatible = "dlg,da9061-watchdog", "dlg,da9062-watchdog"; |
| status = "disabled"; |
| }; |
| }; |
| }; |
| |
| &ocotp { |
| /* Don't get write access by default */ |
| read-only; |
| }; |
| |
| ®_arm { |
| vin-supply = <&vdd_soc_in_1v4>; |
| }; |
| |
| ®_soc { |
| vin-supply = <&vdd_soc_in_1v4>; |
| }; |
| |
| /* BT on LGA (BT_REG_ON is connected to LGA pin E1) */ |
| &uart2 { |
| pinctrl-0 = <&pinctrl_uart2>; |
| pinctrl-names = "default"; |
| uart-has-rtscts; |
| status = "okay"; |
| |
| /* |
| * Actually, the maximum speed of the chip is 4MBdps, but there are |
| * limitations that prevent this speed. It hasn't yet been figured out |
| * what the reason for this is. Currently, the maximum speed of 3MBdps |
| * can be used without any problems. If the limitation can be overcome, |
| * the speed can be increased accordingly. |
| */ |
| bluetooth: bluetooth { |
| compatible = "brcm,bcm43430a1-bt"; /* muRata 1DX */ |
| max-speed = <3000000>; |
| vbat-supply = <&vcc_3v3>; |
| vddio-supply = <&vcc_3v3>; |
| }; |
| }; |
| |
| /* WiFi on LGA (WL_REG_ON is connected to LGA pin E3) */ |
| &usdhc1 { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| bus-width = <4>; |
| no-1-8-v; |
| non-removable; |
| keep-power-in-suspend; |
| pinctrl-0 = <&pinctrl_usdhc1_wifi>; |
| pinctrl-names = "default"; |
| wakeup-source; |
| status = "okay"; |
| |
| brcmf: wifi@1 { |
| compatible = "brcm,bcm43430a1-fmac", "brcm,bcm4329-fmac"; /* muRata 1DX */ |
| reg = <1>; |
| }; |
| }; |
| |
| &iomuxc { |
| pinctrl_i2c1: i2c1-grp { |
| fsl,pins = < |
| MX6UL_PAD_UART4_TX_DATA__I2C1_SCL 0x4001b8b0 |
| MX6UL_PAD_UART4_RX_DATA__I2C1_SDA 0x4001b8b0 |
| >; |
| }; |
| |
| pinctrl_i2c1_gpio: i2c1-gpio-grp { |
| fsl,pins = < |
| MX6UL_PAD_UART4_TX_DATA__GPIO1_IO28 0x4001b8b0 |
| MX6UL_PAD_UART4_RX_DATA__GPIO1_IO29 0x4001b8b0 |
| >; |
| }; |
| |
| pinctrl_spi1_switch: spi1-switch-grp { |
| fsl,pins = < |
| MX6UL_PAD_GPIO1_IO09__GPIO1_IO09 0x120b0 /* SPI_BOOT_FLASH_EN */ |
| >; |
| }; |
| |
| pinctrl_uart2: uart2-grp { |
| fsl,pins = < |
| MX6UL_PAD_UART2_TX_DATA__UART2_DCE_TX 0x1b0b1 |
| MX6UL_PAD_UART2_RX_DATA__UART2_DCE_RX 0x1b0b1 |
| MX6UL_PAD_UART3_RX_DATA__UART2_DCE_RTS 0x1b0b1 |
| MX6UL_PAD_UART3_TX_DATA__UART2_DCE_CTS 0x1b0b1 |
| >; |
| }; |
| |
| pinctrl_usdhc1_wifi: usdhc1-wifi-grp { |
| fsl,pins = < |
| MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x1b0b0 |
| MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x10010 |
| MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x1b0b0 |
| MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x1b0b0 |
| MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x1b0b0 |
| MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x1b0b0 |
| >; |
| }; |
| }; |