xref: /freebsd/sys/contrib/device-tree/src/arm64/ti/k3-am62p-mcu.dtsi (revision 01950c46b8155250f64374fb72fc11faa44bf099)
1*01950c46SEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0-only OR MIT
2aa1a8ff2SEmmanuel Vadot/*
3aa1a8ff2SEmmanuel Vadot * Device Tree file for the AM62P MCU domain peripherals
4*01950c46SEmmanuel Vadot * Copyright (C) 2023-2024 Texas Instruments Incorporated - https://www.ti.com/
5aa1a8ff2SEmmanuel Vadot */
6aa1a8ff2SEmmanuel Vadot
7aa1a8ff2SEmmanuel Vadot&cbass_mcu {
8aa1a8ff2SEmmanuel Vadot	mcu_pmx0: pinctrl@4084000 {
9aa1a8ff2SEmmanuel Vadot		compatible = "pinctrl-single";
10aa1a8ff2SEmmanuel Vadot		reg = <0x00 0x04084000 0x00 0x88>;
11aa1a8ff2SEmmanuel Vadot		#pinctrl-cells = <1>;
12aa1a8ff2SEmmanuel Vadot		pinctrl-single,register-width = <32>;
13aa1a8ff2SEmmanuel Vadot		pinctrl-single,function-mask = <0xffffffff>;
1484943d6fSEmmanuel Vadot		bootph-all;
1584943d6fSEmmanuel Vadot	};
1684943d6fSEmmanuel Vadot
1784943d6fSEmmanuel Vadot	mcu_esm: esm@4100000 {
1884943d6fSEmmanuel Vadot		compatible = "ti,j721e-esm";
1984943d6fSEmmanuel Vadot		reg = <0x00 0x4100000 0x00 0x1000>;
2084943d6fSEmmanuel Vadot		ti,esm-pins = <0>, <1>, <2>, <85>;
2184943d6fSEmmanuel Vadot		status = "reserved";
2284943d6fSEmmanuel Vadot		bootph-pre-ram;
2384943d6fSEmmanuel Vadot	};
2484943d6fSEmmanuel Vadot
2584943d6fSEmmanuel Vadot	/*
2684943d6fSEmmanuel Vadot	 * The MCU domain timer interrupts are routed only to the ESM module,
2784943d6fSEmmanuel Vadot	 * and not currently available for Linux. The MCU domain timers are
2884943d6fSEmmanuel Vadot	 * of limited use without interrupts, and likely reserved by the ESM.
2984943d6fSEmmanuel Vadot	 */
3084943d6fSEmmanuel Vadot	mcu_timer0: timer@4800000 {
3184943d6fSEmmanuel Vadot		compatible = "ti,am654-timer";
3284943d6fSEmmanuel Vadot		reg = <0x00 0x4800000 0x00 0x400>;
3384943d6fSEmmanuel Vadot		clocks = <&k3_clks 35 2>;
3484943d6fSEmmanuel Vadot		clock-names = "fck";
3584943d6fSEmmanuel Vadot		power-domains = <&k3_pds 35 TI_SCI_PD_EXCLUSIVE>;
3684943d6fSEmmanuel Vadot		ti,timer-pwm;
3784943d6fSEmmanuel Vadot		status = "reserved";
3884943d6fSEmmanuel Vadot	};
3984943d6fSEmmanuel Vadot
4084943d6fSEmmanuel Vadot	mcu_timer1: timer@4810000 {
4184943d6fSEmmanuel Vadot		compatible = "ti,am654-timer";
4284943d6fSEmmanuel Vadot		reg = <0x00 0x4810000 0x00 0x400>;
4384943d6fSEmmanuel Vadot		clocks = <&k3_clks 48 2>;
4484943d6fSEmmanuel Vadot		clock-names = "fck";
4584943d6fSEmmanuel Vadot		power-domains = <&k3_pds 48 TI_SCI_PD_EXCLUSIVE>;
4684943d6fSEmmanuel Vadot		ti,timer-pwm;
4784943d6fSEmmanuel Vadot		status = "reserved";
4884943d6fSEmmanuel Vadot	};
4984943d6fSEmmanuel Vadot
5084943d6fSEmmanuel Vadot	mcu_timer2: timer@4820000 {
5184943d6fSEmmanuel Vadot		compatible = "ti,am654-timer";
5284943d6fSEmmanuel Vadot		reg = <0x00 0x4820000 0x00 0x400>;
5384943d6fSEmmanuel Vadot		clocks = <&k3_clks 49 2>;
5484943d6fSEmmanuel Vadot		clock-names = "fck";
5584943d6fSEmmanuel Vadot		power-domains = <&k3_pds 49 TI_SCI_PD_EXCLUSIVE>;
5684943d6fSEmmanuel Vadot		ti,timer-pwm;
5784943d6fSEmmanuel Vadot		status = "reserved";
5884943d6fSEmmanuel Vadot	};
5984943d6fSEmmanuel Vadot
6084943d6fSEmmanuel Vadot	mcu_timer3: timer@4830000 {
6184943d6fSEmmanuel Vadot		compatible = "ti,am654-timer";
6284943d6fSEmmanuel Vadot		reg = <0x00 0x4830000 0x00 0x400>;
6384943d6fSEmmanuel Vadot		clocks = <&k3_clks 50 2>;
6484943d6fSEmmanuel Vadot		clock-names = "fck";
6584943d6fSEmmanuel Vadot		power-domains = <&k3_pds 50 TI_SCI_PD_EXCLUSIVE>;
6684943d6fSEmmanuel Vadot		ti,timer-pwm;
6784943d6fSEmmanuel Vadot		status = "reserved";
6884943d6fSEmmanuel Vadot	};
6984943d6fSEmmanuel Vadot
7084943d6fSEmmanuel Vadot	mcu_uart0: serial@4a00000 {
7184943d6fSEmmanuel Vadot		compatible = "ti,am64-uart", "ti,am654-uart";
7284943d6fSEmmanuel Vadot		reg = <0x00 0x04a00000 0x00 0x100>;
7384943d6fSEmmanuel Vadot		interrupts = <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>;
7484943d6fSEmmanuel Vadot		power-domains = <&k3_pds 149 TI_SCI_PD_EXCLUSIVE>;
7584943d6fSEmmanuel Vadot		clocks = <&k3_clks 149 0>;
7684943d6fSEmmanuel Vadot		clock-names = "fclk";
7784943d6fSEmmanuel Vadot		status = "disabled";
7884943d6fSEmmanuel Vadot	};
7984943d6fSEmmanuel Vadot
8084943d6fSEmmanuel Vadot	mcu_i2c0: i2c@4900000 {
8184943d6fSEmmanuel Vadot		compatible = "ti,am64-i2c", "ti,omap4-i2c";
8284943d6fSEmmanuel Vadot		reg = <0x00 0x04900000 0x00 0x100>;
8384943d6fSEmmanuel Vadot		interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
8484943d6fSEmmanuel Vadot		#address-cells = <1>;
8584943d6fSEmmanuel Vadot		#size-cells = <0>;
8684943d6fSEmmanuel Vadot		power-domains = <&k3_pds 106 TI_SCI_PD_EXCLUSIVE>;
8784943d6fSEmmanuel Vadot		clocks = <&k3_clks 106 2>;
8884943d6fSEmmanuel Vadot		clock-names = "fck";
8984943d6fSEmmanuel Vadot		status = "disabled";
9084943d6fSEmmanuel Vadot	};
9184943d6fSEmmanuel Vadot
9284943d6fSEmmanuel Vadot	mcu_spi0: spi@4b00000 {
9384943d6fSEmmanuel Vadot		compatible = "ti,am654-mcspi", "ti,omap4-mcspi";
9484943d6fSEmmanuel Vadot		reg = <0x00 0x04b00000 0x00 0x400>;
9584943d6fSEmmanuel Vadot		interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>;
9684943d6fSEmmanuel Vadot		#address-cells = <1>;
9784943d6fSEmmanuel Vadot		#size-cells = <0>;
9884943d6fSEmmanuel Vadot		power-domains = <&k3_pds 147 TI_SCI_PD_EXCLUSIVE>;
9984943d6fSEmmanuel Vadot		clocks = <&k3_clks 147 0>;
10084943d6fSEmmanuel Vadot		status = "disabled";
10184943d6fSEmmanuel Vadot	};
10284943d6fSEmmanuel Vadot
10384943d6fSEmmanuel Vadot	mcu_spi1: spi@4b10000 {
10484943d6fSEmmanuel Vadot		compatible = "ti,am654-mcspi","ti,omap4-mcspi";
10584943d6fSEmmanuel Vadot		reg = <0x00 0x04b10000 0x00 0x400>;
10684943d6fSEmmanuel Vadot		interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>;
10784943d6fSEmmanuel Vadot		#address-cells = <1>;
10884943d6fSEmmanuel Vadot		#size-cells = <0>;
10984943d6fSEmmanuel Vadot		power-domains = <&k3_pds 148 TI_SCI_PD_EXCLUSIVE>;
11084943d6fSEmmanuel Vadot		clocks = <&k3_clks 148 0>;
11184943d6fSEmmanuel Vadot		status = "disabled";
11284943d6fSEmmanuel Vadot	};
11384943d6fSEmmanuel Vadot
11484943d6fSEmmanuel Vadot	mcu_gpio_intr: interrupt-controller@4210000 {
11584943d6fSEmmanuel Vadot		compatible = "ti,sci-intr";
11684943d6fSEmmanuel Vadot		reg = <0x00 0x04210000 0x00 0x200>;
11784943d6fSEmmanuel Vadot		ti,intr-trigger-type = <1>;
11884943d6fSEmmanuel Vadot		interrupt-controller;
11984943d6fSEmmanuel Vadot		interrupt-parent = <&gic500>;
12084943d6fSEmmanuel Vadot		#interrupt-cells = <1>;
12184943d6fSEmmanuel Vadot		ti,sci = <&dmsc>;
12284943d6fSEmmanuel Vadot		ti,sci-dev-id = <5>;
12384943d6fSEmmanuel Vadot		ti,interrupt-ranges = <0 104 4>;
12484943d6fSEmmanuel Vadot	};
12584943d6fSEmmanuel Vadot
12684943d6fSEmmanuel Vadot	mcu_gpio0: gpio@4201000 {
12784943d6fSEmmanuel Vadot		compatible = "ti,am64-gpio", "ti,keystone-gpio";
12884943d6fSEmmanuel Vadot		reg = <0x00 0x4201000 0x00 0x100>;
12984943d6fSEmmanuel Vadot		gpio-controller;
13084943d6fSEmmanuel Vadot		#gpio-cells = <2>;
13184943d6fSEmmanuel Vadot		interrupt-parent = <&mcu_gpio_intr>;
13284943d6fSEmmanuel Vadot		interrupts = <30>, <31>;
13384943d6fSEmmanuel Vadot		interrupt-controller;
13484943d6fSEmmanuel Vadot		#interrupt-cells = <2>;
13584943d6fSEmmanuel Vadot		ti,ngpio = <24>;
13684943d6fSEmmanuel Vadot		ti,davinci-gpio-unbanked = <0>;
13784943d6fSEmmanuel Vadot		power-domains = <&k3_pds 79 TI_SCI_PD_EXCLUSIVE>;
13884943d6fSEmmanuel Vadot		clocks = <&k3_clks 79 0>;
13984943d6fSEmmanuel Vadot		clock-names = "gpio";
14084943d6fSEmmanuel Vadot	};
14184943d6fSEmmanuel Vadot
14284943d6fSEmmanuel Vadot	mcu_rti0: watchdog@4880000 {
14384943d6fSEmmanuel Vadot		compatible = "ti,j7-rti-wdt";
14484943d6fSEmmanuel Vadot		reg = <0x00 0x04880000 0x00 0x100>;
14584943d6fSEmmanuel Vadot		clocks = <&k3_clks 131 0>;
14684943d6fSEmmanuel Vadot		power-domains = <&k3_pds 131 TI_SCI_PD_EXCLUSIVE>;
14784943d6fSEmmanuel Vadot		assigned-clocks = <&k3_clks 131 0>;
14884943d6fSEmmanuel Vadot		assigned-clock-parents = <&k3_clks 131 2>;
14984943d6fSEmmanuel Vadot		/* Tightly coupled to M4F */
15084943d6fSEmmanuel Vadot		status = "reserved";
15184943d6fSEmmanuel Vadot	};
15284943d6fSEmmanuel Vadot
15384943d6fSEmmanuel Vadot	mcu_mcan0: can@4e08000 {
15484943d6fSEmmanuel Vadot		compatible = "bosch,m_can";
15584943d6fSEmmanuel Vadot		reg = <0x00 0x4e08000 0x00 0x200>,
15684943d6fSEmmanuel Vadot		      <0x00 0x4e00000 0x00 0x8000>;
15784943d6fSEmmanuel Vadot		reg-names = "m_can", "message_ram";
15884943d6fSEmmanuel Vadot		power-domains = <&k3_pds 188 TI_SCI_PD_EXCLUSIVE>;
15984943d6fSEmmanuel Vadot		clocks = <&k3_clks 188 6>, <&k3_clks 188 1>;
16084943d6fSEmmanuel Vadot		clock-names = "hclk", "cclk";
16184943d6fSEmmanuel Vadot		bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
16284943d6fSEmmanuel Vadot		interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>,
16384943d6fSEmmanuel Vadot			     <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
16484943d6fSEmmanuel Vadot		interrupt-names = "int0", "int1";
16584943d6fSEmmanuel Vadot		status = "disabled";
16684943d6fSEmmanuel Vadot	};
16784943d6fSEmmanuel Vadot
16884943d6fSEmmanuel Vadot	mcu_mcan1: can@4e18000 {
16984943d6fSEmmanuel Vadot		compatible = "bosch,m_can";
17084943d6fSEmmanuel Vadot		reg = <0x00 0x4e18000 0x00 0x200>,
17184943d6fSEmmanuel Vadot		      <0x00 0x4e10000 0x00 0x8000>;
17284943d6fSEmmanuel Vadot		reg-names = "m_can", "message_ram";
17384943d6fSEmmanuel Vadot		power-domains = <&k3_pds 189 TI_SCI_PD_EXCLUSIVE>;
17484943d6fSEmmanuel Vadot		clocks = <&k3_clks 189 6>, <&k3_clks 189 1>;
17584943d6fSEmmanuel Vadot		clock-names = "hclk", "cclk";
17684943d6fSEmmanuel Vadot		bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
17784943d6fSEmmanuel Vadot		interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>,
17884943d6fSEmmanuel Vadot			     <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
17984943d6fSEmmanuel Vadot		interrupt-names = "int0", "int1";
18084943d6fSEmmanuel Vadot		status = "disabled";
18184943d6fSEmmanuel Vadot	};
18284943d6fSEmmanuel Vadot
18384943d6fSEmmanuel Vadot	mcu_r5fss0: r5fss@79000000 {
18484943d6fSEmmanuel Vadot		compatible = "ti,am62-r5fss";
18584943d6fSEmmanuel Vadot		#address-cells = <1>;
18684943d6fSEmmanuel Vadot		#size-cells = <1>;
18784943d6fSEmmanuel Vadot		ranges = <0x79000000 0x00 0x79000000 0x8000>,
18884943d6fSEmmanuel Vadot			 <0x79020000 0x00 0x79020000 0x8000>;
18984943d6fSEmmanuel Vadot		power-domains = <&k3_pds 7 TI_SCI_PD_EXCLUSIVE>;
190*01950c46SEmmanuel Vadot		status = "disabled";
191*01950c46SEmmanuel Vadot
19284943d6fSEmmanuel Vadot		mcu_r5fss0_core0: r5f@79000000 {
19384943d6fSEmmanuel Vadot			compatible = "ti,am62-r5f";
19484943d6fSEmmanuel Vadot			reg = <0x79000000 0x00008000>,
19584943d6fSEmmanuel Vadot			      <0x79020000 0x00008000>;
19684943d6fSEmmanuel Vadot			reg-names = "atcm", "btcm";
19784943d6fSEmmanuel Vadot			ti,sci = <&dmsc>;
19884943d6fSEmmanuel Vadot			ti,sci-dev-id = <9>;
19984943d6fSEmmanuel Vadot			ti,sci-proc-ids = <0x03 0xff>;
20084943d6fSEmmanuel Vadot			resets = <&k3_reset 9 1>;
20184943d6fSEmmanuel Vadot			firmware-name = "am62p-mcu-r5f0_0-fw";
20284943d6fSEmmanuel Vadot			ti,atcm-enable = <0>;
20384943d6fSEmmanuel Vadot			ti,btcm-enable = <1>;
20484943d6fSEmmanuel Vadot			ti,loczrama = <0>;
20584943d6fSEmmanuel Vadot		};
206aa1a8ff2SEmmanuel Vadot	};
207aa1a8ff2SEmmanuel Vadot};
208