[PATCH] sunxi: Add support for using UART4 as console on A64

28 views
Skip to first unread message

Nazım Gediz Aydındoğmuş

unread,
Jun 29, 2020, 5:16:40 AM6/29/20
to linux...@googlegroups.com
A64 has UART4 but it was in conflict with R_UART of older SoCs (e.g. A23).

This commit adds necessary definitions and checks to use UART4 port on A64.
---
arch/arm/include/asm/arch-sunxi/gpio.h | 1 +
arch/arm/mach-sunxi/board.c | 4 ++++
arch/arm/mach-sunxi/clock_sun6i.c | 3 ++-
include/configs/sunxi-common.h | 6 ++++++
4 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/arch/arm/include/asm/arch-sunxi/gpio.h b/arch/arm/include/asm/arch-sunxi/gpio.h
index a646ea6a3c..1407aff25f 100644
--- a/arch/arm/include/asm/arch-sunxi/gpio.h
+++ b/arch/arm/include/asm/arch-sunxi/gpio.h
@@ -176,6 +176,7 @@ enum sunxi_gpio_number {
#define SUNXI_GPD_LCD0 2
#define SUNXI_GPD_LVDS0 3
#define SUNXI_GPD_PWM 2
+#define SUN50I_GPD_UART4 3

#define SUN5I_GPE_SDC2 3
#define SUN8I_GPE_TWI2 3
diff --git a/arch/arm/mach-sunxi/board.c b/arch/arm/mach-sunxi/board.c
index f40fccd8f8..7d95b7dd29 100644
--- a/arch/arm/mach-sunxi/board.c
+++ b/arch/arm/mach-sunxi/board.c
@@ -140,6 +140,10 @@ static int gpio_init(void)
sunxi_gpio_set_cfgpin(SUNXI_GPL(2), SUN8I_GPL_R_UART);
sunxi_gpio_set_cfgpin(SUNXI_GPL(3), SUN8I_GPL_R_UART);
sunxi_gpio_set_pull(SUNXI_GPL(3), SUNXI_GPIO_PULL_UP);
+#elif CONFIG_CONS_INDEX == 5 && defined(CONFIG_MACH_SUN50I)
+ sunxi_gpio_set_cfgpin(SUNXI_GPD(2), SUN50I_GPD_UART4);
+ sunxi_gpio_set_cfgpin(SUNXI_GPD(3), SUN50I_GPD_UART4);
+ sunxi_gpio_set_pull(SUNXI_GPD(3), SUNXI_GPIO_PULL_UP);
#else
#error Unsupported console port number. Please fix pin mux settings in board.c
#endif
diff --git a/arch/arm/mach-sunxi/clock_sun6i.c b/arch/arm/mach-sunxi/clock_sun6i.c
index 8e84062bd7..4bb2d66b1e 100644
--- a/arch/arm/mach-sunxi/clock_sun6i.c
+++ b/arch/arm/mach-sunxi/clock_sun6i.c
@@ -83,7 +83,8 @@ void clock_init_sec(void)

void clock_init_uart(void)
{
-#if CONFIG_CONS_INDEX < 5
+#if CONFIG_CONS_INDEX < 5 || \
+ defined(CONFIG_MACH_SUN50I) && CONFIG_CONS_INDEX < 6
struct sunxi_ccm_reg *const ccm =
(struct sunxi_ccm_reg *)SUNXI_CCM_BASE;

diff --git a/include/configs/sunxi-common.h b/include/configs/sunxi-common.h
index 5b0bec0561..f7a97b3dec 100644
--- a/include/configs/sunxi-common.h
+++ b/include/configs/sunxi-common.h
@@ -45,8 +45,12 @@
# define CONFIG_SYS_NS16550_COM2 SUNXI_UART1_BASE
# define CONFIG_SYS_NS16550_COM3 SUNXI_UART2_BASE
# define CONFIG_SYS_NS16550_COM4 SUNXI_UART3_BASE
+#if defined(CONFIG_MACH_SUN50I)
+# define CONFIG_SYS_NS16550_COM5 SUNXI_UART4_BASE
+#else
# define CONFIG_SYS_NS16550_COM5 SUNXI_R_UART_BASE
#endif
+#endif

/* CPU */
#define COUNTER_FREQUENCY 24000000
@@ -248,6 +252,8 @@ extern int soft_i2c_gpio_scl;
#define OF_STDOUT_PATH "/soc@01c00000/serial@01c28800:115200"
#elif CONFIG_CONS_INDEX == 5 && defined(CONFIG_MACH_SUN8I)
#define OF_STDOUT_PATH "/soc@01c00000/serial@01f02800:115200"
+#elif CONFIG_CONS_INDEX == 5 && defined(CONFIG_MACH_SUN50I)
+#define OF_STDOUT_PATH "/soc@01c00000/serial@01c29000:115200"
#else
#error Unsupported console port nr. Please fix stdout-path in sunxi-common.h.
#endif
--
2.17.1

Chen-Yu Tsai

unread,
Jun 29, 2020, 5:52:55 AM6/29/20
to gediz.ay...@genemek.com, linux-sunxi
Looks like this is a U-boot patch.

Please send it to the proper mailing list and maintainers.
Otherwise it will never have a chance of getting merged.
> --
> You received this message because you are subscribed to the Google Groups "linux-sunxi" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi...@googlegroups.com.
> To view this discussion on the web, visit https://groups.google.com/d/msgid/linux-sunxi/20200629091237.29316-1-gediz.aydindogmus%40genemek.com.

Nazım Gediz AYDINDOĞMUŞ

unread,
Jun 29, 2020, 9:03:55 AM6/29/20
to linux-sunxi, Chen-Yu Tsai
Thanks for the advice, this patch is definitely for U-Boot.

I've also sent it to the U-Boot maintaining list with maintainers cc'd.
I forgot to cc them here...

By the way, is this group only for Linux kernel patches? If yes, I am
sorry for disturbing with content out of context (and also for
double-reply).


--
____________________________

Saygılarımla / With my best regards.

Nazım Gediz AYDINDOĞMUŞ

GENEMEK

GEN Elektromekanik San. ve Tic. Ltd. Şti.

Emek Mh. Ordu Cd. No: 6, Sancaktepe / İstanbul, 34785

Tel: +90 216 365 92 42 - Fax: +90 216 365 92 44

Reply all
Reply to author
Forward
0 new messages