blob: 40c25d5dbb68a1b4f321f0de708f9237ffb79022 [file] [log] [blame]
Wadim Egorov36e26d12024-02-28 09:42:16 +01001// SPDX-License-Identifier: GPL-2.0
2/*
3 * Copyright (C) 2021 PHYTEC America, LLC - https://www.phytec.com
4 * Author: Matt McKee <mmckee@phytec.com>
5 *
6 * Copyright (C) 2022 - 2024 PHYTEC Messtechnik GmbH
7 * Author: Wadim Egorov <w.egorov@phytec.de>
8 */
9
10/dts-v1/;
11
12#include "k3-am642-phyboard-electra-rdk.dts"
13#include "k3-am64-phycore-som-ddr4-2gb.dtsi"
14#include "k3-am64-ddr.dtsi"
15
16#include "k3-am642-phyboard-electra-rdk-u-boot.dtsi"
17
18/ {
19 aliases {
20 ethernet0 = &cpsw3g;
21 remoteproc0 = &sysctrler;
22 remoteproc1 = &a53_0;
23 };
24
25 a53_0: a53@0 {
26 compatible = "ti,am654-rproc";
27 reg = <0x00 0x00a90000 0x00 0x10>;
28 power-domains = <&k3_pds 61 TI_SCI_PD_EXCLUSIVE>,
29 <&k3_pds 135 TI_SCI_PD_EXCLUSIVE>,
30 <&k3_pds 137 TI_SCI_PD_EXCLUSIVE>;
31 resets = <&k3_reset 135 0>;
32 clocks = <&k3_clks 61 0>;
33 assigned-clocks = <&k3_clks 61 0>, <&k3_clks 135 0>;
34 assigned-clock-parents = <&k3_clks 61 2>;
35 assigned-clock-rates = <200000000>, <1000000000>;
36 ti,sci = <&dmsc>;
37 ti,sci-proc-id = <32>;
38 ti,sci-host-id = <10>;
39 bootph-pre-ram;
40 };
41
42 clk_200mhz: dummy-clock-200mhz {
43 compatible = "fixed-clock";
44 #clock-cells = <0>;
45 clock-frequency = <200000000>;
46 bootph-pre-ram;
47 };
48
49 vtt_supply: vtt-supply {
50 compatible = "regulator-fixed";
51 regulator-name = "vtt";
52 pinctrl-names = "default";
53 pinctrl-0 = <&ddr_vtt_pins_default>;
54 regulator-min-microvolt = <3300000>;
55 regulator-max-microvolt = <3300000>;
56 gpios = <&main_gpio0 14 GPIO_ACTIVE_HIGH>;
57 enable-active-high;
58 regulator-always-on;
59 regulator-boot-on;
60 bootph-pre-ram;
61 };
62};
63
64&cbass_main {
65 sysctrler: sysctrler {
66 compatible = "ti,am654-system-controller";
67 mboxes= <&secure_proxy_main 1>, <&secure_proxy_main 0>;
68 mbox-names = "tx", "rx";
69 bootph-pre-ram;
70 };
71};
72
73&cbass_mcu {
74 bootph-pre-ram;
75};
76
77&dmsc {
78 mboxes= <&secure_proxy_main 0>,
79 <&secure_proxy_main 1>,
80 <&secure_proxy_main 0>;
81 mbox-names = "rx", "tx", "notify";
82 ti,host-id = <35>;
83 ti,secure-host;
84};
85
86&main_esm {
87 bootph-pre-ram;
88};
89
90&main_gpio0 {
91 bootph-pre-ram;
92};
93
94&main_pmx0 {
95 bootph-pre-ram;
96 ddr_vtt_pins_default: ddr-vtt-default-pins {
97 bootph-pre-ram;
98 pinctrl-single,pins = <
99 AM64X_IOPAD(0x0038, PIN_OUTPUT_PULLUP, 7) /* (L18) OSPI0_CSN3.GPIO0_14 */
100 >;
101 };
102};
103
104/* timer init is called as part of rproc_start() while
105 * starting System Firmware, so any clock/power-domain
106 * operations will fail as SYSFW is not yet up and running.
107 * Delete all clock/power-domain properties to avoid
108 * timer init failure.
109 * This is an always on timer at 20MHz.
110 */
111&main_timer0 {
112 /delete-property/ clocks;
113 /delete-property/ assigned-clocks;
114 /delete-property/ assigned-clock-parents;
115 /delete-property/ power-domains;
116};
117
118/* UART is initialized before SYSFW is started
119 * so we can't do any power-domain/clock operations.
120 * Delete clock/power-domain properties to avoid
121 * UART init failure
122 */
123&main_uart0 {
124 /delete-property/ power-domains;
125 /delete-property/ clocks;
126 /delete-property/ clock-names;
127};
128
129&mcu_esm {
130 bootph-pre-ram;
131};
132
133&memorycontroller {
134 vtt-supply = <&vtt_supply>;
135};
136
137&ospi0 {
138 reg = <0x00 0x0fc40000 0x00 0x100>,
139 <0x00 0x60000000 0x00 0x08000000>;
140};