Commit 853f7f5018d9b67b6039a78127c44e2daa467204

Authored by Lokesh Vutla
Committed by Tom Rini
1 parent ea8ad1d9b6

arm64: dts: k3: Add u-boot specific nodes

Add the minimum dt nodes required to boot. These nodes
will get deleted as kernel gets these nodes added in the
main dts files.

Reviewed-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>

Showing 2 changed files with 252 additions and 0 deletions Inline Diff

arch/arm/dts/k3-am654-base-board-u-boot.dtsi
File was created 1 // SPDX-License-Identifier: GPL-2.0
2 /*
3 * Copyright (C) 2018 Texas Instruments Incorporated - http://www.ti.com/
4 */
5
6 #include <dt-bindings/pinctrl/k3-am65.h>
7
8 / {
9 chosen {
10 stdout-path = "serial2:115200n8";
11 };
12
13 aliases {
14 serial2 = &main_uart0;
15 };
16 };
17
18 &cbass_main{
19 u-boot,dm-spl;
20 secure_proxy: secure_proxy@32c00000 {
21 compatible = "ti,am654-secure-proxy";
22 #mbox-cells = <1>;
23 reg-names = "target_data", "rt", "scfg";
24 reg = <0x32c00000 0x100000>,
25 <0x32400000 0x100000>,
26 <0x32800000 0x100000>;
27 interrupt-names = "rx_011";
28 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
29 };
30
31 dmsc: dmsc {
32 compatible = "ti,k2g-sci";
33 ti,host-id = <12>;
34 #address-cells = <1>;
35 #size-cells = <1>;
36 ranges;
37 /*
38 * In case of rare platforms that does not use am6 as
39 * system master, use /delete-property/
40 */
41 ti,system-reboot-controller;
42 mbox-names = "rx", "tx";
43
44 mboxes= <&secure_proxy 11>,
45 <&secure_proxy 13>;
46
47 k3_pds: power-controller {
48 compatible = "ti,sci-pm-domain";
49 #power-domain-cells = <1>;
50 };
51
52 k3_clks: clocks {
53 compatible = "ti,k2g-sci-clk";
54 #clock-cells = <2>;
55 };
56
57 k3_reset: reset-controller {
58 compatible = "ti,sci-reset";
59 #reset-cells = <2>;
60 };
61
62 k3_sysreset: sysreset-controller {
63 compatible = "ti,sci-sysreset";
64 };
65 };
66
67 main_pmx0: pinmux@11c000 {
68 compatible = "pinctrl-single";
69 reg = <0x11c000 0x2e4>;
70 #pinctrl-cells = <1>;
71 pinctrl-single,register-width = <32>;
72 pinctrl-single,function-mask = <0xffffffff>;
73 };
74
75 main_pmx1: pinmux@11c2e8 {
76 compatible = "pinctrl-single";
77 reg = <0x11c2e8 0x24>;
78 #pinctrl-cells = <1>;
79 pinctrl-single,register-width = <32>;
80 pinctrl-single,function-mask = <0xffffffff>;
81 };
82
83 main_uart0: serial@2800000 {
84 compatible = "ti,am654-uart", "ti,omap4-uart", "ns16550a";
85 reg = <0x02800000 0x100>;
86 reg-shift = <2>;
87 reg-io-width = <4>;
88 interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>;
89 clock-frequency = <48000000>;
90 current-speed = <115200>;
91 status = "disabled";
92 u-boot,dm-pre-reloc;
93 };
94
95 sdhci0: sdhci@04F80000 {
96 compatible = "arasan,sdhci-5.1";
97 reg = <0x4F80000 0x1000>,
98 <0x4F90000 0x400>;
99 clocks = <&k3_clks 47 1>;
100 power-domains = <&k3_pds 47>;
101 max-frequency = <25000000>;
102 };
103
104 sdhci1: sdhci@04FA0000 {
105 compatible = "arasan,sdhci-5.1";
106 reg = <0x4FA0000 0x1000>,
107 <0x4FB0000 0x400>;
108 clocks = <&k3_clks 48 1>;
109 power-domains = <&k3_pds 48>;
110 max-frequency = <25000000>;
111 };
112
113 };
114
115 &secure_proxy {
116 u-boot,dm-spl;
117 };
118
119 &dmsc {
120 u-boot,dm-spl;
121 };
122
123 &k3_pds {
124 u-boot,dm-spl;
125 };
126
127 &k3_clks {
128 u-boot,dm-spl;
129 };
130
131 &k3_reset {
132 u-boot,dm-spl;
133 };
134
135 &main_pmx0 {
136 u-boot,dm-spl;
137 main_uart0_pins_default: main_uart0_pins_default {
138 pinctrl-single,pins = <
139 AM65X_IOPAD(0x01e4, PIN_INPUT | MUX_MODE0) /* (AF11) UART0_RXD */
140 AM65X_IOPAD(0x01e8, PIN_OUTPUT | MUX_MODE0) /* (AE11) UART0_TXD */
141 AM65X_IOPAD(0x01ec, PIN_INPUT | MUX_MODE0) /* (AG11) UART0_CTSn */
142 AM65X_IOPAD(0x01f0, PIN_OUTPUT | MUX_MODE0) /* (AD11) UART0_RTSn */
143 >;
144 };
145
146 main_mmc0_pins_default: main_mmc0_pins_default {
147 pinctrl-single,pins = <
148 AM65X_IOPAD(0x01a8, PIN_INPUT_PULLDOWN | MUX_MODE0) /* (B25) MMC0_CLK */
149 AM65X_IOPAD(0x01aC, PIN_INPUT_PULLUP | MUX_MODE0) /* (B27) MMC0_CMD */
150 AM65X_IOPAD(0x01a4, PIN_INPUT_PULLUP | MUX_MODE0) /* (A26) MMC0_DAT0 */
151 AM65X_IOPAD(0x01a0, PIN_INPUT_PULLUP | MUX_MODE0) /* (E25) MMC0_DAT1 */
152 AM65X_IOPAD(0x019c, PIN_INPUT_PULLUP | MUX_MODE0) /* (C26) MMC0_DAT2 */
153 AM65X_IOPAD(0x0198, PIN_INPUT_PULLUP | MUX_MODE0) /* (A25) MMC0_DAT3 */
154 AM65X_IOPAD(0x0194, PIN_INPUT_PULLUP | MUX_MODE0) /* (E24) MMC0_DAT4 */
155 AM65X_IOPAD(0x0190, PIN_INPUT_PULLUP | MUX_MODE0) /* (A24) MMC0_DAT5 */
156 AM65X_IOPAD(0x018c, PIN_INPUT_PULLUP | MUX_MODE0) /* (B26) MMC0_DAT6 */
157 AM65X_IOPAD(0x0188, PIN_INPUT_PULLUP | MUX_MODE0) /* (D25) MMC0_DAT7 */
158 AM65X_IOPAD(0x01b0, PIN_INPUT | MUX_MODE0) /* (C25) MMC0_DS */
159 >;
160 };
161
162 main_mmc1_pins_default: main_mmc1_pins_default {
163 pinctrl-single,pins = <
164 AM65X_IOPAD(0x02d4, PIN_INPUT_PULLDOWN | MUX_MODE0) /* (C27) MMC1_CLK */
165 AM65X_IOPAD(0x02d8, PIN_INPUT_PULLUP | MUX_MODE0) /* (C28) MMC1_CMD */
166 AM65X_IOPAD(0x02d0, PIN_INPUT_PULLUP | MUX_MODE0) /* (D28) MMC1_DAT0 */
167 AM65X_IOPAD(0x02cc, PIN_INPUT_PULLUP | MUX_MODE0) /* (E27) MMC1_DAT1 */
168 AM65X_IOPAD(0x02c8, PIN_INPUT_PULLUP | MUX_MODE0) /* (D26) MMC1_DAT2 */
169 AM65X_IOPAD(0x02c4, PIN_INPUT_PULLUP | MUX_MODE0) /* (D27) MMC1_DAT3 */
170 AM65X_IOPAD(0x02dc, PIN_INPUT_PULLUP | MUX_MODE0) /* (B24) MMC1_SDCD */
171 AM65X_IOPAD(0x02e0, PIN_INPUT | MUX_MODE0) /* (C24) MMC1_SDWP */
172 >;
173 };
174
175 };
176
177 &main_pmx1 {
178 u-boot,dm-spl;
179 };
180
181 &main_uart0 {
182 u-boot,dm-spl;
183 pinctrl-names = "default";
184 pinctrl-0 = <&main_uart0_pins_default>;
185 status = "okay";
186 };
187
188 &sdhci0 {
189 u-boot,dm-spl;
190 status = "okay";
191 non-removable;
192 bus-width = <8>;
193 pinctrl-names = "default";
194 pinctrl-0 = <&main_mmc0_pins_default>;
195 };
196
197 &sdhci1 {
198 u-boot,dm-spl;
199 status = "okay";
200 pinctrl-names = "default";
201 pinctrl-0 = <&main_mmc1_pins_default>;
202 sdhci-caps-mask = <0x7 0x0>;
203 };
204
include/dt-bindings/pinctrl/k3-am65.h
File was created 1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3 * This header provides constants for TI K3-AM65 pinctrl bindings.
4 *
5 * Copyright (C) 2018 Texas Instruments
6 */
7 #ifndef _DT_BINDINGS_PINCTRL_TI_K3_AM65_H
8 #define _DT_BINDINGS_PINCTRL_TI_K3_AM65_H
9
10 /* K3 mux mode options for each pin. See TRM for options */
11 #define MUX_MODE0 0
12 #define MUX_MODE1 1
13 #define MUX_MODE2 2
14 #define MUX_MODE3 3
15 #define MUX_MODE4 4
16 #define MUX_MODE5 5
17 #define MUX_MODE6 6
18 #define MUX_MODE7 7
19 #define MUX_MODE15 15
20
21 #define PULL_DISABLE (1 << 16)
22 #define PULL_UP (1 << 17)
23 #define INPUT_EN (1 << 18)
24 #define SLEWCTRL_200MHZ 0
25 #define SLEWCTRL_150MHZ (1 << 19)
26 #define SLEWCTRL_100MHZ (2 << 19)
27 #define SLEWCTRL_50MHZ (3 << 19)
28 #define TX_DIS (1 << 21)
29 #define ISO_OVR (1 << 22)
30 #define ISO_BYPASS (1 << 23)
31 #define DS_EN (1 << 24)
32 #define DS_INPUT (1 << 25)
33 #define DS_FORCE_OUT_HIGH (1 << 26)
34 #define DS_PULL_UP_DOWN_EN 0
35 #define DS_PULL_UP_DOWN_DIS (1 << 27)
36 #define DS_PULL_UP_SEL (1 << 28)
37 #define WAKEUP_ENABLE (1 << 29)
38
39 #define PIN_OUTPUT (PULL_DISABLE)
40 #define PIN_OUTPUT_PULLUP (PULL_UP)
41 #define PIN_OUTPUT_PULLDOWN 0
42 #define PIN_INPUT (INPUT_EN | PULL_DISABLE)
43 #define PIN_INPUT_PULLUP (INPUT_EN | PULL_UP)
44 #define PIN_INPUT_PULLDOWN (INPUT_EN)
45
46 #define AM65X_IOPAD(pa, val) (((pa) & 0x1fff)) (val)
47 #define AM65X_WKUP_IOPAD(pa, val) (((pa) & 0x1fff)) (val)
48
49 #endif
50