// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (C) 2019 Texas Instruments Incorporated - https://www.ti.com/
 */

/dts-v1/;

#include "k3-j721e-common-proc-board.dts"
#include "k3-j721e-ddr-evm-lp4-4266.dtsi"
#include "k3-j721e-ddr.dtsi"
#include "k3-j721e-common-proc-board-u-boot.dtsi"

/ {
	chosen {
		tick-timer = &mcu_timer0;
	};

	aliases {
		remoteproc0 = &sysctrler;
		remoteproc1 = &a72_0;
	};

	a72_0: a72@0 {
		compatible = "ti,am654-rproc";
		reg = <0x0 0x00a90000 0x0 0x10>;
		power-domains = <&k3_pds 61 TI_SCI_PD_EXCLUSIVE>,
				<&k3_pds 202 TI_SCI_PD_EXCLUSIVE>,
				<&k3_pds 4 TI_SCI_PD_EXCLUSIVE>;
		resets = <&k3_reset 202 0>;
		clocks = <&k3_clks 61 1>;
		assigned-clocks = <&k3_clks 202 2>, <&k3_clks 61 1>;
		assigned-clock-rates = <2000000000>, <200000000>;
		ti,sci = <&dmsc>;
		ti,sci-proc-id = <32>;
		ti,sci-host-id = <10>;
		bootph-pre-ram;
	};

	dm_tifs: dm-tifs {
		compatible = "ti,j721e-dm-sci";
		ti,host-id = <3>;
		ti,secure-host;
		mbox-names = "rx", "tx";
		mboxes= <&secure_proxy_mcu 21>,
			<&secure_proxy_mcu 23>;
		bootph-pre-ram;
	};
};

&mcu_timer0 {
	status = "okay";
	bootph-pre-ram;
};

&dmsc {
	mboxes= <&secure_proxy_mcu 8>, <&secure_proxy_mcu 6>, <&secure_proxy_mcu 5>;
	mbox-names = "tx", "rx", "notify";
	ti,host-id = <4>;
	ti,secure-host;
};

&secure_proxy_mcu {
	bootph-pre-ram;
	status = "okay";
};

&cbass_mcu_wakeup {
	sysctrler: sysctrler {
		bootph-pre-ram;
		compatible = "ti,am654-system-controller";
		mboxes= <&secure_proxy_mcu 4>, <&secure_proxy_mcu 5>;
		mbox-names = "tx", "rx";
	};
};

&mcu_ringacc {
	ti,sci = <&dm_tifs>;
};

&mcu_udmap {
	ti,sci = <&dm_tifs>;
};

&wkup_i2c0 {
	bootph-pre-ram;
	tps659413a: tps659413a@48 {
		reg = <0x48>;
		compatible = "ti,tps659413";
		bootph-pre-ram;
		pinctrl-names = "default";
		pinctrl-0 = <&wkup_i2c0_pins_default>;
		clock-frequency = <400000>;

		regulators: regulators {
			bootph-pre-ram;
			buck12_reg: buck12 {
				/*VDD_CPU*/
				regulator-name = "buck12";
				regulator-min-microvolt = <600000>;
				regulator-max-microvolt = <900000>;
				regulator-always-on;
				regulator-boot-on;
				bootph-pre-ram;
			};
		};

		esm: esm {
			compatible = "ti,tps659413-esm";
			bootph-pre-ram;
		};
	};
};

&wkup_uart0_pins_default {
	bootph-pre-ram;
};

&mcu_uart0_pins_default {
	bootph-pre-ram;
};

&wkup_vtm0 {
	vdd-supply-2 = <&buck12_reg>;
	bootph-pre-ram;
};

&ospi0 {
	/* Address change for data region (32-bit) */
	reg = <0x0 0x47040000 0x0 0x100>,
	      <0x0 0x50000000 0x0 0x8000000>;
};

&ospi1 {
	/* Address change for data region (32-bit) */
	reg = <0x0 0x47050000 0x0 0x100>,
	      <0x0 0x58000000 0x0 0x8000000>;
};
