10e8011faSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0-only OR MIT 20e8011faSEmmanuel Vadot/* 30e8011faSEmmanuel Vadot * Device Tree file for the MCU domain peripherals shared by AM62P and J722S 40e8011faSEmmanuel Vadot * 50e8011faSEmmanuel Vadot * Copyright (C) 2023-2024 Texas Instruments Incorporated - https://www.ti.com/ 60e8011faSEmmanuel Vadot */ 70e8011faSEmmanuel Vadot 80e8011faSEmmanuel Vadot&cbass_mcu { 90e8011faSEmmanuel Vadot mcu_pmx0: pinctrl@4084000 { 100e8011faSEmmanuel Vadot compatible = "pinctrl-single"; 110e8011faSEmmanuel Vadot reg = <0x00 0x04084000 0x00 0x88>; 120e8011faSEmmanuel Vadot #pinctrl-cells = <1>; 130e8011faSEmmanuel Vadot pinctrl-single,register-width = <32>; 140e8011faSEmmanuel Vadot pinctrl-single,function-mask = <0xffffffff>; 150e8011faSEmmanuel Vadot pinctrl-single,gpio-range = 160e8011faSEmmanuel Vadot <&mcu_pmx_range 0 21 PIN_GPIO_RANGE_IOPAD>, 170e8011faSEmmanuel Vadot <&mcu_pmx_range 23 1 PIN_GPIO_RANGE_IOPAD>, 180e8011faSEmmanuel Vadot <&mcu_pmx_range 32 2 PIN_GPIO_RANGE_IOPAD>; 190e8011faSEmmanuel Vadot bootph-all; 200e8011faSEmmanuel Vadot 210e8011faSEmmanuel Vadot mcu_pmx_range: gpio-range { 220e8011faSEmmanuel Vadot #pinctrl-single,gpio-range-cells = <3>; 230e8011faSEmmanuel Vadot }; 240e8011faSEmmanuel Vadot }; 250e8011faSEmmanuel Vadot 260e8011faSEmmanuel Vadot mcu_esm: esm@4100000 { 270e8011faSEmmanuel Vadot compatible = "ti,j721e-esm"; 280e8011faSEmmanuel Vadot reg = <0x00 0x4100000 0x00 0x1000>; 290e8011faSEmmanuel Vadot bootph-pre-ram; 30*b2d2a78aSEmmanuel Vadot /* Interrupt sources: esm0_cfg, esm0_hi, esm0_low, mrti0, wrti0 */ 31*b2d2a78aSEmmanuel Vadot ti,esm-pins = <0>, <1>, <2>, <85>, <86>; 320e8011faSEmmanuel Vadot }; 330e8011faSEmmanuel Vadot 340e8011faSEmmanuel Vadot /* 350e8011faSEmmanuel Vadot * The MCU domain timer interrupts are routed only to the ESM module, 360e8011faSEmmanuel Vadot * and not currently available for Linux. The MCU domain timers are 370e8011faSEmmanuel Vadot * of limited use without interrupts, and likely reserved by the ESM. 380e8011faSEmmanuel Vadot */ 390e8011faSEmmanuel Vadot mcu_timer0: timer@4800000 { 400e8011faSEmmanuel Vadot compatible = "ti,am654-timer"; 410e8011faSEmmanuel Vadot reg = <0x00 0x4800000 0x00 0x400>; 420e8011faSEmmanuel Vadot clocks = <&k3_clks 35 2>; 430e8011faSEmmanuel Vadot clock-names = "fck"; 440e8011faSEmmanuel Vadot power-domains = <&k3_pds 35 TI_SCI_PD_EXCLUSIVE>; 450e8011faSEmmanuel Vadot ti,timer-pwm; 460e8011faSEmmanuel Vadot status = "reserved"; 470e8011faSEmmanuel Vadot }; 480e8011faSEmmanuel Vadot 490e8011faSEmmanuel Vadot mcu_timer1: timer@4810000 { 500e8011faSEmmanuel Vadot compatible = "ti,am654-timer"; 510e8011faSEmmanuel Vadot reg = <0x00 0x4810000 0x00 0x400>; 520e8011faSEmmanuel Vadot clocks = <&k3_clks 48 2>; 530e8011faSEmmanuel Vadot clock-names = "fck"; 540e8011faSEmmanuel Vadot power-domains = <&k3_pds 48 TI_SCI_PD_EXCLUSIVE>; 550e8011faSEmmanuel Vadot ti,timer-pwm; 560e8011faSEmmanuel Vadot status = "reserved"; 570e8011faSEmmanuel Vadot }; 580e8011faSEmmanuel Vadot 590e8011faSEmmanuel Vadot mcu_timer2: timer@4820000 { 600e8011faSEmmanuel Vadot compatible = "ti,am654-timer"; 610e8011faSEmmanuel Vadot reg = <0x00 0x4820000 0x00 0x400>; 620e8011faSEmmanuel Vadot clocks = <&k3_clks 49 2>; 630e8011faSEmmanuel Vadot clock-names = "fck"; 640e8011faSEmmanuel Vadot power-domains = <&k3_pds 49 TI_SCI_PD_EXCLUSIVE>; 650e8011faSEmmanuel Vadot ti,timer-pwm; 660e8011faSEmmanuel Vadot status = "reserved"; 670e8011faSEmmanuel Vadot }; 680e8011faSEmmanuel Vadot 690e8011faSEmmanuel Vadot mcu_timer3: timer@4830000 { 700e8011faSEmmanuel Vadot compatible = "ti,am654-timer"; 710e8011faSEmmanuel Vadot reg = <0x00 0x4830000 0x00 0x400>; 720e8011faSEmmanuel Vadot clocks = <&k3_clks 50 2>; 730e8011faSEmmanuel Vadot clock-names = "fck"; 740e8011faSEmmanuel Vadot power-domains = <&k3_pds 50 TI_SCI_PD_EXCLUSIVE>; 750e8011faSEmmanuel Vadot ti,timer-pwm; 760e8011faSEmmanuel Vadot status = "reserved"; 770e8011faSEmmanuel Vadot }; 780e8011faSEmmanuel Vadot 790e8011faSEmmanuel Vadot mcu_uart0: serial@4a00000 { 800e8011faSEmmanuel Vadot compatible = "ti,am64-uart", "ti,am654-uart"; 810e8011faSEmmanuel Vadot reg = <0x00 0x04a00000 0x00 0x100>; 820e8011faSEmmanuel Vadot interrupts = <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>; 830e8011faSEmmanuel Vadot power-domains = <&k3_pds 149 TI_SCI_PD_EXCLUSIVE>; 840e8011faSEmmanuel Vadot clocks = <&k3_clks 149 0>; 850e8011faSEmmanuel Vadot clock-names = "fclk"; 860e8011faSEmmanuel Vadot status = "disabled"; 870e8011faSEmmanuel Vadot }; 880e8011faSEmmanuel Vadot 890e8011faSEmmanuel Vadot mcu_i2c0: i2c@4900000 { 900e8011faSEmmanuel Vadot compatible = "ti,am64-i2c", "ti,omap4-i2c"; 910e8011faSEmmanuel Vadot reg = <0x00 0x04900000 0x00 0x100>; 920e8011faSEmmanuel Vadot interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; 930e8011faSEmmanuel Vadot #address-cells = <1>; 940e8011faSEmmanuel Vadot #size-cells = <0>; 950e8011faSEmmanuel Vadot power-domains = <&k3_pds 106 TI_SCI_PD_EXCLUSIVE>; 960e8011faSEmmanuel Vadot clocks = <&k3_clks 106 2>; 970e8011faSEmmanuel Vadot clock-names = "fck"; 980e8011faSEmmanuel Vadot status = "disabled"; 990e8011faSEmmanuel Vadot }; 1000e8011faSEmmanuel Vadot 1010e8011faSEmmanuel Vadot mcu_spi0: spi@4b00000 { 1020e8011faSEmmanuel Vadot compatible = "ti,am654-mcspi", "ti,omap4-mcspi"; 1030e8011faSEmmanuel Vadot reg = <0x00 0x04b00000 0x00 0x400>; 1040e8011faSEmmanuel Vadot interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>; 1050e8011faSEmmanuel Vadot #address-cells = <1>; 1060e8011faSEmmanuel Vadot #size-cells = <0>; 1070e8011faSEmmanuel Vadot power-domains = <&k3_pds 147 TI_SCI_PD_EXCLUSIVE>; 1080e8011faSEmmanuel Vadot clocks = <&k3_clks 147 0>; 1090e8011faSEmmanuel Vadot status = "disabled"; 1100e8011faSEmmanuel Vadot }; 1110e8011faSEmmanuel Vadot 1120e8011faSEmmanuel Vadot mcu_spi1: spi@4b10000 { 1130e8011faSEmmanuel Vadot compatible = "ti,am654-mcspi","ti,omap4-mcspi"; 1140e8011faSEmmanuel Vadot reg = <0x00 0x04b10000 0x00 0x400>; 1150e8011faSEmmanuel Vadot interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>; 1160e8011faSEmmanuel Vadot #address-cells = <1>; 1170e8011faSEmmanuel Vadot #size-cells = <0>; 1180e8011faSEmmanuel Vadot power-domains = <&k3_pds 148 TI_SCI_PD_EXCLUSIVE>; 1190e8011faSEmmanuel Vadot clocks = <&k3_clks 148 0>; 1200e8011faSEmmanuel Vadot status = "disabled"; 1210e8011faSEmmanuel Vadot }; 1220e8011faSEmmanuel Vadot 1230e8011faSEmmanuel Vadot mcu_gpio_intr: interrupt-controller@4210000 { 1240e8011faSEmmanuel Vadot compatible = "ti,sci-intr"; 1250e8011faSEmmanuel Vadot reg = <0x00 0x04210000 0x00 0x200>; 1260e8011faSEmmanuel Vadot ti,intr-trigger-type = <1>; 1270e8011faSEmmanuel Vadot interrupt-controller; 1280e8011faSEmmanuel Vadot interrupt-parent = <&gic500>; 1290e8011faSEmmanuel Vadot #interrupt-cells = <1>; 1300e8011faSEmmanuel Vadot ti,sci = <&dmsc>; 1310e8011faSEmmanuel Vadot ti,sci-dev-id = <5>; 1320e8011faSEmmanuel Vadot ti,interrupt-ranges = <0 104 4>; 1330e8011faSEmmanuel Vadot }; 1340e8011faSEmmanuel Vadot 1350e8011faSEmmanuel Vadot mcu_gpio0: gpio@4201000 { 1360e8011faSEmmanuel Vadot compatible = "ti,am64-gpio", "ti,keystone-gpio"; 1370e8011faSEmmanuel Vadot reg = <0x00 0x4201000 0x00 0x100>; 1380e8011faSEmmanuel Vadot gpio-controller; 1390e8011faSEmmanuel Vadot #gpio-cells = <2>; 1400e8011faSEmmanuel Vadot interrupt-parent = <&mcu_gpio_intr>; 1410e8011faSEmmanuel Vadot interrupts = <30>, <31>; 1420e8011faSEmmanuel Vadot interrupt-controller; 1430e8011faSEmmanuel Vadot #interrupt-cells = <2>; 1440e8011faSEmmanuel Vadot ti,ngpio = <24>; 1450e8011faSEmmanuel Vadot ti,davinci-gpio-unbanked = <0>; 1460e8011faSEmmanuel Vadot power-domains = <&k3_pds 79 TI_SCI_PD_EXCLUSIVE>; 1470e8011faSEmmanuel Vadot clocks = <&k3_clks 79 0>; 1480e8011faSEmmanuel Vadot clock-names = "gpio"; 1490e8011faSEmmanuel Vadot gpio-ranges = <&mcu_pmx0 0 0 21>, <&mcu_pmx0 21 23 1>, 1500e8011faSEmmanuel Vadot <&mcu_pmx0 22 32 2>; 1510e8011faSEmmanuel Vadot }; 1520e8011faSEmmanuel Vadot 1530e8011faSEmmanuel Vadot mcu_rti0: watchdog@4880000 { 1540e8011faSEmmanuel Vadot compatible = "ti,j7-rti-wdt"; 1550e8011faSEmmanuel Vadot reg = <0x00 0x04880000 0x00 0x100>; 1560e8011faSEmmanuel Vadot clocks = <&k3_clks 131 0>; 1570e8011faSEmmanuel Vadot power-domains = <&k3_pds 131 TI_SCI_PD_EXCLUSIVE>; 1580e8011faSEmmanuel Vadot assigned-clocks = <&k3_clks 131 0>; 1590e8011faSEmmanuel Vadot assigned-clock-parents = <&k3_clks 131 2>; 1600e8011faSEmmanuel Vadot /* Tightly coupled to M4F */ 1610e8011faSEmmanuel Vadot status = "reserved"; 1620e8011faSEmmanuel Vadot }; 1630e8011faSEmmanuel Vadot 1640e8011faSEmmanuel Vadot mcu_mcan0: can@4e08000 { 1650e8011faSEmmanuel Vadot compatible = "bosch,m_can"; 1660e8011faSEmmanuel Vadot reg = <0x00 0x4e08000 0x00 0x200>, 1670e8011faSEmmanuel Vadot <0x00 0x4e00000 0x00 0x8000>; 1680e8011faSEmmanuel Vadot reg-names = "m_can", "message_ram"; 1690e8011faSEmmanuel Vadot power-domains = <&k3_pds 188 TI_SCI_PD_EXCLUSIVE>; 1700e8011faSEmmanuel Vadot clocks = <&k3_clks 188 6>, <&k3_clks 188 1>; 1710e8011faSEmmanuel Vadot clock-names = "hclk", "cclk"; 1720e8011faSEmmanuel Vadot bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>; 1730e8011faSEmmanuel Vadot interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>, 1740e8011faSEmmanuel Vadot <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>; 1750e8011faSEmmanuel Vadot interrupt-names = "int0", "int1"; 1760e8011faSEmmanuel Vadot status = "disabled"; 1770e8011faSEmmanuel Vadot }; 1780e8011faSEmmanuel Vadot 1790e8011faSEmmanuel Vadot mcu_mcan1: can@4e18000 { 1800e8011faSEmmanuel Vadot compatible = "bosch,m_can"; 1810e8011faSEmmanuel Vadot reg = <0x00 0x4e18000 0x00 0x200>, 1820e8011faSEmmanuel Vadot <0x00 0x4e10000 0x00 0x8000>; 1830e8011faSEmmanuel Vadot reg-names = "m_can", "message_ram"; 1840e8011faSEmmanuel Vadot power-domains = <&k3_pds 189 TI_SCI_PD_EXCLUSIVE>; 1850e8011faSEmmanuel Vadot clocks = <&k3_clks 189 6>, <&k3_clks 189 1>; 1860e8011faSEmmanuel Vadot clock-names = "hclk", "cclk"; 1870e8011faSEmmanuel Vadot bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>; 1880e8011faSEmmanuel Vadot interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>, 1890e8011faSEmmanuel Vadot <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; 1900e8011faSEmmanuel Vadot interrupt-names = "int0", "int1"; 1910e8011faSEmmanuel Vadot status = "disabled"; 1920e8011faSEmmanuel Vadot }; 1930e8011faSEmmanuel Vadot 1940e8011faSEmmanuel Vadot mcu_r5fss0: r5fss@79000000 { 1950e8011faSEmmanuel Vadot compatible = "ti,am62-r5fss"; 1960e8011faSEmmanuel Vadot #address-cells = <1>; 1970e8011faSEmmanuel Vadot #size-cells = <1>; 1980e8011faSEmmanuel Vadot ranges = <0x79000000 0x00 0x79000000 0x8000>, 1990e8011faSEmmanuel Vadot <0x79020000 0x00 0x79020000 0x8000>; 2000e8011faSEmmanuel Vadot power-domains = <&k3_pds 7 TI_SCI_PD_EXCLUSIVE>; 2010e8011faSEmmanuel Vadot status = "disabled"; 2020e8011faSEmmanuel Vadot 2030e8011faSEmmanuel Vadot mcu_r5fss0_core0: r5f@79000000 { 2040e8011faSEmmanuel Vadot compatible = "ti,am62-r5f"; 2050e8011faSEmmanuel Vadot reg = <0x79000000 0x00008000>, 2060e8011faSEmmanuel Vadot <0x79020000 0x00008000>; 2070e8011faSEmmanuel Vadot reg-names = "atcm", "btcm"; 2080e8011faSEmmanuel Vadot ti,sci = <&dmsc>; 2090e8011faSEmmanuel Vadot ti,sci-dev-id = <9>; 2100e8011faSEmmanuel Vadot ti,sci-proc-ids = <0x03 0xff>; 2110e8011faSEmmanuel Vadot resets = <&k3_reset 9 1>; 2120e8011faSEmmanuel Vadot firmware-name = "am62p-mcu-r5f0_0-fw"; 2130e8011faSEmmanuel Vadot ti,atcm-enable = <0>; 2140e8011faSEmmanuel Vadot ti,btcm-enable = <1>; 2150e8011faSEmmanuel Vadot ti,loczrama = <0>; 2160e8011faSEmmanuel Vadot }; 2170e8011faSEmmanuel Vadot }; 2180e8011faSEmmanuel Vadot}; 219