1724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0 2724ba675SRob Herring/* 3724ba675SRob Herring * Device Tree Source for Kamstrup OMNIA Flex Concentrator. 4724ba675SRob Herring * 5724ba675SRob Herring * Copyright (C) 2020 Kamstrup A/S 6724ba675SRob Herring * Author: Bruno Thomsen <bruno.thomsen@gmail.com> 7724ba675SRob Herring */ 8724ba675SRob Herring 9724ba675SRob Herring/dts-v1/; 10724ba675SRob Herring 11724ba675SRob Herring#include "imx7d-tqma7.dtsi" 12724ba675SRob Herring 13724ba675SRob Herring/* One I2C device on TQMa7 SoM is not mounted */ 14724ba675SRob Herring/delete-node/ &ds1339; 15724ba675SRob Herring 16724ba675SRob Herring/ { 17724ba675SRob Herring model = "Kamstrup OMNIA Flex Concentrator"; 18724ba675SRob Herring compatible = "kam,imx7d-flex-concentrator", "fsl,imx7d"; 19724ba675SRob Herring 20724ba675SRob Herring memory@80000000 { 21724ba675SRob Herring device_type = "memory"; 22724ba675SRob Herring /* 1024 MB - TQMa7D board configuration */ 23724ba675SRob Herring reg = <0x80000000 0x40000000>; 24724ba675SRob Herring }; 25724ba675SRob Herring 26724ba675SRob Herring reg_usb_otg2_vbus: regulator-usb-otg2-vbus { 27724ba675SRob Herring compatible = "regulator-fixed"; 28724ba675SRob Herring regulator-name = "VBUS_USBOTG2"; 29724ba675SRob Herring regulator-min-microvolt = <5000000>; 30724ba675SRob Herring regulator-max-microvolt = <5000000>; 31724ba675SRob Herring gpio = <&gpio1 7 GPIO_ACTIVE_HIGH>; 32724ba675SRob Herring enable-active-high; 33724ba675SRob Herring }; 34724ba675SRob Herring 35724ba675SRob Herring reg_vref_1v8: regulator-vref-1v8 { 36724ba675SRob Herring compatible = "regulator-fixed"; 37724ba675SRob Herring regulator-name = "VCC1V8_REF"; 38724ba675SRob Herring regulator-min-microvolt = <1800000>; 39724ba675SRob Herring regulator-max-microvolt = <1800000>; 40724ba675SRob Herring regulator-always-on; 41724ba675SRob Herring vin-supply = <&sw2_reg>; 42724ba675SRob Herring }; 43724ba675SRob Herring 44724ba675SRob Herring /* 45724ba675SRob Herring * Human Machine Interface consists of 4 dual red/green LEDs. 46724ba675SRob Herring * hmi-a:green is controlled directly by the switch-mode power supply. 47724ba675SRob Herring * hmi-a:red is not used. 48724ba675SRob Herring */ 49724ba675SRob Herring gpio-leds { 50724ba675SRob Herring compatible = "gpio-leds"; 51724ba675SRob Herring pinctrl-names = "default"; 52724ba675SRob Herring pinctrl-0 = <&pinctrl_leds>; 53724ba675SRob Herring 54724ba675SRob Herring led-0 { 55724ba675SRob Herring label = "hmi-b:red:heartbeat-degraded"; 56724ba675SRob Herring gpios = <&gpio3 6 GPIO_ACTIVE_HIGH>; 57724ba675SRob Herring }; 58724ba675SRob Herring 59724ba675SRob Herring led-1 { 60724ba675SRob Herring label = "hmi-b:green:heartbeat-running"; 61724ba675SRob Herring gpios = <&gpio2 28 GPIO_ACTIVE_HIGH>; 62724ba675SRob Herring linux,default-trigger = "heartbeat"; 63724ba675SRob Herring }; 64724ba675SRob Herring 65724ba675SRob Herring led-2 { 66724ba675SRob Herring label = "hmi-c:red:mesh-error"; 67724ba675SRob Herring gpios = <&gpio2 29 GPIO_ACTIVE_HIGH>; 68724ba675SRob Herring }; 69724ba675SRob Herring 70724ba675SRob Herring led-3 { 71724ba675SRob Herring label = "hmi-c:green:mesh-activity"; 72724ba675SRob Herring gpios = <&gpio2 30 GPIO_ACTIVE_HIGH>; 73724ba675SRob Herring }; 74724ba675SRob Herring 75724ba675SRob Herring led-4 { 76724ba675SRob Herring label = "hmi-d:red:omnia-error"; 77724ba675SRob Herring gpios = <&gpio2 31 GPIO_ACTIVE_HIGH>; 78724ba675SRob Herring }; 79724ba675SRob Herring 80724ba675SRob Herring led-5 { 81724ba675SRob Herring label = "hmi-d:green:omnia-activity"; 82724ba675SRob Herring gpios = <&gpio4 3 GPIO_ACTIVE_HIGH>; 83724ba675SRob Herring }; 84724ba675SRob Herring }; 85724ba675SRob Herring 86724ba675SRob Herring /* 87724ba675SRob Herring * Errata e10574 board restart workaround. 88724ba675SRob Herring */ 89724ba675SRob Herring gpio-restart { 90724ba675SRob Herring pinctrl-names = "default"; 91724ba675SRob Herring pinctrl-0 = <&pinctrl_restart>; 92724ba675SRob Herring compatible = "gpio-restart"; 93724ba675SRob Herring gpios = <&gpio7 12 GPIO_ACTIVE_LOW>; 94724ba675SRob Herring priority = <200>; 95724ba675SRob Herring }; 96724ba675SRob Herring}; 97724ba675SRob Herring 98724ba675SRob Herring/* 99724ba675SRob Herring * Analog signals 100724ba675SRob Herring * ADC1_IN0: SMPS - 5V output monitor (voltage divider: 1/0.2806) 101724ba675SRob Herring */ 102724ba675SRob Herring&adc1 { 103724ba675SRob Herring vref-supply = <®_vref_1v8>; 104724ba675SRob Herring status = "okay"; 105724ba675SRob Herring}; 106724ba675SRob Herring 107724ba675SRob Herring&ecspi2 { 108724ba675SRob Herring pinctrl-names = "default"; 109724ba675SRob Herring pinctrl-0 = <&pinctrl_ecspi2>; 110724ba675SRob Herring cs-gpios = <&gpio4 23 GPIO_ACTIVE_LOW>; 111724ba675SRob Herring status = "okay"; 112724ba675SRob Herring 113724ba675SRob Herring pcf2127: rtc@0 { 114724ba675SRob Herring compatible = "nxp,pcf2127"; 115724ba675SRob Herring reg = <0>; 116724ba675SRob Herring spi-max-frequency = <2000000>; 117724ba675SRob Herring reset-source; 118724ba675SRob Herring }; 119724ba675SRob Herring}; 120724ba675SRob Herring 121724ba675SRob Herring&ecspi4 { 122724ba675SRob Herring pinctrl-names = "default"; 123724ba675SRob Herring pinctrl-0 = <&pinctrl_ecspi4>; 124724ba675SRob Herring cs-gpios = <&gpio3 3 GPIO_ACTIVE_LOW>; 125724ba675SRob Herring status = "okay"; 126724ba675SRob Herring 127724ba675SRob Herring /* 128724ba675SRob Herring * ST chip maximum SPI clock frequency is 33 MHz. 129724ba675SRob Herring * 130724ba675SRob Herring * TCG specification - Section 6.4.1 Clocking: 131724ba675SRob Herring * TPM shall support a SPI clock frequency range of 10-24 MHz. 132724ba675SRob Herring */ 133*64783eaaSLukas Wunner st33htph: tpm@0 { 134724ba675SRob Herring compatible = "st,st33htpm-spi", "tcg,tpm_tis-spi"; 135724ba675SRob Herring reg = <0>; 136724ba675SRob Herring spi-max-frequency = <24000000>; 137724ba675SRob Herring }; 138724ba675SRob Herring}; 139724ba675SRob Herring 140724ba675SRob Herring&fec1 { 141724ba675SRob Herring pinctrl-names = "default"; 142724ba675SRob Herring pinctrl-0 = <&pinctrl_enet1>; 143724ba675SRob Herring phy-mode = "rmii"; 144724ba675SRob Herring phy-handle = <ðphy>; 145724ba675SRob Herring status = "okay"; 146724ba675SRob Herring 147724ba675SRob Herring /* 148724ba675SRob Herring * MDIO bus reset is used to generate PHY device reset before 149724ba675SRob Herring * Ethernet PHY type ID auto-detection. Otherwise this communication 150724ba675SRob Herring * fails as device does not answer when recommended reset circuit 151724ba675SRob Herring * is used. 152724ba675SRob Herring */ 153724ba675SRob Herring mdio { 154724ba675SRob Herring #address-cells = <1>; 155724ba675SRob Herring #size-cells = <0>; 156724ba675SRob Herring 157724ba675SRob Herring reset-delay-us = <100000>; 158724ba675SRob Herring reset-post-delay-us = <500000>; 159724ba675SRob Herring reset-gpios = <&gpio7 15 GPIO_ACTIVE_LOW>; 160724ba675SRob Herring 161724ba675SRob Herring /* Microchip/Micrel KSZ8081RNB */ 162724ba675SRob Herring ethphy: ethernet-phy@1 { 163724ba675SRob Herring compatible = "ethernet-phy-ieee802.3-c22"; 164724ba675SRob Herring interrupt-parent = <&gpio1>; 165724ba675SRob Herring interrupts = <9 IRQ_TYPE_LEVEL_LOW>; 166724ba675SRob Herring reg = <1>; 167724ba675SRob Herring }; 168724ba675SRob Herring }; 169724ba675SRob Herring}; 170724ba675SRob Herring 171724ba675SRob Herring/* 172724ba675SRob Herring * Detection signals for internal USB modules. 173724ba675SRob Herring * Used for robust USB plug and play handling such as USB downstream port 174724ba675SRob Herring * power-cycle and USB hub reset in case of misbehaving or crashed modules. 175724ba675SRob Herring * 176724ba675SRob Herring * SMPS - AC input monitor based on zero crossing. 177724ba675SRob Herring * Used for last gasp notification. 178724ba675SRob Herring */ 179724ba675SRob Herring&gpio3 { 180724ba675SRob Herring gpio-line-names = "", "", "", "", "", "", "", "", 181724ba675SRob Herring "", "", "", "", "smps-ac-monitor", "", "usb-hub-reset", "", 182724ba675SRob Herring "", "", "", "", "", "", "", "", 183724ba675SRob Herring "", "module-b-detection", "", "module-a-detection", "", "", "", ""; 184724ba675SRob Herring}; 185724ba675SRob Herring 186724ba675SRob Herring/* 187724ba675SRob Herring * Tamper IRQ trigger timestamp reading. 188724ba675SRob Herring * Used for sealed cover opened/closed notification. 189724ba675SRob Herring */ 190724ba675SRob Herring&gpio5 { 191724ba675SRob Herring gpio-line-names = "", "", "", "", "", "", "", "", 192724ba675SRob Herring "", "", "", "", "rtc-tamper-irq", "", "", "", 193724ba675SRob Herring "", "", "", "", "", "", "", "", 194724ba675SRob Herring "", "", "", "", "", "", "", ""; 195724ba675SRob Herring}; 196724ba675SRob Herring 197724ba675SRob Herring&iomuxc { 198724ba675SRob Herring pinctrl-names = "default"; 199724ba675SRob Herring pinctrl-0 = <&pinctrl_misc>; 200724ba675SRob Herring 201724ba675SRob Herring pinctrl_ecspi2: ecspi2grp { 202724ba675SRob Herring fsl,pins = < 203724ba675SRob Herring MX7D_PAD_ECSPI2_MISO__ECSPI2_MISO 0x7c /* X2-15 */ 204724ba675SRob Herring MX7D_PAD_ECSPI2_MOSI__ECSPI2_MOSI 0x74 /* X2-18 */ 205724ba675SRob Herring MX7D_PAD_ECSPI2_SCLK__ECSPI2_SCLK 0x74 /* X2-13 */ 206724ba675SRob Herring MX7D_PAD_ECSPI2_SS0__GPIO4_IO23 0x74 /* X2-20 */ 207724ba675SRob Herring /* RTC - Tamper IRQ */ 208724ba675SRob Herring MX7D_PAD_SD2_CLK__GPIO5_IO12 0x3c /* X1-92 */ 209724ba675SRob Herring >; 210724ba675SRob Herring }; 211724ba675SRob Herring 212724ba675SRob Herring pinctrl_ecspi4: ecspi4grp { 213724ba675SRob Herring fsl,pins = < 214724ba675SRob Herring MX7D_PAD_LCD_CLK__ECSPI4_MISO 0x7c /* X2-72 */ 215724ba675SRob Herring MX7D_PAD_LCD_ENABLE__ECSPI4_MOSI 0x74 /* X2-68 */ 216724ba675SRob Herring MX7D_PAD_LCD_HSYNC__ECSPI4_SCLK 0x74 /* X2-76 */ 217724ba675SRob Herring MX7D_PAD_LCD_VSYNC__GPIO3_IO3 0x74 /* X2-78 */ 218724ba675SRob Herring >; 219724ba675SRob Herring }; 220724ba675SRob Herring 221724ba675SRob Herring pinctrl_enet1: enet1grp { 222724ba675SRob Herring fsl,pins = < 223724ba675SRob Herring MX7D_PAD_GPIO1_IO10__ENET1_MDIO 0x03 /* X2-48 */ 224724ba675SRob Herring MX7D_PAD_GPIO1_IO11__ENET1_MDC 0x03 /* X2-46 */ 225724ba675SRob Herring MX7D_PAD_ENET1_RGMII_TD0__ENET1_RGMII_TD0 0x71 /* X2-53 */ 226724ba675SRob Herring MX7D_PAD_ENET1_RGMII_TD1__ENET1_RGMII_TD1 0x71 /* X2-55 */ 227724ba675SRob Herring MX7D_PAD_ENET1_RGMII_TX_CTL__ENET1_RGMII_TX_CTL 0x71 /* X2-61 */ 228724ba675SRob Herring MX7D_PAD_ENET1_RGMII_RD0__ENET1_RGMII_RD0 0x79 /* X2-56 */ 229724ba675SRob Herring MX7D_PAD_ENET1_RGMII_RD1__ENET1_RGMII_RD1 0x79 /* X2-58 */ 230724ba675SRob Herring MX7D_PAD_ENET1_RGMII_RX_CTL__ENET1_RGMII_RX_CTL 0x79 /* X2-64 */ 231724ba675SRob Herring MX7D_PAD_ENET1_RGMII_RXC__ENET1_RX_ER 0x73 /* X2-52 */ 232724ba675SRob Herring /* PHY reset: SRE_FAST, DSE_X1 */ 233724ba675SRob Herring MX7D_PAD_ENET1_COL__GPIO7_IO15 0x00 /* X1-96 */ 234724ba675SRob Herring /* Clock from PHY to MAC: 100kPU */ 235724ba675SRob Herring MX7D_PAD_GPIO1_IO12__CCM_ENET_REF_CLK1 0x70 /* X3-4 */ 236724ba675SRob Herring /* PHY interrupt: 100kPU, HYS */ 237724ba675SRob Herring MX7D_PAD_GPIO1_IO09__GPIO1_IO9 0x78 /* X1-80 */ 238724ba675SRob Herring >; 239724ba675SRob Herring }; 240724ba675SRob Herring 241724ba675SRob Herring pinctrl_leds: ledsgrp { 242724ba675SRob Herring fsl,pins = < 243724ba675SRob Herring MX7D_PAD_LCD_DATA01__GPIO3_IO6 0x14 /* X2-82 */ 244724ba675SRob Herring MX7D_PAD_EPDC_BDR0__GPIO2_IO28 0x14 /* X1-82 */ 245724ba675SRob Herring MX7D_PAD_EPDC_BDR1__GPIO2_IO29 0x14 /* X1-84 */ 246724ba675SRob Herring MX7D_PAD_EPDC_PWR_COM__GPIO2_IO30 0x14 /* X1-86 */ 247724ba675SRob Herring MX7D_PAD_EPDC_PWR_STAT__GPIO2_IO31 0x14 /* X1-88 */ 248724ba675SRob Herring MX7D_PAD_UART2_TX_DATA__GPIO4_IO3 0x14 /* X1-90 */ 249724ba675SRob Herring >; 250724ba675SRob Herring }; 251724ba675SRob Herring 252724ba675SRob Herring pinctrl_misc: miscgrp { 253724ba675SRob Herring fsl,pins = < 254724ba675SRob Herring /* Module A detection (low = present) */ 255724ba675SRob Herring MX7D_PAD_LCD_DATA22__GPIO3_IO27 0x7c /* X2-105 */ 256724ba675SRob Herring /* Module B detection (low = present) */ 257724ba675SRob Herring MX7D_PAD_LCD_DATA20__GPIO3_IO25 0x7c /* X2-103 */ 258724ba675SRob Herring /* SMPS - AC input monitor (high = failure) */ 259724ba675SRob Herring MX7D_PAD_LCD_DATA07__GPIO3_IO12 0x7c /* X2-88 */ 260724ba675SRob Herring /* USB - Hub reset */ 261724ba675SRob Herring MX7D_PAD_LCD_DATA09__GPIO3_IO14 0x74 /* X2-92 */ 262724ba675SRob Herring >; 263724ba675SRob Herring }; 264724ba675SRob Herring 265724ba675SRob Herring pinctrl_restart: restartgrp { 266724ba675SRob Herring fsl,pins = < 267724ba675SRob Herring MX7D_PAD_ENET1_TX_CLK__GPIO7_IO12 0x74 /* X1-94 */ 268724ba675SRob Herring >; 269724ba675SRob Herring }; 270724ba675SRob Herring 271724ba675SRob Herring pinctrl_uart4: uart4grp { 272724ba675SRob Herring fsl,pins = < 273724ba675SRob Herring MX7D_PAD_SAI2_TX_SYNC__UART4_DCE_RX 0x7e /* X3-14 */ 274724ba675SRob Herring MX7D_PAD_SAI2_TX_BCLK__UART4_DCE_TX 0x76 /* X3-16 */ 275724ba675SRob Herring >; 276724ba675SRob Herring }; 277724ba675SRob Herring}; 278724ba675SRob Herring 279724ba675SRob Herring&iomuxc_lpsr { 280724ba675SRob Herring pinctrl_usbotg2: usbotg2grp { 281724ba675SRob Herring fsl,pins = < 282724ba675SRob Herring MX7D_PAD_LPSR_GPIO1_IO06__USB_OTG2_OC 0x5c /* X3-11 */ 283724ba675SRob Herring MX7D_PAD_LPSR_GPIO1_IO07__GPIO1_IO7 0x59 /* X3-9 */ 284724ba675SRob Herring >; 285724ba675SRob Herring }; 286724ba675SRob Herring 287724ba675SRob Herring}; 288724ba675SRob Herring 289724ba675SRob Herring&uart4 { 290724ba675SRob Herring pinctrl-names = "default"; 291724ba675SRob Herring pinctrl-0 = <&pinctrl_uart4>; 292724ba675SRob Herring assigned-clocks = <&clks IMX7D_UART4_ROOT_SRC>; 293724ba675SRob Herring assigned-clock-parents = <&clks IMX7D_OSC_24M_CLK>; 294724ba675SRob Herring}; 295724ba675SRob Herring 296724ba675SRob Herring&usbotg2 { 297724ba675SRob Herring pinctrl-names = "default"; 298724ba675SRob Herring pinctrl-0 = <&pinctrl_usbotg2>; 299724ba675SRob Herring vbus-supply = <®_usb_otg2_vbus>; 300724ba675SRob Herring srp-disable; 301724ba675SRob Herring hnp-disable; 302724ba675SRob Herring adp-disable; 303724ba675SRob Herring over-current-active-low; 304724ba675SRob Herring dr_mode = "host"; 305724ba675SRob Herring status = "okay"; 306724ba675SRob Herring}; 307724ba675SRob Herring 308724ba675SRob Herring/* 309724ba675SRob Herring * External watchdog feature provided by pcf2127. 310724ba675SRob Herring */ 311724ba675SRob Herring&wdog1 { 312724ba675SRob Herring status = "disabled"; 313724ba675SRob Herring}; 314