xref: /freebsd-src/sys/contrib/device-tree/src/arm64/ti/k3-am62a-mcu.dtsi (revision b2d2a78ad80ec68d4a17f5aef97d21686cb1e29b)
101950c46SEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0-only OR MIT
27ef62cebSEmmanuel Vadot/*
37ef62cebSEmmanuel Vadot * Device Tree Source for AM625 SoC Family MCU Domain peripherals
47ef62cebSEmmanuel Vadot *
501950c46SEmmanuel Vadot * Copyright (C) 2020-2024 Texas Instruments Incorporated - https://www.ti.com/
67ef62cebSEmmanuel Vadot */
77ef62cebSEmmanuel Vadot
87ef62cebSEmmanuel Vadot&cbass_mcu {
97ef62cebSEmmanuel Vadot	mcu_pmx0: pinctrl@4084000 {
107ef62cebSEmmanuel Vadot		compatible = "pinctrl-single";
117ef62cebSEmmanuel Vadot		reg = <0x00 0x04084000 0x00 0x88>;
127ef62cebSEmmanuel Vadot		#pinctrl-cells = <1>;
137ef62cebSEmmanuel Vadot		pinctrl-single,register-width = <32>;
147ef62cebSEmmanuel Vadot		pinctrl-single,function-mask = <0xffffffff>;
157ef62cebSEmmanuel Vadot		status = "disabled";
167ef62cebSEmmanuel Vadot	};
177ef62cebSEmmanuel Vadot
18*b2d2a78aSEmmanuel Vadot	mcu_esm: esm@4100000 {
19*b2d2a78aSEmmanuel Vadot		compatible = "ti,j721e-esm";
20*b2d2a78aSEmmanuel Vadot		reg = <0x0 0x4100000 0x0 0x1000>;
21*b2d2a78aSEmmanuel Vadot		bootph-pre-ram;
22*b2d2a78aSEmmanuel Vadot		/* Interrupt sources: esm0_cfg, esm0_hi, esm0_low, mrti0 */
23*b2d2a78aSEmmanuel Vadot		ti,esm-pins = <0>, <1>, <2>, <85>;
24*b2d2a78aSEmmanuel Vadot	};
25*b2d2a78aSEmmanuel Vadot
26f126890aSEmmanuel Vadot	/*
27f126890aSEmmanuel Vadot	 * The MCU domain timer interrupts are routed only to the ESM module,
28f126890aSEmmanuel Vadot	 * and not currently available for Linux. The MCU domain timers are
29f126890aSEmmanuel Vadot	 * of limited use without interrupts, and likely reserved by the ESM.
30f126890aSEmmanuel Vadot	 */
31f126890aSEmmanuel Vadot	mcu_timer0: timer@4800000 {
32f126890aSEmmanuel Vadot		compatible = "ti,am654-timer";
33f126890aSEmmanuel Vadot		reg = <0x00 0x4800000 0x00 0x400>;
34f126890aSEmmanuel Vadot		clocks = <&k3_clks 35 2>;
35f126890aSEmmanuel Vadot		clock-names = "fck";
36f126890aSEmmanuel Vadot		power-domains = <&k3_pds 35 TI_SCI_PD_EXCLUSIVE>;
37f126890aSEmmanuel Vadot		ti,timer-pwm;
38f126890aSEmmanuel Vadot		status = "reserved";
39f126890aSEmmanuel Vadot	};
40f126890aSEmmanuel Vadot
41f126890aSEmmanuel Vadot	mcu_timer1: timer@4810000 {
42f126890aSEmmanuel Vadot		compatible = "ti,am654-timer";
43f126890aSEmmanuel Vadot		reg = <0x00 0x4810000 0x00 0x400>;
44f126890aSEmmanuel Vadot		clocks = <&k3_clks 48 2>;
45f126890aSEmmanuel Vadot		clock-names = "fck";
46f126890aSEmmanuel Vadot		power-domains = <&k3_pds 48 TI_SCI_PD_EXCLUSIVE>;
47f126890aSEmmanuel Vadot		ti,timer-pwm;
48f126890aSEmmanuel Vadot		status = "reserved";
49f126890aSEmmanuel Vadot	};
50f126890aSEmmanuel Vadot
51f126890aSEmmanuel Vadot	mcu_timer2: timer@4820000 {
52f126890aSEmmanuel Vadot		compatible = "ti,am654-timer";
53f126890aSEmmanuel Vadot		reg = <0x00 0x4820000 0x00 0x400>;
54f126890aSEmmanuel Vadot		clocks = <&k3_clks 49 2>;
55f126890aSEmmanuel Vadot		clock-names = "fck";
56f126890aSEmmanuel Vadot		power-domains = <&k3_pds 49 TI_SCI_PD_EXCLUSIVE>;
57f126890aSEmmanuel Vadot		ti,timer-pwm;
58f126890aSEmmanuel Vadot		status = "reserved";
59f126890aSEmmanuel Vadot	};
60f126890aSEmmanuel Vadot
61f126890aSEmmanuel Vadot	mcu_timer3: timer@4830000 {
62f126890aSEmmanuel Vadot		compatible = "ti,am654-timer";
63f126890aSEmmanuel Vadot		reg = <0x00 0x4830000 0x00 0x400>;
64f126890aSEmmanuel Vadot		clocks = <&k3_clks 50 2>;
65f126890aSEmmanuel Vadot		clock-names = "fck";
66f126890aSEmmanuel Vadot		power-domains = <&k3_pds 50 TI_SCI_PD_EXCLUSIVE>;
67f126890aSEmmanuel Vadot		ti,timer-pwm;
68f126890aSEmmanuel Vadot		status = "reserved";
69f126890aSEmmanuel Vadot	};
70f126890aSEmmanuel Vadot
717ef62cebSEmmanuel Vadot	mcu_uart0: serial@4a00000 {
727ef62cebSEmmanuel Vadot		compatible = "ti,am64-uart", "ti,am654-uart";
737ef62cebSEmmanuel Vadot		reg = <0x00 0x04a00000 0x00 0x100>;
747ef62cebSEmmanuel Vadot		interrupts = <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>;
757ef62cebSEmmanuel Vadot		power-domains = <&k3_pds 149 TI_SCI_PD_EXCLUSIVE>;
767ef62cebSEmmanuel Vadot		clocks = <&k3_clks 149 0>;
777ef62cebSEmmanuel Vadot		clock-names = "fclk";
787ef62cebSEmmanuel Vadot		status = "disabled";
797ef62cebSEmmanuel Vadot	};
807ef62cebSEmmanuel Vadot
817ef62cebSEmmanuel Vadot	mcu_i2c0: i2c@4900000 {
827ef62cebSEmmanuel Vadot		compatible = "ti,am64-i2c", "ti,omap4-i2c";
837ef62cebSEmmanuel Vadot		reg = <0x00 0x04900000 0x00 0x100>;
847ef62cebSEmmanuel Vadot		interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
857ef62cebSEmmanuel Vadot		#address-cells = <1>;
867ef62cebSEmmanuel Vadot		#size-cells = <0>;
877ef62cebSEmmanuel Vadot		power-domains = <&k3_pds 106 TI_SCI_PD_EXCLUSIVE>;
887ef62cebSEmmanuel Vadot		clocks = <&k3_clks 106 2>;
897ef62cebSEmmanuel Vadot		clock-names = "fck";
907ef62cebSEmmanuel Vadot		status = "disabled";
917ef62cebSEmmanuel Vadot	};
92cb7aa33aSEmmanuel Vadot
93cb7aa33aSEmmanuel Vadot	mcu_spi0: spi@4b00000 {
94cb7aa33aSEmmanuel Vadot		compatible = "ti,am654-mcspi", "ti,omap4-mcspi";
95cb7aa33aSEmmanuel Vadot		reg = <0x00 0x04b00000 0x00 0x400>;
96cb7aa33aSEmmanuel Vadot		interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>;
97cb7aa33aSEmmanuel Vadot		#address-cells = <1>;
98cb7aa33aSEmmanuel Vadot		#size-cells = <0>;
99cb7aa33aSEmmanuel Vadot		power-domains = <&k3_pds 147 TI_SCI_PD_EXCLUSIVE>;
100cb7aa33aSEmmanuel Vadot		clocks = <&k3_clks 147 0>;
101cb7aa33aSEmmanuel Vadot		status = "disabled";
102cb7aa33aSEmmanuel Vadot	};
103cb7aa33aSEmmanuel Vadot
104cb7aa33aSEmmanuel Vadot	mcu_spi1: spi@4b10000 {
105cb7aa33aSEmmanuel Vadot		compatible = "ti,am654-mcspi","ti,omap4-mcspi";
106cb7aa33aSEmmanuel Vadot		reg = <0x00 0x04b10000 0x00 0x400>;
107cb7aa33aSEmmanuel Vadot		interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>;
108cb7aa33aSEmmanuel Vadot		#address-cells = <1>;
109cb7aa33aSEmmanuel Vadot		#size-cells = <0>;
110cb7aa33aSEmmanuel Vadot		power-domains = <&k3_pds 148 TI_SCI_PD_EXCLUSIVE>;
111cb7aa33aSEmmanuel Vadot		clocks = <&k3_clks 148 0>;
112cb7aa33aSEmmanuel Vadot		status = "disabled";
113cb7aa33aSEmmanuel Vadot	};
114cb7aa33aSEmmanuel Vadot
115cb7aa33aSEmmanuel Vadot	mcu_gpio_intr: interrupt-controller@4210000 {
116cb7aa33aSEmmanuel Vadot		compatible = "ti,sci-intr";
117cb7aa33aSEmmanuel Vadot		reg = <0x00 0x04210000 0x00 0x200>;
118cb7aa33aSEmmanuel Vadot		ti,intr-trigger-type = <1>;
119cb7aa33aSEmmanuel Vadot		interrupt-controller;
120cb7aa33aSEmmanuel Vadot		interrupt-parent = <&gic500>;
121cb7aa33aSEmmanuel Vadot		#interrupt-cells = <1>;
122cb7aa33aSEmmanuel Vadot		ti,sci = <&dmsc>;
123cb7aa33aSEmmanuel Vadot		ti,sci-dev-id = <5>;
124cb7aa33aSEmmanuel Vadot		ti,interrupt-ranges = <0 104 4>;
125cb7aa33aSEmmanuel Vadot	};
126cb7aa33aSEmmanuel Vadot
127cb7aa33aSEmmanuel Vadot	mcu_gpio0: gpio@4201000 {
128cb7aa33aSEmmanuel Vadot		compatible = "ti,am64-gpio", "ti,keystone-gpio";
129cb7aa33aSEmmanuel Vadot		reg = <0x00 0x04201000 0x00 0x100>;
130cb7aa33aSEmmanuel Vadot		gpio-controller;
131cb7aa33aSEmmanuel Vadot		#gpio-cells = <2>;
132cb7aa33aSEmmanuel Vadot		interrupt-parent = <&mcu_gpio_intr>;
133cb7aa33aSEmmanuel Vadot		interrupts = <30>, <31>;
134cb7aa33aSEmmanuel Vadot		interrupt-controller;
135cb7aa33aSEmmanuel Vadot		#interrupt-cells = <2>;
136cb7aa33aSEmmanuel Vadot		ti,ngpio = <24>;
137cb7aa33aSEmmanuel Vadot		ti,davinci-gpio-unbanked = <0>;
138cb7aa33aSEmmanuel Vadot		power-domains = <&k3_pds 79 TI_SCI_PD_EXCLUSIVE>;
139cb7aa33aSEmmanuel Vadot		clocks = <&k3_clks 79 0>;
140cb7aa33aSEmmanuel Vadot		clock-names = "gpio";
141cb7aa33aSEmmanuel Vadot		status = "disabled";
142cb7aa33aSEmmanuel Vadot	};
143f126890aSEmmanuel Vadot
144f126890aSEmmanuel Vadot	mcu_rti0: watchdog@4880000 {
145f126890aSEmmanuel Vadot		compatible = "ti,j7-rti-wdt";
146f126890aSEmmanuel Vadot		reg = <0x00 0x04880000 0x00 0x100>;
147f126890aSEmmanuel Vadot		clocks = <&k3_clks 131 0>;
148f126890aSEmmanuel Vadot		power-domains = <&k3_pds 131 TI_SCI_PD_EXCLUSIVE>;
149f126890aSEmmanuel Vadot		assigned-clocks = <&k3_clks 131 0>;
150f126890aSEmmanuel Vadot		assigned-clock-parents = <&k3_clks 131 2>;
151f126890aSEmmanuel Vadot		/* Tightly coupled to M4F */
152f126890aSEmmanuel Vadot		status = "reserved";
153f126890aSEmmanuel Vadot	};
154aa1a8ff2SEmmanuel Vadot
155aa1a8ff2SEmmanuel Vadot	mcu_mcan0: can@4e08000 {
156aa1a8ff2SEmmanuel Vadot		compatible = "bosch,m_can";
157aa1a8ff2SEmmanuel Vadot		reg = <0x00 0x4e08000 0x00 0x200>,
158aa1a8ff2SEmmanuel Vadot		      <0x00 0x4e00000 0x00 0x8000>;
159aa1a8ff2SEmmanuel Vadot		reg-names = "m_can", "message_ram";
160aa1a8ff2SEmmanuel Vadot		power-domains = <&k3_pds 188 TI_SCI_PD_EXCLUSIVE>;
161aa1a8ff2SEmmanuel Vadot		clocks = <&k3_clks 188 6>, <&k3_clks 188 1>;
162aa1a8ff2SEmmanuel Vadot		clock-names = "hclk", "cclk";
163aa1a8ff2SEmmanuel Vadot		bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
164aa1a8ff2SEmmanuel Vadot		status = "disabled";
165aa1a8ff2SEmmanuel Vadot	};
166aa1a8ff2SEmmanuel Vadot
167aa1a8ff2SEmmanuel Vadot	mcu_mcan1: can@4e18000 {
168aa1a8ff2SEmmanuel Vadot		compatible = "bosch,m_can";
169aa1a8ff2SEmmanuel Vadot		reg = <0x00 0x4e18000 0x00 0x200>,
170aa1a8ff2SEmmanuel Vadot		      <0x00 0x4e10000 0x00 0x8000>;
171aa1a8ff2SEmmanuel Vadot		reg-names = "m_can", "message_ram";
172aa1a8ff2SEmmanuel Vadot		power-domains = <&k3_pds 189 TI_SCI_PD_EXCLUSIVE>;
173aa1a8ff2SEmmanuel Vadot		clocks = <&k3_clks 189 6>, <&k3_clks 189 1>;
174aa1a8ff2SEmmanuel Vadot		clock-names = "hclk", "cclk";
175aa1a8ff2SEmmanuel Vadot		bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
176aa1a8ff2SEmmanuel Vadot		status = "disabled";
177aa1a8ff2SEmmanuel Vadot	};
1787ef62cebSEmmanuel Vadot};
179