1*9d6a67d9SAntonin Godard// SPDX-License-Identifier: GPL-2.0+ 2*9d6a67d9SAntonin Godard/* 3*9d6a67d9SAntonin Godard * Support for Variscite VAR-SOM-MX6UL Module 4*9d6a67d9SAntonin Godard * 5*9d6a67d9SAntonin Godard * Copyright 2019 Variscite Ltd. 6*9d6a67d9SAntonin Godard * Copyright 2025 Bootlin 7*9d6a67d9SAntonin Godard */ 8*9d6a67d9SAntonin Godard 9*9d6a67d9SAntonin Godard/dts-v1/; 10*9d6a67d9SAntonin Godard 11*9d6a67d9SAntonin Godard#include "imx6ul.dtsi" 12*9d6a67d9SAntonin Godard#include <dt-bindings/clock/imx6ul-clock.h> 13*9d6a67d9SAntonin Godard#include <dt-bindings/gpio/gpio.h> 14*9d6a67d9SAntonin Godard 15*9d6a67d9SAntonin Godard/ { 16*9d6a67d9SAntonin Godard model = "Variscite VAR-SOM-MX6UL module"; 17*9d6a67d9SAntonin Godard compatible = "variscite,var-som-imx6ul", "fsl,imx6ul"; 18*9d6a67d9SAntonin Godard 19*9d6a67d9SAntonin Godard memory@80000000 { 20*9d6a67d9SAntonin Godard device_type = "memory"; 21*9d6a67d9SAntonin Godard reg = <0x80000000 0x20000000>; 22*9d6a67d9SAntonin Godard }; 23*9d6a67d9SAntonin Godard 24*9d6a67d9SAntonin Godard reg_gpio_dvfs: reg-gpio-dvfs { 25*9d6a67d9SAntonin Godard compatible = "regulator-gpio"; 26*9d6a67d9SAntonin Godard regulator-min-microvolt = <1300000>; 27*9d6a67d9SAntonin Godard regulator-max-microvolt = <1400000>; 28*9d6a67d9SAntonin Godard regulator-name = "gpio_dvfs"; 29*9d6a67d9SAntonin Godard regulator-type = "voltage"; 30*9d6a67d9SAntonin Godard gpios = <&gpio4 13 GPIO_ACTIVE_HIGH>; 31*9d6a67d9SAntonin Godard states = <1300000 0x1 32*9d6a67d9SAntonin Godard 1400000 0x0>; 33*9d6a67d9SAntonin Godard }; 34*9d6a67d9SAntonin Godard 35*9d6a67d9SAntonin Godard rmii_ref_clk: rmii-ref-clk { 36*9d6a67d9SAntonin Godard compatible = "fixed-clock"; 37*9d6a67d9SAntonin Godard #clock-cells = <0>; 38*9d6a67d9SAntonin Godard clock-frequency = <25000000>; 39*9d6a67d9SAntonin Godard clock-output-names = "rmii-ref"; 40*9d6a67d9SAntonin Godard }; 41*9d6a67d9SAntonin Godard}; 42*9d6a67d9SAntonin Godard 43*9d6a67d9SAntonin Godard&clks { 44*9d6a67d9SAntonin Godard assigned-clocks = <&clks IMX6UL_CLK_PLL4_AUDIO_DIV>; 45*9d6a67d9SAntonin Godard assigned-clock-rates = <786432000>; 46*9d6a67d9SAntonin Godard}; 47*9d6a67d9SAntonin Godard 48*9d6a67d9SAntonin Godard&cpu0 { 49*9d6a67d9SAntonin Godard dc-supply = <®_gpio_dvfs>; 50*9d6a67d9SAntonin Godard}; 51*9d6a67d9SAntonin Godard 52*9d6a67d9SAntonin Godard&fec1 { 53*9d6a67d9SAntonin Godard pinctrl-names = "default"; 54*9d6a67d9SAntonin Godard pinctrl-0 = <&pinctrl_enet1>, <&pinctrl_enet1_gpio>, <&pinctrl_enet1_mdio>; 55*9d6a67d9SAntonin Godard phy-mode = "rmii"; 56*9d6a67d9SAntonin Godard phy-handle = <ðphy0>; 57*9d6a67d9SAntonin Godard status = "okay"; 58*9d6a67d9SAntonin Godard 59*9d6a67d9SAntonin Godard mdio { 60*9d6a67d9SAntonin Godard #address-cells = <1>; 61*9d6a67d9SAntonin Godard #size-cells = <0>; 62*9d6a67d9SAntonin Godard 63*9d6a67d9SAntonin Godard ethphy0: ethernet-phy@1 { 64*9d6a67d9SAntonin Godard compatible = "ethernet-phy-ieee802.3-c22"; 65*9d6a67d9SAntonin Godard reg = <1>; 66*9d6a67d9SAntonin Godard clocks = <&rmii_ref_clk>; 67*9d6a67d9SAntonin Godard clock-names = "rmii-ref"; 68*9d6a67d9SAntonin Godard reset-gpios = <&gpio5 0 GPIO_ACTIVE_LOW>; 69*9d6a67d9SAntonin Godard reset-assert-us = <100000>; 70*9d6a67d9SAntonin Godard micrel,led-mode = <1>; 71*9d6a67d9SAntonin Godard micrel,rmii-reference-clock-select-25-mhz = <1>; 72*9d6a67d9SAntonin Godard }; 73*9d6a67d9SAntonin Godard }; 74*9d6a67d9SAntonin Godard}; 75*9d6a67d9SAntonin Godard 76*9d6a67d9SAntonin Godard&iomuxc { 77*9d6a67d9SAntonin Godard pinctrl-names = "default"; 78*9d6a67d9SAntonin Godard pinctrl-0 = <&pinctrl_hog>; 79*9d6a67d9SAntonin Godard 80*9d6a67d9SAntonin Godard pinctrl_enet1: enet1grp { 81*9d6a67d9SAntonin Godard fsl,pins = < 82*9d6a67d9SAntonin Godard MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN 0x1b0b0 83*9d6a67d9SAntonin Godard MX6UL_PAD_ENET1_RX_ER__ENET1_RX_ER 0x1b0b0 84*9d6a67d9SAntonin Godard MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00 0x1b0b0 85*9d6a67d9SAntonin Godard MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01 0x1b0b0 86*9d6a67d9SAntonin Godard MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN 0x1b0b0 87*9d6a67d9SAntonin Godard MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00 0x1b0b0 88*9d6a67d9SAntonin Godard MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01 0x1b0b0 89*9d6a67d9SAntonin Godard MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1 0x4001b031 90*9d6a67d9SAntonin Godard >; 91*9d6a67d9SAntonin Godard }; 92*9d6a67d9SAntonin Godard 93*9d6a67d9SAntonin Godard pinctrl_enet1_gpio: enet1-gpiogrp { 94*9d6a67d9SAntonin Godard fsl,pins = < 95*9d6a67d9SAntonin Godard MX6UL_PAD_SNVS_TAMPER0__GPIO5_IO00 0x1b0b0 /* fec1 reset */ 96*9d6a67d9SAntonin Godard >; 97*9d6a67d9SAntonin Godard }; 98*9d6a67d9SAntonin Godard 99*9d6a67d9SAntonin Godard pinctrl_enet1_mdio: enet1-mdiogrp { 100*9d6a67d9SAntonin Godard fsl,pins = < 101*9d6a67d9SAntonin Godard MX6UL_PAD_GPIO1_IO06__ENET1_MDIO 0x1b0b0 102*9d6a67d9SAntonin Godard MX6UL_PAD_GPIO1_IO07__ENET1_MDC 0x1b0b0 103*9d6a67d9SAntonin Godard >; 104*9d6a67d9SAntonin Godard }; 105*9d6a67d9SAntonin Godard 106*9d6a67d9SAntonin Godard pinctrl_hog: hoggrp { 107*9d6a67d9SAntonin Godard fsl,pins = < 108*9d6a67d9SAntonin Godard MX6UL_PAD_SNVS_TAMPER4__GPIO5_IO04 0x1b0b0 /* BT Enable */ 109*9d6a67d9SAntonin Godard MX6UL_PAD_SNVS_TAMPER6__GPIO5_IO06 0x03029 /* WLAN Enable */ 110*9d6a67d9SAntonin Godard >; 111*9d6a67d9SAntonin Godard }; 112*9d6a67d9SAntonin Godard 113*9d6a67d9SAntonin Godard pinctrl_sai2: sai2grp { 114*9d6a67d9SAntonin Godard fsl,pins = < 115*9d6a67d9SAntonin Godard MX6UL_PAD_JTAG_TDI__SAI2_TX_BCLK 0x17088 116*9d6a67d9SAntonin Godard MX6UL_PAD_JTAG_TDO__SAI2_TX_SYNC 0x17088 117*9d6a67d9SAntonin Godard MX6UL_PAD_JTAG_TRST_B__SAI2_TX_DATA 0x11088 118*9d6a67d9SAntonin Godard MX6UL_PAD_JTAG_TCK__SAI2_RX_DATA 0x11088 119*9d6a67d9SAntonin Godard MX6UL_PAD_JTAG_TMS__SAI2_MCLK 0x17088 120*9d6a67d9SAntonin Godard >; 121*9d6a67d9SAntonin Godard }; 122*9d6a67d9SAntonin Godard 123*9d6a67d9SAntonin Godard pinctrl_tsc: tscgrp { 124*9d6a67d9SAntonin Godard fsl,pins = < 125*9d6a67d9SAntonin Godard MX6UL_PAD_GPIO1_IO01__GPIO1_IO01 0xb0 126*9d6a67d9SAntonin Godard MX6UL_PAD_GPIO1_IO02__GPIO1_IO02 0xb0 127*9d6a67d9SAntonin Godard MX6UL_PAD_GPIO1_IO03__GPIO1_IO03 0xb0 128*9d6a67d9SAntonin Godard MX6UL_PAD_GPIO1_IO04__GPIO1_IO04 0xb0 129*9d6a67d9SAntonin Godard >; 130*9d6a67d9SAntonin Godard }; 131*9d6a67d9SAntonin Godard 132*9d6a67d9SAntonin Godard pinctrl_uart2: uart2grp { 133*9d6a67d9SAntonin Godard fsl,pins = < 134*9d6a67d9SAntonin Godard MX6UL_PAD_UART2_TX_DATA__UART2_DCE_TX 0x1b0b1 135*9d6a67d9SAntonin Godard MX6UL_PAD_UART2_RX_DATA__UART2_DCE_RX 0x1b0b1 136*9d6a67d9SAntonin Godard MX6UL_PAD_UART2_CTS_B__UART2_DCE_CTS 0x1b0b1 137*9d6a67d9SAntonin Godard MX6UL_PAD_UART2_RTS_B__UART2_DCE_RTS 0x1b0b1 138*9d6a67d9SAntonin Godard >; 139*9d6a67d9SAntonin Godard }; 140*9d6a67d9SAntonin Godard 141*9d6a67d9SAntonin Godard pinctrl_usdhc2: usdhc2grp { 142*9d6a67d9SAntonin Godard fsl,pins = < 143*9d6a67d9SAntonin Godard MX6UL_PAD_NAND_RE_B__USDHC2_CLK 0x10069 144*9d6a67d9SAntonin Godard MX6UL_PAD_NAND_WE_B__USDHC2_CMD 0x17059 145*9d6a67d9SAntonin Godard MX6UL_PAD_NAND_DATA00__USDHC2_DATA0 0x17059 146*9d6a67d9SAntonin Godard MX6UL_PAD_NAND_DATA01__USDHC2_DATA1 0x17059 147*9d6a67d9SAntonin Godard MX6UL_PAD_NAND_DATA02__USDHC2_DATA2 0x17059 148*9d6a67d9SAntonin Godard MX6UL_PAD_NAND_DATA03__USDHC2_DATA3 0x17059 149*9d6a67d9SAntonin Godard MX6UL_PAD_NAND_DATA04__USDHC2_DATA4 0x17059 150*9d6a67d9SAntonin Godard MX6UL_PAD_NAND_DATA05__USDHC2_DATA5 0x17059 151*9d6a67d9SAntonin Godard MX6UL_PAD_NAND_DATA06__USDHC2_DATA6 0x17059 152*9d6a67d9SAntonin Godard MX6UL_PAD_NAND_DATA07__USDHC2_DATA7 0x17059 153*9d6a67d9SAntonin Godard >; 154*9d6a67d9SAntonin Godard }; 155*9d6a67d9SAntonin Godard 156*9d6a67d9SAntonin Godard pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp { 157*9d6a67d9SAntonin Godard fsl,pins = < 158*9d6a67d9SAntonin Godard MX6UL_PAD_NAND_RE_B__USDHC2_CLK 0x100b9 159*9d6a67d9SAntonin Godard MX6UL_PAD_NAND_WE_B__USDHC2_CMD 0x170b9 160*9d6a67d9SAntonin Godard MX6UL_PAD_NAND_DATA00__USDHC2_DATA0 0x170b9 161*9d6a67d9SAntonin Godard MX6UL_PAD_NAND_DATA01__USDHC2_DATA1 0x170b9 162*9d6a67d9SAntonin Godard MX6UL_PAD_NAND_DATA02__USDHC2_DATA2 0x170b9 163*9d6a67d9SAntonin Godard MX6UL_PAD_NAND_DATA03__USDHC2_DATA3 0x170b9 164*9d6a67d9SAntonin Godard MX6UL_PAD_NAND_DATA04__USDHC2_DATA4 0x170b9 165*9d6a67d9SAntonin Godard MX6UL_PAD_NAND_DATA05__USDHC2_DATA5 0x170b9 166*9d6a67d9SAntonin Godard MX6UL_PAD_NAND_DATA06__USDHC2_DATA6 0x170b9 167*9d6a67d9SAntonin Godard MX6UL_PAD_NAND_DATA07__USDHC2_DATA7 0x170b9 168*9d6a67d9SAntonin Godard >; 169*9d6a67d9SAntonin Godard }; 170*9d6a67d9SAntonin Godard 171*9d6a67d9SAntonin Godard pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp { 172*9d6a67d9SAntonin Godard fsl,pins = < 173*9d6a67d9SAntonin Godard MX6UL_PAD_NAND_RE_B__USDHC2_CLK 0x100f9 174*9d6a67d9SAntonin Godard MX6UL_PAD_NAND_WE_B__USDHC2_CMD 0x170f9 175*9d6a67d9SAntonin Godard MX6UL_PAD_NAND_DATA00__USDHC2_DATA0 0x170f9 176*9d6a67d9SAntonin Godard MX6UL_PAD_NAND_DATA01__USDHC2_DATA1 0x170f9 177*9d6a67d9SAntonin Godard MX6UL_PAD_NAND_DATA02__USDHC2_DATA2 0x170f9 178*9d6a67d9SAntonin Godard MX6UL_PAD_NAND_DATA03__USDHC2_DATA3 0x170f9 179*9d6a67d9SAntonin Godard MX6UL_PAD_NAND_DATA04__USDHC2_DATA4 0x170f9 180*9d6a67d9SAntonin Godard MX6UL_PAD_NAND_DATA05__USDHC2_DATA5 0x170f9 181*9d6a67d9SAntonin Godard MX6UL_PAD_NAND_DATA06__USDHC2_DATA6 0x170f9 182*9d6a67d9SAntonin Godard MX6UL_PAD_NAND_DATA07__USDHC2_DATA7 0x170f9 183*9d6a67d9SAntonin Godard >; 184*9d6a67d9SAntonin Godard }; 185*9d6a67d9SAntonin Godard}; 186*9d6a67d9SAntonin Godard 187*9d6a67d9SAntonin Godard&pxp { 188*9d6a67d9SAntonin Godard status = "okay"; 189*9d6a67d9SAntonin Godard}; 190*9d6a67d9SAntonin Godard 191*9d6a67d9SAntonin Godard&sai2 { 192*9d6a67d9SAntonin Godard pinctrl-names = "default"; 193*9d6a67d9SAntonin Godard pinctrl-0 = <&pinctrl_sai2>; 194*9d6a67d9SAntonin Godard assigned-clocks = <&clks IMX6UL_CLK_SAI2_SEL>, 195*9d6a67d9SAntonin Godard <&clks IMX6UL_CLK_SAI2>; 196*9d6a67d9SAntonin Godard assigned-clock-parents = <&clks IMX6UL_CLK_PLL4_AUDIO_DIV>; 197*9d6a67d9SAntonin Godard assigned-clock-rates = <0>, <12288000>; 198*9d6a67d9SAntonin Godard fsl,sai-mclk-direction-output; 199*9d6a67d9SAntonin Godard status = "okay"; 200*9d6a67d9SAntonin Godard}; 201*9d6a67d9SAntonin Godard 202*9d6a67d9SAntonin Godard&snvs_poweroff { 203*9d6a67d9SAntonin Godard status = "okay"; 204*9d6a67d9SAntonin Godard}; 205*9d6a67d9SAntonin Godard 206*9d6a67d9SAntonin Godard&tsc { 207*9d6a67d9SAntonin Godard pinctrl-names = "default"; 208*9d6a67d9SAntonin Godard pinctrl-0 = <&pinctrl_tsc>; 209*9d6a67d9SAntonin Godard xnur-gpios = <&gpio1 3 GPIO_ACTIVE_LOW>; 210*9d6a67d9SAntonin Godard measure-delay-time = <0xffff>; 211*9d6a67d9SAntonin Godard pre-charge-time = <0xfff>; 212*9d6a67d9SAntonin Godard status = "okay"; 213*9d6a67d9SAntonin Godard}; 214*9d6a67d9SAntonin Godard 215*9d6a67d9SAntonin Godard&uart2 { 216*9d6a67d9SAntonin Godard pinctrl-names = "default"; 217*9d6a67d9SAntonin Godard pinctrl-0 = <&pinctrl_uart2>; 218*9d6a67d9SAntonin Godard uart-has-rtscts; 219*9d6a67d9SAntonin Godard status = "okay"; 220*9d6a67d9SAntonin Godard}; 221*9d6a67d9SAntonin Godard 222*9d6a67d9SAntonin Godard&usdhc2 { 223*9d6a67d9SAntonin Godard pinctrl-names = "default", "state_100mhz", "state_200mhz"; 224*9d6a67d9SAntonin Godard pinctrl-0 = <&pinctrl_usdhc2>; 225*9d6a67d9SAntonin Godard pinctrl-1 = <&pinctrl_usdhc2_100mhz>; 226*9d6a67d9SAntonin Godard pinctrl-2 = <&pinctrl_usdhc2_200mhz>; 227*9d6a67d9SAntonin Godard bus-width = <8>; 228*9d6a67d9SAntonin Godard no-1-8-v; 229*9d6a67d9SAntonin Godard non-removable; 230*9d6a67d9SAntonin Godard keep-power-in-suspend; 231*9d6a67d9SAntonin Godard wakeup-source; 232*9d6a67d9SAntonin Godard status = "okay"; 233*9d6a67d9SAntonin Godard}; 234