1e3b21b33SHugo Villeneuve// SPDX-License-Identifier: GPL-2.0+ 2e3b21b33SHugo Villeneuve/* 3e3b21b33SHugo Villeneuve * Support for the common parts shared by all the different CPU options on 4e3b21b33SHugo Villeneuve * Variscite VAR-SOM-6UL Module 5e3b21b33SHugo Villeneuve * 6e3b21b33SHugo Villeneuve * Copyright 2019 Variscite Ltd. 7e3b21b33SHugo Villeneuve * Copyright 2025 Bootlin 8e3b21b33SHugo Villeneuve */ 9e3b21b33SHugo Villeneuve 10e3b21b33SHugo Villeneuve#include <dt-bindings/clock/imx6ul-clock.h> 11e3b21b33SHugo Villeneuve#include <dt-bindings/gpio/gpio.h> 12e3b21b33SHugo Villeneuve 13e3b21b33SHugo Villeneuve/ { 14e3b21b33SHugo Villeneuve model = "Variscite VAR-SOM-6UL module"; 15e3b21b33SHugo Villeneuve compatible = "variscite,var-som-imx6ul", "fsl,imx6ul"; 16e3b21b33SHugo Villeneuve 17e3b21b33SHugo Villeneuve memory@80000000 { 18e3b21b33SHugo Villeneuve device_type = "memory"; 19e3b21b33SHugo Villeneuve reg = <0x80000000 0x20000000>; 20e3b21b33SHugo Villeneuve }; 21e3b21b33SHugo Villeneuve 22*235c0703SHugo Villeneuve reg_3p3v: regulator-3p3v { 23*235c0703SHugo Villeneuve compatible = "regulator-fixed"; 24*235c0703SHugo Villeneuve regulator-name = "3P3V"; 25*235c0703SHugo Villeneuve regulator-min-microvolt = <3300000>; 26*235c0703SHugo Villeneuve regulator-max-microvolt = <3300000>; 27*235c0703SHugo Villeneuve regulator-always-on; 28*235c0703SHugo Villeneuve }; 29*235c0703SHugo Villeneuve 30e3b21b33SHugo Villeneuve reg_gpio_dvfs: reg-gpio-dvfs { 31e3b21b33SHugo Villeneuve compatible = "regulator-gpio"; 32e3b21b33SHugo Villeneuve regulator-min-microvolt = <1300000>; 33e3b21b33SHugo Villeneuve regulator-max-microvolt = <1400000>; 34e3b21b33SHugo Villeneuve regulator-name = "gpio_dvfs"; 35e3b21b33SHugo Villeneuve regulator-type = "voltage"; 36e3b21b33SHugo Villeneuve gpios = <&gpio4 13 GPIO_ACTIVE_HIGH>; 37e3b21b33SHugo Villeneuve states = <1300000 0x1 38e3b21b33SHugo Villeneuve 1400000 0x0>; 39e3b21b33SHugo Villeneuve }; 40e3b21b33SHugo Villeneuve}; 41e3b21b33SHugo Villeneuve 42e3b21b33SHugo Villeneuve&clks { 43e3b21b33SHugo Villeneuve assigned-clocks = <&clks IMX6UL_CLK_PLL4_AUDIO_DIV>; 44e3b21b33SHugo Villeneuve assigned-clock-rates = <786432000>; 45e3b21b33SHugo Villeneuve}; 46e3b21b33SHugo Villeneuve 47e3b21b33SHugo Villeneuve&iomuxc { 4819435b53SHugo Villeneuve pinctrl_i2c1: i2c1grp { 4919435b53SHugo Villeneuve fsl,pins = < 5019435b53SHugo Villeneuve MX6UL_PAD_CSI_PIXCLK__I2C1_SCL 0x4001b8b0 5119435b53SHugo Villeneuve MX6UL_PAD_CSI_MCLK__I2C1_SDA 0x4001b8b0 5219435b53SHugo Villeneuve >; 5319435b53SHugo Villeneuve }; 5419435b53SHugo Villeneuve 55e3b21b33SHugo Villeneuve pinctrl_tsc: tscgrp { 56e3b21b33SHugo Villeneuve fsl,pins = < 57e3b21b33SHugo Villeneuve MX6UL_PAD_GPIO1_IO01__GPIO1_IO01 0xb0 58e3b21b33SHugo Villeneuve MX6UL_PAD_GPIO1_IO02__GPIO1_IO02 0xb0 59e3b21b33SHugo Villeneuve MX6UL_PAD_GPIO1_IO03__GPIO1_IO03 0xb0 60e3b21b33SHugo Villeneuve MX6UL_PAD_GPIO1_IO04__GPIO1_IO04 0xb0 61e3b21b33SHugo Villeneuve >; 62e3b21b33SHugo Villeneuve }; 63e3b21b33SHugo Villeneuve 64e3b21b33SHugo Villeneuve pinctrl_uart2: uart2grp { 65e3b21b33SHugo Villeneuve fsl,pins = < 66e3b21b33SHugo Villeneuve MX6UL_PAD_UART2_TX_DATA__UART2_DCE_TX 0x1b0b1 67e3b21b33SHugo Villeneuve MX6UL_PAD_UART2_RX_DATA__UART2_DCE_RX 0x1b0b1 68e3b21b33SHugo Villeneuve MX6UL_PAD_UART2_CTS_B__UART2_DCE_CTS 0x1b0b1 69e3b21b33SHugo Villeneuve MX6UL_PAD_UART2_RTS_B__UART2_DCE_RTS 0x1b0b1 70e3b21b33SHugo Villeneuve >; 71e3b21b33SHugo Villeneuve }; 72e3b21b33SHugo Villeneuve 73f4768506SHugo Villeneuve pinctrl_usdhc1: usdhc1grp { 74f4768506SHugo Villeneuve fsl,pins = < 75f4768506SHugo Villeneuve MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x17059 76f4768506SHugo Villeneuve MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x17059 77f4768506SHugo Villeneuve MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x17059 78f4768506SHugo Villeneuve MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x17059 79f4768506SHugo Villeneuve MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x17059 80f4768506SHugo Villeneuve MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x17059 81f4768506SHugo Villeneuve >; 82f4768506SHugo Villeneuve }; 83f4768506SHugo Villeneuve 84f4768506SHugo Villeneuve pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp { 85f4768506SHugo Villeneuve fsl,pins = < 86f4768506SHugo Villeneuve MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x170b9 87f4768506SHugo Villeneuve MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x100b9 88f4768506SHugo Villeneuve MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x170b9 89f4768506SHugo Villeneuve MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x170b9 90f4768506SHugo Villeneuve MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x170b9 91f4768506SHugo Villeneuve MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x170b9 92f4768506SHugo Villeneuve >; 93f4768506SHugo Villeneuve }; 94f4768506SHugo Villeneuve 95f4768506SHugo Villeneuve pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp { 96f4768506SHugo Villeneuve fsl,pins = < 97f4768506SHugo Villeneuve MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x170f9 98f4768506SHugo Villeneuve MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x100f9 99f4768506SHugo Villeneuve MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x170f9 100f4768506SHugo Villeneuve MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x170f9 101f4768506SHugo Villeneuve MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x170f9 102f4768506SHugo Villeneuve MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x170f9 103f4768506SHugo Villeneuve >; 104f4768506SHugo Villeneuve }; 105f4768506SHugo Villeneuve 106e3b21b33SHugo Villeneuve pinctrl_usdhc2: usdhc2grp { 107e3b21b33SHugo Villeneuve fsl,pins = < 108e3b21b33SHugo Villeneuve MX6UL_PAD_NAND_RE_B__USDHC2_CLK 0x10069 109e3b21b33SHugo Villeneuve MX6UL_PAD_NAND_WE_B__USDHC2_CMD 0x17059 110e3b21b33SHugo Villeneuve MX6UL_PAD_NAND_DATA00__USDHC2_DATA0 0x17059 111e3b21b33SHugo Villeneuve MX6UL_PAD_NAND_DATA01__USDHC2_DATA1 0x17059 112e3b21b33SHugo Villeneuve MX6UL_PAD_NAND_DATA02__USDHC2_DATA2 0x17059 113e3b21b33SHugo Villeneuve MX6UL_PAD_NAND_DATA03__USDHC2_DATA3 0x17059 114e3b21b33SHugo Villeneuve MX6UL_PAD_NAND_DATA04__USDHC2_DATA4 0x17059 115e3b21b33SHugo Villeneuve MX6UL_PAD_NAND_DATA05__USDHC2_DATA5 0x17059 116e3b21b33SHugo Villeneuve MX6UL_PAD_NAND_DATA06__USDHC2_DATA6 0x17059 117e3b21b33SHugo Villeneuve MX6UL_PAD_NAND_DATA07__USDHC2_DATA7 0x17059 118e3b21b33SHugo Villeneuve >; 119e3b21b33SHugo Villeneuve }; 120e3b21b33SHugo Villeneuve 121e3b21b33SHugo Villeneuve pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp { 122e3b21b33SHugo Villeneuve fsl,pins = < 123e3b21b33SHugo Villeneuve MX6UL_PAD_NAND_RE_B__USDHC2_CLK 0x100b9 124e3b21b33SHugo Villeneuve MX6UL_PAD_NAND_WE_B__USDHC2_CMD 0x170b9 125e3b21b33SHugo Villeneuve MX6UL_PAD_NAND_DATA00__USDHC2_DATA0 0x170b9 126e3b21b33SHugo Villeneuve MX6UL_PAD_NAND_DATA01__USDHC2_DATA1 0x170b9 127e3b21b33SHugo Villeneuve MX6UL_PAD_NAND_DATA02__USDHC2_DATA2 0x170b9 128e3b21b33SHugo Villeneuve MX6UL_PAD_NAND_DATA03__USDHC2_DATA3 0x170b9 129e3b21b33SHugo Villeneuve MX6UL_PAD_NAND_DATA04__USDHC2_DATA4 0x170b9 130e3b21b33SHugo Villeneuve MX6UL_PAD_NAND_DATA05__USDHC2_DATA5 0x170b9 131e3b21b33SHugo Villeneuve MX6UL_PAD_NAND_DATA06__USDHC2_DATA6 0x170b9 132e3b21b33SHugo Villeneuve MX6UL_PAD_NAND_DATA07__USDHC2_DATA7 0x170b9 133e3b21b33SHugo Villeneuve >; 134e3b21b33SHugo Villeneuve }; 135e3b21b33SHugo Villeneuve 136e3b21b33SHugo Villeneuve pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp { 137e3b21b33SHugo Villeneuve fsl,pins = < 138e3b21b33SHugo Villeneuve MX6UL_PAD_NAND_RE_B__USDHC2_CLK 0x100f9 139e3b21b33SHugo Villeneuve MX6UL_PAD_NAND_WE_B__USDHC2_CMD 0x170f9 140e3b21b33SHugo Villeneuve MX6UL_PAD_NAND_DATA00__USDHC2_DATA0 0x170f9 141e3b21b33SHugo Villeneuve MX6UL_PAD_NAND_DATA01__USDHC2_DATA1 0x170f9 142e3b21b33SHugo Villeneuve MX6UL_PAD_NAND_DATA02__USDHC2_DATA2 0x170f9 143e3b21b33SHugo Villeneuve MX6UL_PAD_NAND_DATA03__USDHC2_DATA3 0x170f9 144e3b21b33SHugo Villeneuve MX6UL_PAD_NAND_DATA04__USDHC2_DATA4 0x170f9 145e3b21b33SHugo Villeneuve MX6UL_PAD_NAND_DATA05__USDHC2_DATA5 0x170f9 146e3b21b33SHugo Villeneuve MX6UL_PAD_NAND_DATA06__USDHC2_DATA6 0x170f9 147e3b21b33SHugo Villeneuve MX6UL_PAD_NAND_DATA07__USDHC2_DATA7 0x170f9 148e3b21b33SHugo Villeneuve >; 149e3b21b33SHugo Villeneuve }; 150e3b21b33SHugo Villeneuve}; 151e3b21b33SHugo Villeneuve 152e3b21b33SHugo Villeneuve&pxp { 153e3b21b33SHugo Villeneuve status = "okay"; 154e3b21b33SHugo Villeneuve}; 155e3b21b33SHugo Villeneuve 156e3b21b33SHugo Villeneuve&snvs_poweroff { 157e3b21b33SHugo Villeneuve status = "okay"; 158e3b21b33SHugo Villeneuve}; 159e3b21b33SHugo Villeneuve 160e3b21b33SHugo Villeneuve&tsc { 161e3b21b33SHugo Villeneuve pinctrl-names = "default"; 162e3b21b33SHugo Villeneuve pinctrl-0 = <&pinctrl_tsc>; 163e3b21b33SHugo Villeneuve xnur-gpios = <&gpio1 3 GPIO_ACTIVE_LOW>; 164e3b21b33SHugo Villeneuve measure-delay-time = <0xffff>; 165e3b21b33SHugo Villeneuve pre-charge-time = <0xfff>; 166e3b21b33SHugo Villeneuve status = "okay"; 167e3b21b33SHugo Villeneuve}; 168e3b21b33SHugo Villeneuve 169e3b21b33SHugo Villeneuve&uart2 { 170e3b21b33SHugo Villeneuve pinctrl-names = "default"; 171e3b21b33SHugo Villeneuve pinctrl-0 = <&pinctrl_uart2>; 172e3b21b33SHugo Villeneuve uart-has-rtscts; 173e3b21b33SHugo Villeneuve status = "okay"; 174e3b21b33SHugo Villeneuve}; 175e3b21b33SHugo Villeneuve 176e3b21b33SHugo Villeneuve&usdhc2 { 177e3b21b33SHugo Villeneuve pinctrl-names = "default", "state_100mhz", "state_200mhz"; 178e3b21b33SHugo Villeneuve pinctrl-0 = <&pinctrl_usdhc2>; 179e3b21b33SHugo Villeneuve pinctrl-1 = <&pinctrl_usdhc2_100mhz>; 180e3b21b33SHugo Villeneuve pinctrl-2 = <&pinctrl_usdhc2_200mhz>; 181e3b21b33SHugo Villeneuve bus-width = <8>; 182e3b21b33SHugo Villeneuve no-1-8-v; 183e3b21b33SHugo Villeneuve non-removable; 184e3b21b33SHugo Villeneuve keep-power-in-suspend; 185e3b21b33SHugo Villeneuve wakeup-source; 186e3b21b33SHugo Villeneuve status = "okay"; 187e3b21b33SHugo Villeneuve}; 188