162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Device Tree Source for AM625 SoC Family MCU Domain peripherals
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Copyright (C) 2020-2022 Texas Instruments Incorporated - https://www.ti.com/
662306a36Sopenharmony_ci */
762306a36Sopenharmony_ci
862306a36Sopenharmony_ci&cbass_mcu {
962306a36Sopenharmony_ci	mcu_pmx0: pinctrl@4084000 {
1062306a36Sopenharmony_ci		compatible = "pinctrl-single";
1162306a36Sopenharmony_ci		reg = <0x00 0x04084000 0x00 0x88>;
1262306a36Sopenharmony_ci		#pinctrl-cells = <1>;
1362306a36Sopenharmony_ci		pinctrl-single,register-width = <32>;
1462306a36Sopenharmony_ci		pinctrl-single,function-mask = <0xffffffff>;
1562306a36Sopenharmony_ci		status = "disabled";
1662306a36Sopenharmony_ci	};
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci	/*
1962306a36Sopenharmony_ci	 * The MCU domain timer interrupts are routed only to the ESM module,
2062306a36Sopenharmony_ci	 * and not currently available for Linux. The MCU domain timers are
2162306a36Sopenharmony_ci	 * of limited use without interrupts, and likely reserved by the ESM.
2262306a36Sopenharmony_ci	 */
2362306a36Sopenharmony_ci	mcu_timer0: timer@4800000 {
2462306a36Sopenharmony_ci		compatible = "ti,am654-timer";
2562306a36Sopenharmony_ci		reg = <0x00 0x4800000 0x00 0x400>;
2662306a36Sopenharmony_ci		clocks = <&k3_clks 35 2>;
2762306a36Sopenharmony_ci		clock-names = "fck";
2862306a36Sopenharmony_ci		power-domains = <&k3_pds 35 TI_SCI_PD_EXCLUSIVE>;
2962306a36Sopenharmony_ci		ti,timer-pwm;
3062306a36Sopenharmony_ci		status = "reserved";
3162306a36Sopenharmony_ci	};
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci	mcu_timer1: timer@4810000 {
3462306a36Sopenharmony_ci		compatible = "ti,am654-timer";
3562306a36Sopenharmony_ci		reg = <0x00 0x4810000 0x00 0x400>;
3662306a36Sopenharmony_ci		clocks = <&k3_clks 48 2>;
3762306a36Sopenharmony_ci		clock-names = "fck";
3862306a36Sopenharmony_ci		power-domains = <&k3_pds 48 TI_SCI_PD_EXCLUSIVE>;
3962306a36Sopenharmony_ci		ti,timer-pwm;
4062306a36Sopenharmony_ci		status = "reserved";
4162306a36Sopenharmony_ci	};
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ci	mcu_timer2: timer@4820000 {
4462306a36Sopenharmony_ci		compatible = "ti,am654-timer";
4562306a36Sopenharmony_ci		reg = <0x00 0x4820000 0x00 0x400>;
4662306a36Sopenharmony_ci		clocks = <&k3_clks 49 2>;
4762306a36Sopenharmony_ci		clock-names = "fck";
4862306a36Sopenharmony_ci		power-domains = <&k3_pds 49 TI_SCI_PD_EXCLUSIVE>;
4962306a36Sopenharmony_ci		ti,timer-pwm;
5062306a36Sopenharmony_ci		status = "reserved";
5162306a36Sopenharmony_ci	};
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci	mcu_timer3: timer@4830000 {
5462306a36Sopenharmony_ci		compatible = "ti,am654-timer";
5562306a36Sopenharmony_ci		reg = <0x00 0x4830000 0x00 0x400>;
5662306a36Sopenharmony_ci		clocks = <&k3_clks 50 2>;
5762306a36Sopenharmony_ci		clock-names = "fck";
5862306a36Sopenharmony_ci		power-domains = <&k3_pds 50 TI_SCI_PD_EXCLUSIVE>;
5962306a36Sopenharmony_ci		ti,timer-pwm;
6062306a36Sopenharmony_ci		status = "reserved";
6162306a36Sopenharmony_ci	};
6262306a36Sopenharmony_ci
6362306a36Sopenharmony_ci	mcu_uart0: serial@4a00000 {
6462306a36Sopenharmony_ci		compatible = "ti,am64-uart", "ti,am654-uart";
6562306a36Sopenharmony_ci		reg = <0x00 0x04a00000 0x00 0x100>;
6662306a36Sopenharmony_ci		interrupts = <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>;
6762306a36Sopenharmony_ci		power-domains = <&k3_pds 149 TI_SCI_PD_EXCLUSIVE>;
6862306a36Sopenharmony_ci		clocks = <&k3_clks 149 0>;
6962306a36Sopenharmony_ci		clock-names = "fclk";
7062306a36Sopenharmony_ci		status = "disabled";
7162306a36Sopenharmony_ci	};
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_ci	mcu_i2c0: i2c@4900000 {
7462306a36Sopenharmony_ci		compatible = "ti,am64-i2c", "ti,omap4-i2c";
7562306a36Sopenharmony_ci		reg = <0x00 0x04900000 0x00 0x100>;
7662306a36Sopenharmony_ci		interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
7762306a36Sopenharmony_ci		#address-cells = <1>;
7862306a36Sopenharmony_ci		#size-cells = <0>;
7962306a36Sopenharmony_ci		power-domains = <&k3_pds 106 TI_SCI_PD_EXCLUSIVE>;
8062306a36Sopenharmony_ci		clocks = <&k3_clks 106 2>;
8162306a36Sopenharmony_ci		clock-names = "fck";
8262306a36Sopenharmony_ci		status = "disabled";
8362306a36Sopenharmony_ci	};
8462306a36Sopenharmony_ci
8562306a36Sopenharmony_ci	mcu_spi0: spi@4b00000 {
8662306a36Sopenharmony_ci		compatible = "ti,am654-mcspi", "ti,omap4-mcspi";
8762306a36Sopenharmony_ci		reg = <0x00 0x04b00000 0x00 0x400>;
8862306a36Sopenharmony_ci		interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>;
8962306a36Sopenharmony_ci		#address-cells = <1>;
9062306a36Sopenharmony_ci		#size-cells = <0>;
9162306a36Sopenharmony_ci		power-domains = <&k3_pds 147 TI_SCI_PD_EXCLUSIVE>;
9262306a36Sopenharmony_ci		clocks = <&k3_clks 147 0>;
9362306a36Sopenharmony_ci		status = "disabled";
9462306a36Sopenharmony_ci	};
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_ci	mcu_spi1: spi@4b10000 {
9762306a36Sopenharmony_ci		compatible = "ti,am654-mcspi","ti,omap4-mcspi";
9862306a36Sopenharmony_ci		reg = <0x00 0x04b10000 0x00 0x400>;
9962306a36Sopenharmony_ci		interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>;
10062306a36Sopenharmony_ci		#address-cells = <1>;
10162306a36Sopenharmony_ci		#size-cells = <0>;
10262306a36Sopenharmony_ci		power-domains = <&k3_pds 148 TI_SCI_PD_EXCLUSIVE>;
10362306a36Sopenharmony_ci		clocks = <&k3_clks 148 0>;
10462306a36Sopenharmony_ci		status = "disabled";
10562306a36Sopenharmony_ci	};
10662306a36Sopenharmony_ci
10762306a36Sopenharmony_ci	mcu_gpio_intr: interrupt-controller@4210000 {
10862306a36Sopenharmony_ci		compatible = "ti,sci-intr";
10962306a36Sopenharmony_ci		reg = <0x00 0x04210000 0x00 0x200>;
11062306a36Sopenharmony_ci		ti,intr-trigger-type = <1>;
11162306a36Sopenharmony_ci		interrupt-controller;
11262306a36Sopenharmony_ci		interrupt-parent = <&gic500>;
11362306a36Sopenharmony_ci		#interrupt-cells = <1>;
11462306a36Sopenharmony_ci		ti,sci = <&dmsc>;
11562306a36Sopenharmony_ci		ti,sci-dev-id = <5>;
11662306a36Sopenharmony_ci		ti,interrupt-ranges = <0 104 4>;
11762306a36Sopenharmony_ci	};
11862306a36Sopenharmony_ci
11962306a36Sopenharmony_ci	mcu_gpio0: gpio@4201000 {
12062306a36Sopenharmony_ci		compatible = "ti,am64-gpio", "ti,keystone-gpio";
12162306a36Sopenharmony_ci		reg = <0x00 0x04201000 0x00 0x100>;
12262306a36Sopenharmony_ci		gpio-controller;
12362306a36Sopenharmony_ci		#gpio-cells = <2>;
12462306a36Sopenharmony_ci		interrupt-parent = <&mcu_gpio_intr>;
12562306a36Sopenharmony_ci		interrupts = <30>, <31>;
12662306a36Sopenharmony_ci		interrupt-controller;
12762306a36Sopenharmony_ci		#interrupt-cells = <2>;
12862306a36Sopenharmony_ci		ti,ngpio = <24>;
12962306a36Sopenharmony_ci		ti,davinci-gpio-unbanked = <0>;
13062306a36Sopenharmony_ci		power-domains = <&k3_pds 79 TI_SCI_PD_EXCLUSIVE>;
13162306a36Sopenharmony_ci		clocks = <&k3_clks 79 0>;
13262306a36Sopenharmony_ci		clock-names = "gpio";
13362306a36Sopenharmony_ci		status = "disabled";
13462306a36Sopenharmony_ci	};
13562306a36Sopenharmony_ci
13662306a36Sopenharmony_ci	mcu_rti0: watchdog@4880000 {
13762306a36Sopenharmony_ci		compatible = "ti,j7-rti-wdt";
13862306a36Sopenharmony_ci		reg = <0x00 0x04880000 0x00 0x100>;
13962306a36Sopenharmony_ci		clocks = <&k3_clks 131 0>;
14062306a36Sopenharmony_ci		power-domains = <&k3_pds 131 TI_SCI_PD_EXCLUSIVE>;
14162306a36Sopenharmony_ci		assigned-clocks = <&k3_clks 131 0>;
14262306a36Sopenharmony_ci		assigned-clock-parents = <&k3_clks 131 2>;
14362306a36Sopenharmony_ci		/* Tightly coupled to M4F */
14462306a36Sopenharmony_ci		status = "reserved";
14562306a36Sopenharmony_ci	};
14662306a36Sopenharmony_ci
14762306a36Sopenharmony_ci	mcu_mcan0: can@4e08000 {
14862306a36Sopenharmony_ci		compatible = "bosch,m_can";
14962306a36Sopenharmony_ci		reg = <0x00 0x4e08000 0x00 0x200>,
15062306a36Sopenharmony_ci		      <0x00 0x4e00000 0x00 0x8000>;
15162306a36Sopenharmony_ci		reg-names = "m_can", "message_ram";
15262306a36Sopenharmony_ci		power-domains = <&k3_pds 188 TI_SCI_PD_EXCLUSIVE>;
15362306a36Sopenharmony_ci		clocks = <&k3_clks 188 6>, <&k3_clks 188 1>;
15462306a36Sopenharmony_ci		clock-names = "hclk", "cclk";
15562306a36Sopenharmony_ci		bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
15662306a36Sopenharmony_ci		status = "disabled";
15762306a36Sopenharmony_ci	};
15862306a36Sopenharmony_ci
15962306a36Sopenharmony_ci	mcu_mcan1: can@4e18000 {
16062306a36Sopenharmony_ci		compatible = "bosch,m_can";
16162306a36Sopenharmony_ci		reg = <0x00 0x4e18000 0x00 0x200>,
16262306a36Sopenharmony_ci		      <0x00 0x4e10000 0x00 0x8000>;
16362306a36Sopenharmony_ci		reg-names = "m_can", "message_ram";
16462306a36Sopenharmony_ci		power-domains = <&k3_pds 189 TI_SCI_PD_EXCLUSIVE>;
16562306a36Sopenharmony_ci		clocks = <&k3_clks 189 6>, <&k3_clks 189 1>;
16662306a36Sopenharmony_ci		clock-names = "hclk", "cclk";
16762306a36Sopenharmony_ci		bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
16862306a36Sopenharmony_ci		status = "disabled";
16962306a36Sopenharmony_ci	};
17062306a36Sopenharmony_ci};
171