diff mbox series

[RFC,v2] sunxi: Add UART4 console support for A64

Message ID 20200708121118.19278-1-gediz.aydindogmus@genemek.com
State Changes Requested
Delegated to: Jagannadha Sutradharudu Teki
Headers show
Series [RFC,v2] sunxi: Add UART4 console support for A64 | expand

Commit Message

Nazım Gediz AYDINDOĞMUŞ July 8, 2020, 12:11 p.m. UTC
UART4 port of A64 was in conflict with R_UART of older SoCs, like A23.

This commit adds necessary definitions to use UART4 port on A64.

Signed-off-by: Nazım Gediz Aydındoğmuş <gediz.aydindogmus@genemek.com>
Tested-by: Faruk Kılavuz <faruk.kilavuz@genemek.com>
---

Changes in v2:
- Removed redundant OF_STDOUT_PATH changes
- Simplified commit log to meet 80 characters

 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         | 4 ++++
 4 files changed, 11 insertions(+), 1 deletion(-)

Comments

Jagan Teki July 11, 2020, 9:30 a.m. UTC | #1
On Wed, Jul 8, 2020 at 5:41 PM Nazım Gediz Aydındoğmuş
<gediz.aydindogmus@genemek.com> wrote:
>
> UART4 port of A64 was in conflict with R_UART of older SoCs, like A23.
>
> This commit adds necessary definitions to use UART4 port on A64.
>
> Signed-off-by: Nazım Gediz Aydındoğmuş <gediz.aydindogmus@genemek.com>
> Tested-by: Faruk Kılavuz <faruk.kilavuz@genemek.com>
> ---

I think this cannot be RFC, otherwise

Acked-by: Jagan Teki <jagan@amarulasolutions.com>
Nazım Gediz AYDINDOĞMUŞ July 13, 2020, 8:11 a.m. UTC | #2
On 11.07.2020 12:30, Jagan Teki wrote:
> On Wed, Jul 8, 2020 at 5:41 PM Nazım Gediz Aydındoğmuş
> <gediz.aydindogmus@genemek.com> wrote:
>> UART4 port of A64 was in conflict with R_UART of older SoCs, like A23.
>>
>> This commit adds necessary definitions to use UART4 port on A64.
>>
>> Signed-off-by: Nazım Gediz Aydındoğmuş <gediz.aydindogmus@genemek.com>
>> Tested-by: Faruk Kılavuz <faruk.kilavuz@genemek.com>
>> ---
> I think this cannot be RFC, otherwise
>
> Acked-by: Jagan Teki <jagan@amarulasolutions.com>
>
Hello,

I thought it may be suitable to word the subject as RFC because Maxime
Ripard pointed out some incomplete parts about the preceding version of
the patch (I'm grateful for that) and it made me think that there may be
more of it. Is this patch eligible now to send as a non-RFC patch?

Thanks for the review.
Maxime Ripard July 16, 2020, 8:36 a.m. UTC | #3
On Wed, Jul 08, 2020 at 03:11:18PM +0300, Nazım Gediz Aydındoğmuş wrote:
> UART4 port of A64 was in conflict with R_UART of older SoCs, like A23.
> 
> This commit adds necessary definitions to use UART4 port on A64.
> 
> Signed-off-by: Nazım Gediz Aydındoğmuş <gediz.aydindogmus@genemek.com>
> Tested-by: Faruk Kılavuz <faruk.kilavuz@genemek.com>
> ---
> 
> Changes in v2:
> - Removed redundant OF_STDOUT_PATH changes

AFAIK they are needed, but the path was wrong in your original version.

Maxime
Nazım Gediz AYDINDOĞMUŞ July 21, 2020, 5:06 a.m. UTC | #4
On 16.07.2020 11:36, Maxime Ripard wrote:
> On Wed, Jul 08, 2020 at 03:11:18PM +0300, Nazım Gediz Aydındoğmuş wrote:
>> UART4 port of A64 was in conflict with R_UART of older SoCs, like A23.
>>
>> This commit adds necessary definitions to use UART4 port on A64.
>>
>> Signed-off-by: Nazım Gediz Aydındoğmuş <gediz.aydindogmus@genemek.com>
>> Tested-by: Faruk Kılavuz <faruk.kilavuz@genemek.com>
>> ---
>>
>> Changes in v2:
>> - Removed redundant OF_STDOUT_PATH changes
> 
> AFAIK they are needed, but the path was wrong in your original version.
> 
> Maxime
> 

I will inspect it again in order to find a proper patch for a "soc" node 
on the DTS. Thanks.
diff mbox series

Patch

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..95f8e807f3 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..1324d60f60 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