mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-18 19:04:38 +00:00

The Powkiddy X55 is a Rockchip RK3566 based handheld gaming device. UART, ADC, eMMC, and SDMMC are tested to work in U-Boot and this successfully boots mainline Linux. Kernel commit: e99adc97e21a ("arm64: dts: rockchip: Add Powkiddy X55") Signed-off-by: Chris Morgan <macromorgan@hotmail.com> Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
39 lines
1,011 B
C
39 lines
1,011 B
C
// SPDX-License-Identifier: GPL-2.0+
|
|
/*
|
|
* Copyright (c) 2023 Chris Morgan <macromorgan@hotmail.com>
|
|
*/
|
|
|
|
#include <asm/io.h>
|
|
|
|
#define GPIO4_BASE 0xfe770000
|
|
#define GPIO_SWPORT_DR_L 0x0000
|
|
#define GPIO_SWPORT_DDR_L 0x0008
|
|
#define GPIO_B4 BIT(12)
|
|
#define GPIO_B5 BIT(13)
|
|
#define GPIO_B6 BIT(14)
|
|
|
|
#define GPIO_WRITEMASK(bits) ((bits) << 16)
|
|
|
|
/*
|
|
* Start LED very early so user knows device is on. Set color
|
|
* to red.
|
|
*/
|
|
void spl_board_init(void)
|
|
{
|
|
/* Set GPIO4_B4, GPIO4_B5, and GPIO4_B6 to output. */
|
|
writel(GPIO_WRITEMASK(GPIO_B6 | GPIO_B5 | GPIO_B4) | \
|
|
(GPIO_B6 | GPIO_B5 | GPIO_B4),
|
|
(GPIO4_BASE + GPIO_SWPORT_DDR_L));
|
|
/* Set GPIO4_B5 and GPIO4_B6 to 0 and GPIO4_B4 to 1. */
|
|
writel(GPIO_WRITEMASK(GPIO_B6 | GPIO_B5 | GPIO_B4) | GPIO_B4,
|
|
(GPIO4_BASE + GPIO_SWPORT_DR_L));
|
|
}
|
|
|
|
int rk_board_late_init(void)
|
|
{
|
|
/* Turn off red LED and turn on orange LED. */
|
|
writel(GPIO_WRITEMASK(GPIO_B6 | GPIO_B5 | GPIO_B4) | GPIO_B6,
|
|
(GPIO4_BASE + GPIO_SWPORT_DR_L));
|
|
|
|
return 0;
|
|
}
|