blob: d2f177f817d8e35a93bc8356acf5bf4e44418996 [file] [log] [blame]
Heiko Stuebnerfc367852019-07-16 22:18:21 +02001// SPDX-License-Identifier: GPL-2.0
2/*
3 * Copyright (c) 2017 Rockchip Electronics Co., Ltd
4 */
5#include <common.h>
6#include <clk.h>
7#include <dm.h>
Simon Glass97589732020-05-10 11:40:02 -06008#include <init.h>
Heiko Stuebnerfc367852019-07-16 22:18:21 +02009#include <asm/armv8/mmu.h>
10#include <asm/io.h>
Quentin Schulza5a60e82023-01-09 11:36:42 +010011#include <asm/arch-rockchip/bootrom.h>
Heiko Stuebnerfc367852019-07-16 22:18:21 +020012#include <asm/arch-rockchip/grf_px30.h>
13#include <asm/arch-rockchip/hardware.h>
14#include <asm/arch-rockchip/uart.h>
15#include <asm/arch-rockchip/clock.h>
16#include <asm/arch-rockchip/cru_px30.h>
17#include <dt-bindings/clock/px30-cru.h>
18
Quentin Schulza5a60e82023-01-09 11:36:42 +010019const char * const boot_devices[BROM_LAST_BOOTSOURCE + 1] = {
20 [BROM_BOOTSOURCE_EMMC] = "/mmc@ff390000",
21 [BROM_BOOTSOURCE_SD] = "/mmc@ff370000",
22};
23
Heiko Stuebnerfc367852019-07-16 22:18:21 +020024static struct mm_region px30_mem_map[] = {
25 {
26 .virt = 0x0UL,
27 .phys = 0x0UL,
28 .size = 0xff000000UL,
29 .attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) |
30 PTE_BLOCK_INNER_SHARE
31 }, {
32 .virt = 0xff000000UL,
33 .phys = 0xff000000UL,
34 .size = 0x01000000UL,
35 .attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
36 PTE_BLOCK_NON_SHARE |
37 PTE_BLOCK_PXN | PTE_BLOCK_UXN
38 }, {
39 /* List terminator */
40 0,
41 }
42};
43
44struct mm_region *mem_map = px30_mem_map;
45
46#define PMU_PWRDN_CON 0xff000018
Paul Kocialkowski4a7180d2019-11-28 15:27:52 +010047#define PMUGRF_BASE 0xff010000
Heiko Stuebnerfc367852019-07-16 22:18:21 +020048#define GRF_BASE 0xff140000
49#define CRU_BASE 0xff2b0000
Quentin Schulz58751752022-09-15 12:12:47 +020050#define PMUCRU_BASE 0xff2bc000
Heiko Stuebnerfc367852019-07-16 22:18:21 +020051#define VIDEO_PHY_BASE 0xff2e0000
52#define SERVICE_CORE_ADDR 0xff508000
53#define DDR_FW_BASE 0xff534000
54
55#define FW_DDR_CON 0x40
56
57#define QOS_PRIORITY 0x08
58
59#define QOS_PRIORITY_LEVEL(h, l) ((((h) & 3) << 8) | ((l) & 3))
60
Chris Morgan0f412e42021-08-05 16:26:39 +080061/* GRF_GPIO1AL_IOMUX */
62enum {
63 GPIO1A3_SHIFT = 12,
64 GPIO1A3_MASK = 0xf << GPIO1A3_SHIFT,
65 GPIO1A3_GPIO = 0,
66 GPIO1A3_FLASH_D3,
67 GPIO1A3_EMMC_D3,
68 GPIO1A3_SFC_SIO3,
69
70 GPIO1A2_SHIFT = 8,
71 GPIO1A2_MASK = 0xf << GPIO1A2_SHIFT,
72 GPIO1A2_GPIO = 0,
73 GPIO1A2_FLASH_D2,
74 GPIO1A2_EMMC_D2,
75 GPIO1A2_SFC_SIO2,
76
77 GPIO1A1_SHIFT = 4,
78 GPIO1A1_MASK = 0xf << GPIO1A1_SHIFT,
79 GPIO1A1_GPIO = 0,
80 GPIO1A1_FLASH_D1,
81 GPIO1A1_EMMC_D1,
82 GPIO1A1_SFC_SIO1,
83
84 GPIO1A0_SHIFT = 0,
85 GPIO1A0_MASK = 0xf << GPIO1A0_SHIFT,
86 GPIO1A0_GPIO = 0,
87 GPIO1A0_FLASH_D0,
88 GPIO1A0_EMMC_D0,
89 GPIO1A0_SFC_SIO0,
90};
91
92/* GRF_GPIO1AH_IOMUX */
93enum {
94 GPIO1A4_SHIFT = 0,
95 GPIO1A4_MASK = 0xf << GPIO1A4_SHIFT,
96 GPIO1A4_GPIO = 0,
97 GPIO1A4_FLASH_D4,
98 GPIO1A4_EMMC_D4,
99 GPIO1A4_SFC_CSN0,
100};
101
102/* GRF_GPIO1BL_IOMUX */
103enum {
104 GPIO1B1_SHIFT = 4,
105 GPIO1B1_MASK = 0xf << GPIO1B1_SHIFT,
106 GPIO1B1_GPIO = 0,
107 GPIO1B1_FLASH_RDY,
108 GPIO1B1_EMMC_CLKOUT,
109 GPIO1B1_SFC_CLK,
110};
111
Paul Kocialkowski4a7180d2019-11-28 15:27:52 +0100112/* GRF_GPIO1BH_IOMUX */
113enum {
114 GPIO1B7_SHIFT = 12,
115 GPIO1B7_MASK = 0xf << GPIO1B7_SHIFT,
116 GPIO1B7_GPIO = 0,
117 GPIO1B7_FLASH_RDN,
118 GPIO1B7_UART3_RXM1,
119 GPIO1B7_SPI0_CLK,
120
121 GPIO1B6_SHIFT = 8,
122 GPIO1B6_MASK = 0xf << GPIO1B6_SHIFT,
123 GPIO1B6_GPIO = 0,
124 GPIO1B6_FLASH_CS1,
125 GPIO1B6_UART3_TXM1,
126 GPIO1B6_SPI0_CSN,
127};
128
Heiko Stuebnerfc367852019-07-16 22:18:21 +0200129/* GRF_GPIO1CL_IOMUX */
130enum {
131 GPIO1C1_SHIFT = 4,
132 GPIO1C1_MASK = 0xf << GPIO1C1_SHIFT,
133 GPIO1C1_GPIO = 0,
134 GPIO1C1_UART1_TX,
135
136 GPIO1C0_SHIFT = 0,
137 GPIO1C0_MASK = 0xf << GPIO1C0_SHIFT,
138 GPIO1C0_GPIO = 0,
139 GPIO1C0_UART1_RX,
140};
141
142/* GRF_GPIO1DL_IOMUX */
143enum {
144 GPIO1D3_SHIFT = 12,
145 GPIO1D3_MASK = 0xf << GPIO1D3_SHIFT,
146 GPIO1D3_GPIO = 0,
147 GPIO1D3_SDMMC_D1,
148 GPIO1D3_UART2_RXM0,
149
150 GPIO1D2_SHIFT = 8,
151 GPIO1D2_MASK = 0xf << GPIO1D2_SHIFT,
152 GPIO1D2_GPIO = 0,
153 GPIO1D2_SDMMC_D0,
154 GPIO1D2_UART2_TXM0,
155};
156
157/* GRF_GPIO1DH_IOMUX */
158enum {
159 GPIO1D7_SHIFT = 12,
160 GPIO1D7_MASK = 0xf << GPIO1D7_SHIFT,
161 GPIO1D7_GPIO = 0,
162 GPIO1D7_SDMMC_CMD,
163
164 GPIO1D6_SHIFT = 8,
165 GPIO1D6_MASK = 0xf << GPIO1D6_SHIFT,
166 GPIO1D6_GPIO = 0,
167 GPIO1D6_SDMMC_CLK,
168
169 GPIO1D5_SHIFT = 4,
170 GPIO1D5_MASK = 0xf << GPIO1D5_SHIFT,
171 GPIO1D5_GPIO = 0,
172 GPIO1D5_SDMMC_D3,
173
174 GPIO1D4_SHIFT = 0,
175 GPIO1D4_MASK = 0xf << GPIO1D4_SHIFT,
176 GPIO1D4_GPIO = 0,
177 GPIO1D4_SDMMC_D2,
178};
179
180/* GRF_GPIO2BH_IOMUX */
181enum {
182 GPIO2B6_SHIFT = 8,
183 GPIO2B6_MASK = 0xf << GPIO2B6_SHIFT,
184 GPIO2B6_GPIO = 0,
185 GPIO2B6_CIF_D1M0,
186 GPIO2B6_UART2_RXM1,
187
188 GPIO2B4_SHIFT = 0,
189 GPIO2B4_MASK = 0xf << GPIO2B4_SHIFT,
190 GPIO2B4_GPIO = 0,
191 GPIO2B4_CIF_D0M0,
192 GPIO2B4_UART2_TXM1,
193};
194
195/* GRF_GPIO3AL_IOMUX */
196enum {
197 GPIO3A2_SHIFT = 8,
198 GPIO3A2_MASK = 0xf << GPIO3A2_SHIFT,
199 GPIO3A2_GPIO = 0,
200 GPIO3A2_UART5_TX = 4,
201
202 GPIO3A1_SHIFT = 4,
203 GPIO3A1_MASK = 0xf << GPIO3A1_SHIFT,
204 GPIO3A1_GPIO = 0,
205 GPIO3A1_UART5_RX = 4,
206};
207
Quentin Schulz58751752022-09-15 12:12:47 +0200208/* PMUGRF_GPIO0BL_IOMUX */
209enum {
210 GPIO0B3_SHIFT = 6,
211 GPIO0B3_MASK = 0x3 << GPIO0B3_SHIFT,
212 GPIO0B3_GPIO = 0,
213 GPIO0B3_UART0_RX,
214 GPIO0B3_PMU_DEBUG1,
215
216 GPIO0B2_SHIFT = 4,
217 GPIO0B2_MASK = 0x3 << GPIO0B2_SHIFT,
218 GPIO0B2_GPIO = 0,
219 GPIO0B2_UART0_TX,
220 GPIO0B2_PMU_DEBUG0,
221};
222
Paul Kocialkowski4a7180d2019-11-28 15:27:52 +0100223/* PMUGRF_GPIO0CL_IOMUX */
224enum {
225 GPIO0C1_SHIFT = 2,
226 GPIO0C1_MASK = 0x3 << GPIO0C1_SHIFT,
227 GPIO0C1_GPIO = 0,
228 GPIO0C1_PWM_3,
229 GPIO0C1_UART3_RXM0,
230 GPIO0C1_PMU_DEBUG4,
231
232 GPIO0C0_SHIFT = 0,
233 GPIO0C0_MASK = 0x3 << GPIO0C0_SHIFT,
234 GPIO0C0_GPIO = 0,
235 GPIO0C0_PWM_1,
236 GPIO0C0_UART3_TXM0,
237 GPIO0C0_PMU_DEBUG3,
238};
239
Heiko Stuebnerfc367852019-07-16 22:18:21 +0200240int arch_cpu_init(void)
241{
242 static struct px30_grf * const grf = (void *)GRF_BASE;
Quentin Schulzcddecd32022-11-11 12:25:48 +0100243 static struct px30_cru * const cru = (void *)CRU_BASE;
Heiko Stuebnerfc367852019-07-16 22:18:21 +0200244 u32 __maybe_unused val;
245
246#ifdef CONFIG_SPL_BUILD
247 /* We do some SoC one time setting here. */
248 /* Disable the ddr secure region setting to make it non-secure */
249 writel(0x0, DDR_FW_BASE + FW_DDR_CON);
250
251 /* Set cpu qos priority */
252 writel(QOS_PRIORITY_LEVEL(1, 1), SERVICE_CORE_ADDR + QOS_PRIORITY);
253
254#if !defined(CONFIG_DEBUG_UART_BOARD_INIT) || \
255 (CONFIG_DEBUG_UART_BASE != 0xff160000) || \
256 (CONFIG_DEBUG_UART_CHANNEL != 0)
257 /* fix sdmmc pinmux if not using uart2-channel0 as debug uart */
258 rk_clrsetreg(&grf->gpio1dl_iomux,
259 GPIO1D3_MASK | GPIO1D2_MASK,
260 GPIO1D3_SDMMC_D1 << GPIO1D3_SHIFT |
261 GPIO1D2_SDMMC_D0 << GPIO1D2_SHIFT);
262 rk_clrsetreg(&grf->gpio1dh_iomux,
263 GPIO1D7_MASK | GPIO1D6_MASK | GPIO1D5_MASK | GPIO1D4_MASK,
264 GPIO1D7_SDMMC_CMD << GPIO1D7_SHIFT |
265 GPIO1D6_SDMMC_CLK << GPIO1D6_SHIFT |
266 GPIO1D5_SDMMC_D3 << GPIO1D5_SHIFT |
267 GPIO1D4_SDMMC_D2 << GPIO1D4_SHIFT);
268#endif
269
Chris Morgan0f412e42021-08-05 16:26:39 +0800270#ifdef CONFIG_ROCKCHIP_SFC
271 rk_clrsetreg(&grf->gpio1al_iomux,
272 GPIO1A3_MASK | GPIO1A2_MASK | GPIO1A1_MASK | GPIO1A0_MASK,
273 GPIO1A3_SFC_SIO3 << GPIO1A3_SHIFT |
274 GPIO1A2_SFC_SIO2 << GPIO1A2_SHIFT |
275 GPIO1A1_SFC_SIO1 << GPIO1A1_SHIFT |
276 GPIO1A0_SFC_SIO0 << GPIO1A0_SHIFT);
277 rk_clrsetreg(&grf->gpio1ah_iomux, GPIO1A4_MASK,
278 GPIO1A4_SFC_CSN0 << GPIO1A4_SHIFT);
279 rk_clrsetreg(&grf->gpio1bl_iomux, GPIO1B1_MASK,
280 GPIO1B1_SFC_CLK << GPIO1B1_SHIFT);
281#endif
282
Heiko Stuebnerfc367852019-07-16 22:18:21 +0200283#endif
284
285 /* Enable PD_VO (default disable at reset) */
286 rk_clrreg(PMU_PWRDN_CON, 1 << 13);
287
288 /* Disable video phy bandgap by default */
289 writel(0x82, VIDEO_PHY_BASE + 0x0000);
290 writel(0x05, VIDEO_PHY_BASE + 0x03ac);
291
292 /* Clear the force_jtag */
293 rk_clrreg(&grf->cpu_con[1], 1 << 7);
294
Quentin Schulzcddecd32022-11-11 12:25:48 +0100295 /* Make TSADC and WDT trigger a first global reset */
296 clrsetbits_le32(&cru->glb_rst_con, 0x3, 0x3);
297
Heiko Stuebnerfc367852019-07-16 22:18:21 +0200298 return 0;
299}
300
301#ifdef CONFIG_DEBUG_UART_BOARD_INIT
302void board_debug_uart_init(void)
303{
Paul Kocialkowski4a7180d2019-11-28 15:27:52 +0100304#if defined(CONFIG_DEBUG_UART_BASE) && \
Quentin Schulz58751752022-09-15 12:12:47 +0200305 (((CONFIG_DEBUG_UART_BASE == 0xff168000) && \
306 (CONFIG_DEBUG_UART_CHANNEL != 1)) || \
307 CONFIG_DEBUG_UART_BASE == 0xff030000)
Paul Kocialkowski4a7180d2019-11-28 15:27:52 +0100308 static struct px30_pmugrf * const pmugrf = (void *)PMUGRF_BASE;
309#endif
Quentin Schulz613d6f22023-01-09 11:36:40 +0100310#if !defined(CONFIG_DEBUG_UART_BASE) || \
311 (CONFIG_DEBUG_UART_BASE != 0xff158000 && \
312 CONFIG_DEBUG_UART_BASE != 0xff168000 && \
313 CONFIG_DEBUG_UART_BASE != 0xff178000 && \
314 CONFIG_DEBUG_UART_BASE != 0xff030000) || \
315 (defined(CONFIG_DEBUG_UART_BASE) && \
316 (CONFIG_DEBUG_UART_BASE == 0xff158000 || \
317 CONFIG_DEBUG_UART_BASE == 0xff168000 || \
318 CONFIG_DEBUG_UART_BASE == 0xff178000))
Heiko Stuebnerfc367852019-07-16 22:18:21 +0200319 static struct px30_grf * const grf = (void *)GRF_BASE;
320 static struct px30_cru * const cru = (void *)CRU_BASE;
Quentin Schulz613d6f22023-01-09 11:36:40 +0100321#endif
Quentin Schulz58751752022-09-15 12:12:47 +0200322#if defined(CONFIG_DEBUG_UART_BASE) && CONFIG_DEBUG_UART_BASE == 0xff030000
323 static struct px30_pmucru * const pmucru = (void *)PMUCRU_BASE;
324#endif
Heiko Stuebnerfc367852019-07-16 22:18:21 +0200325
326#if defined(CONFIG_DEBUG_UART_BASE) && (CONFIG_DEBUG_UART_BASE == 0xff158000)
327 /* uart_sel_clk default select 24MHz */
328 rk_clrsetreg(&cru->clksel_con[34],
329 UART1_PLL_SEL_MASK | UART1_DIV_CON_MASK,
330 UART1_PLL_SEL_24M << UART1_PLL_SEL_SHIFT | 0);
331 rk_clrsetreg(&cru->clksel_con[35],
332 UART1_CLK_SEL_MASK,
333 UART1_CLK_SEL_UART1 << UART1_CLK_SEL_SHIFT);
334
335 rk_clrsetreg(&grf->gpio1cl_iomux,
336 GPIO1C1_MASK | GPIO1C0_MASK,
337 GPIO1C1_UART1_TX << GPIO1C1_SHIFT |
338 GPIO1C0_UART1_RX << GPIO1C0_SHIFT);
Paul Kocialkowski4a7180d2019-11-28 15:27:52 +0100339#elif defined(CONFIG_DEBUG_UART_BASE) && (CONFIG_DEBUG_UART_BASE == 0xff168000)
340 /* GRF_IOFUNC_CON0 */
341 enum {
342 CON_IOMUX_UART3SEL_SHIFT = 9,
343 CON_IOMUX_UART3SEL_MASK = 1 << CON_IOMUX_UART3SEL_SHIFT,
344 CON_IOMUX_UART3SEL_M0 = 0,
345 CON_IOMUX_UART3SEL_M1,
346 };
347
348 /* uart_sel_clk default select 24MHz */
349 rk_clrsetreg(&cru->clksel_con[40],
350 UART3_PLL_SEL_MASK | UART3_DIV_CON_MASK,
351 UART3_PLL_SEL_24M << UART3_PLL_SEL_SHIFT | 0);
352 rk_clrsetreg(&cru->clksel_con[41],
353 UART3_CLK_SEL_MASK,
354 UART3_CLK_SEL_UART3 << UART3_CLK_SEL_SHIFT);
355
356#if (CONFIG_DEBUG_UART_CHANNEL == 1)
357 rk_clrsetreg(&grf->iofunc_con0,
358 CON_IOMUX_UART3SEL_MASK,
359 CON_IOMUX_UART3SEL_M1 << CON_IOMUX_UART3SEL_SHIFT);
360
361 rk_clrsetreg(&grf->gpio1bh_iomux,
362 GPIO1B7_MASK | GPIO1B6_MASK,
363 GPIO1B7_UART3_RXM1 << GPIO1B7_SHIFT |
364 GPIO1B6_UART3_TXM1 << GPIO1B6_SHIFT);
365#else
366 rk_clrsetreg(&grf->iofunc_con0,
367 CON_IOMUX_UART3SEL_MASK,
368 CON_IOMUX_UART3SEL_M0 << CON_IOMUX_UART3SEL_SHIFT);
369
370 rk_clrsetreg(&pmugrf->gpio0cl_iomux,
371 GPIO0C1_MASK | GPIO0C0_MASK,
372 GPIO0C1_UART3_RXM0 << GPIO0C1_SHIFT |
373 GPIO0C0_UART3_TXM0 << GPIO0C0_SHIFT);
374#endif /* CONFIG_DEBUG_UART_CHANNEL == 1 */
375
Heiko Stuebnerfc367852019-07-16 22:18:21 +0200376#elif defined(CONFIG_DEBUG_UART_BASE) && (CONFIG_DEBUG_UART_BASE == 0xff178000)
377 /* uart_sel_clk default select 24MHz */
378 rk_clrsetreg(&cru->clksel_con[46],
379 UART5_PLL_SEL_MASK | UART5_DIV_CON_MASK,
380 UART5_PLL_SEL_24M << UART5_PLL_SEL_SHIFT | 0);
381 rk_clrsetreg(&cru->clksel_con[47],
382 UART5_CLK_SEL_MASK,
383 UART5_CLK_SEL_UART5 << UART5_CLK_SEL_SHIFT);
384
385 rk_clrsetreg(&grf->gpio3al_iomux,
386 GPIO3A2_MASK | GPIO3A1_MASK,
387 GPIO3A2_UART5_TX << GPIO3A2_SHIFT |
388 GPIO3A1_UART5_RX << GPIO3A1_SHIFT);
Quentin Schulz58751752022-09-15 12:12:47 +0200389#elif defined(CONFIG_DEBUG_UART_BASE) && (CONFIG_DEBUG_UART_BASE == 0xff030000)
390 /* uart_sel_clk default select 24MHz */
391 rk_clrsetreg(&pmucru->pmu_clksel_con[3],
392 UART0_PLL_SEL_MASK | UART0_DIV_CON_MASK,
393 UART0_PLL_SEL_24M << UART0_PLL_SEL_SHIFT | 0);
394 rk_clrsetreg(&pmucru->pmu_clksel_con[4],
395 UART0_CLK_SEL_MASK,
396 UART0_CLK_SEL_UART0 << UART0_CLK_SEL_SHIFT);
397
398 rk_clrsetreg(&pmugrf->gpio0bl_iomux,
399 GPIO0B3_MASK | GPIO0B2_MASK,
400 GPIO0B3_UART0_RX << GPIO0B3_SHIFT |
401 GPIO0B2_UART0_TX << GPIO0B2_SHIFT);
Heiko Stuebnerfc367852019-07-16 22:18:21 +0200402#else
403 /* GRF_IOFUNC_CON0 */
404 enum {
405 CON_IOMUX_UART2SEL_SHIFT = 10,
406 CON_IOMUX_UART2SEL_MASK = 3 << CON_IOMUX_UART2SEL_SHIFT,
407 CON_IOMUX_UART2SEL_M0 = 0,
408 CON_IOMUX_UART2SEL_M1,
409 CON_IOMUX_UART2SEL_USBPHY,
410 };
411
412 /* uart_sel_clk default select 24MHz */
413 rk_clrsetreg(&cru->clksel_con[37],
414 UART2_PLL_SEL_MASK | UART2_DIV_CON_MASK,
415 UART2_PLL_SEL_24M << UART2_PLL_SEL_SHIFT | 0);
416 rk_clrsetreg(&cru->clksel_con[38],
417 UART2_CLK_SEL_MASK,
418 UART2_CLK_SEL_UART2 << UART2_CLK_SEL_SHIFT);
419
Paul Kocialkowski7250b232019-11-28 15:27:51 +0100420#if (CONFIG_DEBUG_UART_CHANNEL == 1)
Heiko Stuebnerfc367852019-07-16 22:18:21 +0200421 /* Enable early UART2 */
422 rk_clrsetreg(&grf->iofunc_con0,
423 CON_IOMUX_UART2SEL_MASK,
424 CON_IOMUX_UART2SEL_M1 << CON_IOMUX_UART2SEL_SHIFT);
425
426 rk_clrsetreg(&grf->gpio2bh_iomux,
427 GPIO2B6_MASK | GPIO2B4_MASK,
428 GPIO2B6_UART2_RXM1 << GPIO2B6_SHIFT |
429 GPIO2B4_UART2_TXM1 << GPIO2B4_SHIFT);
430#else
431 rk_clrsetreg(&grf->iofunc_con0,
432 CON_IOMUX_UART2SEL_MASK,
433 CON_IOMUX_UART2SEL_M0 << CON_IOMUX_UART2SEL_SHIFT);
434
435 rk_clrsetreg(&grf->gpio1dl_iomux,
436 GPIO1D3_MASK | GPIO1D2_MASK,
437 GPIO1D3_UART2_RXM0 << GPIO1D3_SHIFT |
438 GPIO1D2_UART2_TXM0 << GPIO1D2_SHIFT);
Paul Kocialkowski7250b232019-11-28 15:27:51 +0100439#endif /* CONFIG_DEBUG_UART_CHANNEL == 1 */
Heiko Stuebnerfc367852019-07-16 22:18:21 +0200440
441#endif /* CONFIG_DEBUG_UART_BASE && CONFIG_DEBUG_UART_BASE == ... */
442}
443#endif /* CONFIG_DEBUG_UART_BOARD_INIT */