| // SPDX-License-Identifier: GPL-2.0 |
| /* |
| * Device Tree Source for Kamstrup OMNIA Flex Concentrator. |
| * |
| * Copyright (C) 2020 Kamstrup A/S |
| * Author: Bruno Thomsen <bruno.thomsen@gmail.com> |
| */ |
| |
| /dts-v1/; |
| |
| #include "imx7d-tqma7.dtsi" |
| |
| /* One I2C device on TQMa7 SoM is not mounted */ |
| /delete-node/ &ds1339; |
| |
| / { |
| model = "Kamstrup OMNIA Flex Concentrator"; |
| compatible = "kam,imx7d-flex-concentrator", "fsl,imx7d"; |
| |
| memory@80000000 { |
| device_type = "memory"; |
| /* 1024 MB - TQMa7D board configuration */ |
| reg = <0x80000000 0x40000000>; |
| }; |
| |
| reg_usb_otg2_vbus: regulator-usb-otg2-vbus { |
| compatible = "regulator-fixed"; |
| regulator-name = "VBUS_USBOTG2"; |
| regulator-min-microvolt = <5000000>; |
| regulator-max-microvolt = <5000000>; |
| gpio = <&gpio1 7 GPIO_ACTIVE_HIGH>; |
| enable-active-high; |
| }; |
| |
| reg_vref_1v8: regulator-vref-1v8 { |
| compatible = "regulator-fixed"; |
| regulator-name = "VCC1V8_REF"; |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <1800000>; |
| regulator-always-on; |
| vin-supply = <&sw2_reg>; |
| }; |
| |
| /* |
| * Human Machine Interface consists of 4 dual red/green LEDs. |
| * hmi-a:green is controlled directly by the switch-mode power supply. |
| * hmi-a:red is not used. |
| */ |
| gpio-leds { |
| compatible = "gpio-leds"; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_leds>; |
| |
| led-0 { |
| label = "hmi-b:red:heartbeat-degraded"; |
| gpios = <&gpio3 6 GPIO_ACTIVE_HIGH>; |
| }; |
| |
| led-1 { |
| label = "hmi-b:green:heartbeat-running"; |
| gpios = <&gpio2 28 GPIO_ACTIVE_HIGH>; |
| linux,default-trigger = "heartbeat"; |
| }; |
| |
| led-2 { |
| label = "hmi-c:red:mesh-error"; |
| gpios = <&gpio2 29 GPIO_ACTIVE_HIGH>; |
| }; |
| |
| led-3 { |
| label = "hmi-c:green:mesh-activity"; |
| gpios = <&gpio2 30 GPIO_ACTIVE_HIGH>; |
| }; |
| |
| led-4 { |
| label = "hmi-d:red:omnia-error"; |
| gpios = <&gpio2 31 GPIO_ACTIVE_HIGH>; |
| }; |
| |
| led-5 { |
| label = "hmi-d:green:omnia-activity"; |
| gpios = <&gpio4 3 GPIO_ACTIVE_HIGH>; |
| }; |
| }; |
| |
| /* |
| * Errata e10574 board restart workaround. |
| */ |
| gpio-restart { |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_restart>; |
| compatible = "gpio-restart"; |
| gpios = <&gpio7 12 GPIO_ACTIVE_LOW>; |
| priority = <200>; |
| }; |
| }; |
| |
| /* |
| * Analog signals |
| * ADC1_IN0: SMPS - 5V output monitor (voltage divider: 1/0.2806) |
| */ |
| &adc1 { |
| vref-supply = <®_vref_1v8>; |
| status = "okay"; |
| }; |
| |
| &ecspi2 { |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_ecspi2>; |
| cs-gpios = <&gpio4 23 GPIO_ACTIVE_LOW>; |
| status = "okay"; |
| |
| pcf2127: rtc@0 { |
| compatible = "nxp,pcf2127"; |
| reg = <0>; |
| spi-max-frequency = <2000000>; |
| reset-source; |
| }; |
| }; |
| |
| &ecspi4 { |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_ecspi4>; |
| cs-gpios = <&gpio3 3 GPIO_ACTIVE_LOW>; |
| status = "okay"; |
| |
| /* |
| * ST chip maximum SPI clock frequency is 33 MHz. |
| * |
| * TCG specification - Section 6.4.1 Clocking: |
| * TPM shall support a SPI clock frequency range of 10-24 MHz. |
| */ |
| st33htph: tpm@0 { |
| compatible = "st,st33htpm-spi", "tcg,tpm_tis-spi"; |
| reg = <0>; |
| spi-max-frequency = <24000000>; |
| }; |
| }; |
| |
| &fec1 { |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_enet1>; |
| phy-mode = "rmii"; |
| phy-handle = <ðphy>; |
| status = "okay"; |
| |
| /* |
| * MDIO bus reset is used to generate PHY device reset before |
| * Ethernet PHY type ID auto-detection. Otherwise this communication |
| * fails as device does not answer when recommended reset circuit |
| * is used. |
| */ |
| mdio { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| reset-delay-us = <100000>; |
| reset-post-delay-us = <500000>; |
| reset-gpios = <&gpio7 15 GPIO_ACTIVE_LOW>; |
| |
| /* Microchip/Micrel KSZ8081RNB */ |
| ethphy: ethernet-phy@1 { |
| compatible = "ethernet-phy-ieee802.3-c22"; |
| interrupt-parent = <&gpio1>; |
| interrupts = <9 IRQ_TYPE_LEVEL_LOW>; |
| reg = <1>; |
| }; |
| }; |
| }; |
| |
| /* |
| * Detection signals for internal USB modules. |
| * Used for robust USB plug and play handling such as USB downstream port |
| * power-cycle and USB hub reset in case of misbehaving or crashed modules. |
| * |
| * SMPS - AC input monitor based on zero crossing. |
| * Used for last gasp notification. |
| */ |
| &gpio3 { |
| gpio-line-names = "", "", "", "", "", "", "", "", |
| "", "", "", "", "smps-ac-monitor", "", "usb-hub-reset", "", |
| "", "", "", "", "", "", "", "", |
| "", "module-b-detection", "", "module-a-detection", "", "", "", ""; |
| }; |
| |
| /* |
| * Tamper IRQ trigger timestamp reading. |
| * Used for sealed cover opened/closed notification. |
| */ |
| &gpio5 { |
| gpio-line-names = "", "", "", "", "", "", "", "", |
| "", "", "", "", "rtc-tamper-irq", "", "", "", |
| "", "", "", "", "", "", "", "", |
| "", "", "", "", "", "", "", ""; |
| }; |
| |
| &iomuxc { |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_misc>; |
| |
| pinctrl_ecspi2: ecspi2grp { |
| fsl,pins = < |
| MX7D_PAD_ECSPI2_MISO__ECSPI2_MISO 0x7c /* X2-15 */ |
| MX7D_PAD_ECSPI2_MOSI__ECSPI2_MOSI 0x74 /* X2-18 */ |
| MX7D_PAD_ECSPI2_SCLK__ECSPI2_SCLK 0x74 /* X2-13 */ |
| MX7D_PAD_ECSPI2_SS0__GPIO4_IO23 0x74 /* X2-20 */ |
| /* RTC - Tamper IRQ */ |
| MX7D_PAD_SD2_CLK__GPIO5_IO12 0x3c /* X1-92 */ |
| >; |
| }; |
| |
| pinctrl_ecspi4: ecspi4grp { |
| fsl,pins = < |
| MX7D_PAD_LCD_CLK__ECSPI4_MISO 0x7c /* X2-72 */ |
| MX7D_PAD_LCD_ENABLE__ECSPI4_MOSI 0x74 /* X2-68 */ |
| MX7D_PAD_LCD_HSYNC__ECSPI4_SCLK 0x74 /* X2-76 */ |
| MX7D_PAD_LCD_VSYNC__GPIO3_IO3 0x74 /* X2-78 */ |
| >; |
| }; |
| |
| pinctrl_enet1: enet1grp { |
| fsl,pins = < |
| MX7D_PAD_GPIO1_IO10__ENET1_MDIO 0x03 /* X2-48 */ |
| MX7D_PAD_GPIO1_IO11__ENET1_MDC 0x03 /* X2-46 */ |
| MX7D_PAD_ENET1_RGMII_TD0__ENET1_RGMII_TD0 0x71 /* X2-53 */ |
| MX7D_PAD_ENET1_RGMII_TD1__ENET1_RGMII_TD1 0x71 /* X2-55 */ |
| MX7D_PAD_ENET1_RGMII_TX_CTL__ENET1_RGMII_TX_CTL 0x71 /* X2-61 */ |
| MX7D_PAD_ENET1_RGMII_RD0__ENET1_RGMII_RD0 0x79 /* X2-56 */ |
| MX7D_PAD_ENET1_RGMII_RD1__ENET1_RGMII_RD1 0x79 /* X2-58 */ |
| MX7D_PAD_ENET1_RGMII_RX_CTL__ENET1_RGMII_RX_CTL 0x79 /* X2-64 */ |
| MX7D_PAD_ENET1_RGMII_RXC__ENET1_RX_ER 0x73 /* X2-52 */ |
| /* PHY reset: SRE_FAST, DSE_X1 */ |
| MX7D_PAD_ENET1_COL__GPIO7_IO15 0x00 /* X1-96 */ |
| /* Clock from PHY to MAC: 100kPU */ |
| MX7D_PAD_GPIO1_IO12__CCM_ENET_REF_CLK1 0x70 /* X3-4 */ |
| /* PHY interrupt: 100kPU, HYS */ |
| MX7D_PAD_GPIO1_IO09__GPIO1_IO9 0x78 /* X1-80 */ |
| >; |
| }; |
| |
| pinctrl_leds: ledsgrp { |
| fsl,pins = < |
| MX7D_PAD_LCD_DATA01__GPIO3_IO6 0x14 /* X2-82 */ |
| MX7D_PAD_EPDC_BDR0__GPIO2_IO28 0x14 /* X1-82 */ |
| MX7D_PAD_EPDC_BDR1__GPIO2_IO29 0x14 /* X1-84 */ |
| MX7D_PAD_EPDC_PWR_COM__GPIO2_IO30 0x14 /* X1-86 */ |
| MX7D_PAD_EPDC_PWR_STAT__GPIO2_IO31 0x14 /* X1-88 */ |
| MX7D_PAD_UART2_TX_DATA__GPIO4_IO3 0x14 /* X1-90 */ |
| >; |
| }; |
| |
| pinctrl_misc: miscgrp { |
| fsl,pins = < |
| /* Module A detection (low = present) */ |
| MX7D_PAD_LCD_DATA22__GPIO3_IO27 0x7c /* X2-105 */ |
| /* Module B detection (low = present) */ |
| MX7D_PAD_LCD_DATA20__GPIO3_IO25 0x7c /* X2-103 */ |
| /* SMPS - AC input monitor (high = failure) */ |
| MX7D_PAD_LCD_DATA07__GPIO3_IO12 0x7c /* X2-88 */ |
| /* USB - Hub reset */ |
| MX7D_PAD_LCD_DATA09__GPIO3_IO14 0x74 /* X2-92 */ |
| >; |
| }; |
| |
| pinctrl_restart: restartgrp { |
| fsl,pins = < |
| MX7D_PAD_ENET1_TX_CLK__GPIO7_IO12 0x74 /* X1-94 */ |
| >; |
| }; |
| |
| pinctrl_uart4: uart4grp { |
| fsl,pins = < |
| MX7D_PAD_SAI2_TX_SYNC__UART4_DCE_RX 0x7e /* X3-14 */ |
| MX7D_PAD_SAI2_TX_BCLK__UART4_DCE_TX 0x76 /* X3-16 */ |
| >; |
| }; |
| }; |
| |
| &iomuxc_lpsr { |
| pinctrl_usbotg2: usbotg2grp { |
| fsl,pins = < |
| MX7D_PAD_LPSR_GPIO1_IO06__USB_OTG2_OC 0x5c /* X3-11 */ |
| MX7D_PAD_LPSR_GPIO1_IO07__GPIO1_IO7 0x59 /* X3-9 */ |
| >; |
| }; |
| |
| }; |
| |
| &uart4 { |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_uart4>; |
| assigned-clocks = <&clks IMX7D_UART4_ROOT_SRC>; |
| assigned-clock-parents = <&clks IMX7D_OSC_24M_CLK>; |
| }; |
| |
| &usbotg2 { |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_usbotg2>; |
| vbus-supply = <®_usb_otg2_vbus>; |
| srp-disable; |
| hnp-disable; |
| adp-disable; |
| over-current-active-low; |
| dr_mode = "host"; |
| status = "okay"; |
| }; |
| |
| /* |
| * External watchdog feature provided by pcf2127. |
| */ |
| &wdog1 { |
| status = "disabled"; |
| }; |