[U-Boot] [PATCH 0/5] ARM: uniphier: further cleanup

Masahiro Yamada (5): ARM: uniphier: remove unused header file ARM: uniphier: remove useless wrapper functions ARM: uniphier: refactor LED function ARM: uniphier: move CONFIG_SUPPORT_CARD_* macros to local file ARM: uniphier: allow to disable CONFIG_MICRO_SUPPORT_CARD
arch/arm/mach-uniphier/Makefile | 2 +- arch/arm/mach-uniphier/board_common.c | 11 +-- arch/arm/mach-uniphier/board_early_init_f.c | 10 +-- arch/arm/mach-uniphier/board_early_init_r.c | 5 +- arch/arm/mach-uniphier/include/mach/board.h | 23 +++-- arch/arm/mach-uniphier/include/mach/led.h | 100 --------------------- arch/arm/mach-uniphier/include/mach/platdevice.h | 24 ----- arch/arm/mach-uniphier/lowlevel_init.S | 1 - .../{support_card.c => micro-support-card.c} | 84 +++++++++++++++-- arch/arm/mach-uniphier/spl.c | 24 ++--- include/configs/uniphier.h | 11 +-- 11 files changed, 116 insertions(+), 179 deletions(-) delete mode 100644 arch/arm/mach-uniphier/include/mach/led.h delete mode 100644 arch/arm/mach-uniphier/include/mach/platdevice.h rename arch/arm/mach-uniphier/{support_card.c => micro-support-card.c} (68%)

This has been unused since commit f4e190e317b8 ("ARM: uniphier: enable SPL_OF_CONTROL").
Signed-off-by: Masahiro Yamada yamada.masahiro@socionext.com ---
arch/arm/mach-uniphier/include/mach/platdevice.h | 24 ------------------------ 1 file changed, 24 deletions(-) delete mode 100644 arch/arm/mach-uniphier/include/mach/platdevice.h
diff --git a/arch/arm/mach-uniphier/include/mach/platdevice.h b/arch/arm/mach-uniphier/include/mach/platdevice.h deleted file mode 100644 index cdf7d13..0000000 --- a/arch/arm/mach-uniphier/include/mach/platdevice.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (C) 2014 Panasonic Corporation - * Author: Masahiro Yamada yamada.m@jp.panasonic.com - * - * SPDX-License-Identifier: GPL-2.0+ - */ - -#ifndef ARCH_PLATDEVICE_H -#define ARCH_PLATDEVICE_H - -#include <dm/platdata.h> -#include <dm/platform_data/serial-uniphier.h> - -#define SERIAL_DEVICE(n, ba, clk) \ -static struct uniphier_serial_platform_data serial_device##n = { \ - .base = ba, \ - .uartclk = clk \ -}; \ -U_BOOT_DEVICE(serial##n) = { \ - .name = DRIVER_NAME, \ - .platdata = &serial_device##n \ -}; - -#endif /* ARCH_PLATDEVICE_H */

The wrapper functions, uniphier_board_*, are just making function calls complex. Remove them.
Also, use empty inline functions in case CONFIG_MICRO_SUPPORT_CARD is disabled, so that prototype checking works.
Signed-off-by: Masahiro Yamada yamada.masahiro@socionext.com ---
arch/arm/mach-uniphier/board_early_init_r.c | 5 ++--- arch/arm/mach-uniphier/include/mach/board.h | 18 ++++++------------ arch/arm/mach-uniphier/spl.c | 4 ++-- 3 files changed, 10 insertions(+), 17 deletions(-)
diff --git a/arch/arm/mach-uniphier/board_early_init_r.c b/arch/arm/mach-uniphier/board_early_init_r.c index 579fe70..7d4830a 100644 --- a/arch/arm/mach-uniphier/board_early_init_r.c +++ b/arch/arm/mach-uniphier/board_early_init_r.c @@ -1,6 +1,5 @@ /* - * Copyright (C) 2014 Panasonic Corporation - * Author: Masahiro Yamada yamada.m@jp.panasonic.com + * Copyright (C) 2014-2015 Masahiro Yamada yamada.masahiro@socionext.com * * SPDX-License-Identifier: GPL-2.0+ */ @@ -10,6 +9,6 @@
int board_early_init_r(void) { - uniphier_board_late_init(); + support_card_late_init(); return 0; } diff --git a/arch/arm/mach-uniphier/include/mach/board.h b/arch/arm/mach-uniphier/include/mach/board.h index c039d80..5b9af22 100644 --- a/arch/arm/mach-uniphier/include/mach/board.h +++ b/arch/arm/mach-uniphier/include/mach/board.h @@ -13,28 +13,22 @@ void support_card_init(void); void support_card_late_init(void); int check_support_card(void); #else -#define support_card_reset() do {} while (0) -#define support_card_init() do {} while (0) -#define support_card_late_init() do {} while (0) -static inline int check_support_card(void) +static inline void support_card_reset(void) { - return 0; } -#endif
-static inline void uniphier_board_reset(void) +static inline void support_card_init(void) { - support_card_reset(); }
-static inline void uniphier_board_init(void) +static inline void support_card_late_init(void) { - support_card_init(); }
-static inline void uniphier_board_late_init(void) +static inline int check_support_card(void) { - support_card_late_init(); + return 0; } +#endif
#endif /* ARCH_BOARD_H */ diff --git a/arch/arm/mach-uniphier/spl.c b/arch/arm/mach-uniphier/spl.c index 78534fc..661d73a 100644 --- a/arch/arm/mach-uniphier/spl.c +++ b/arch/arm/mach-uniphier/spl.c @@ -40,11 +40,11 @@ void spl_board_init(void)
sg_init();
- uniphier_board_reset(); + support_card_reset();
pll_init();
- uniphier_board_init(); + support_card_init();
led_write(L, 0, , );

The macro, led_write(), is now only used in C sources. There is no more reason to keep the tricky assembly macro. Replace it with a new C function led_puts().
Signed-off-by: Masahiro Yamada yamada.masahiro@socionext.com ---
arch/arm/mach-uniphier/board_common.c | 11 +-- arch/arm/mach-uniphier/board_early_init_f.c | 10 ++- arch/arm/mach-uniphier/include/mach/board.h | 5 ++ arch/arm/mach-uniphier/include/mach/led.h | 100 ---------------------------- arch/arm/mach-uniphier/lowlevel_init.S | 1 - arch/arm/mach-uniphier/spl.c | 16 ++--- arch/arm/mach-uniphier/support_card.c | 71 ++++++++++++++++++++ 7 files changed, 91 insertions(+), 123 deletions(-) delete mode 100644 arch/arm/mach-uniphier/include/mach/led.h
diff --git a/arch/arm/mach-uniphier/board_common.c b/arch/arm/mach-uniphier/board_common.c index 967fa6c..60c430e 100644 --- a/arch/arm/mach-uniphier/board_common.c +++ b/arch/arm/mach-uniphier/board_common.c @@ -1,20 +1,15 @@ /* - * Copyright (C) 2012-2014 Panasonic Corporation - * Author: Masahiro Yamada yamada.m@jp.panasonic.com + * Copyright (C) 2012-2015 Masahiro Yamada yamada.masahiro@socionext.com * * SPDX-License-Identifier: GPL-2.0+ */
#include <common.h> -#include <mach/led.h> +#include <mach/board.h>
-/* - * Routine: board_init - * Description: Early hardware init. - */ int board_init(void) { - led_write(U, B, O, O); + led_puts("Uboo");
return 0; } diff --git a/arch/arm/mach-uniphier/board_early_init_f.c b/arch/arm/mach-uniphier/board_early_init_f.c index 7108740..24ef396 100644 --- a/arch/arm/mach-uniphier/board_early_init_f.c +++ b/arch/arm/mach-uniphier/board_early_init_f.c @@ -1,11 +1,9 @@ /* - * Copyright (C) 2012-2015 Panasonic Corporation - * Author: Masahiro Yamada yamada.m@jp.panasonic.com + * Copyright (C) 2012-2015 Masahiro Yamada yamada.masahiro@socionext.com * * SPDX-License-Identifier: GPL-2.0+ */
-#include <mach/led.h> #include <mach/board.h>
void pin_init(void); @@ -13,15 +11,15 @@ void clkrst_init(void);
int board_early_init_f(void) { - led_write(U, 0, , ); + led_puts("U0");
pin_init();
- led_write(U, 1, , ); + led_puts("U1");
clkrst_init();
- led_write(U, 2, , ); + led_puts("U2");
return 0; } diff --git a/arch/arm/mach-uniphier/include/mach/board.h b/arch/arm/mach-uniphier/include/mach/board.h index 5b9af22..5da0ada 100644 --- a/arch/arm/mach-uniphier/include/mach/board.h +++ b/arch/arm/mach-uniphier/include/mach/board.h @@ -12,6 +12,7 @@ void support_card_reset(void); void support_card_init(void); void support_card_late_init(void); int check_support_card(void); +void led_puts(const char *s); #else static inline void support_card_reset(void) { @@ -29,6 +30,10 @@ static inline int check_support_card(void) { return 0; } + +static inline void led_puts(const char *s) +{ +} #endif
#endif /* ARCH_BOARD_H */ diff --git a/arch/arm/mach-uniphier/include/mach/led.h b/arch/arm/mach-uniphier/include/mach/led.h deleted file mode 100644 index f7749b4..0000000 --- a/arch/arm/mach-uniphier/include/mach/led.h +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Copyright (C) 2012-2015 Masahiro Yamada yamada.masahiro@socionext.com - * - * SPDX-License-Identifier: GPL-2.0+ - */ - -#ifndef ARCH_LED_H -#define ARCH_LED_H - -#include <config.h> - -#define LED_CHAR_0 0x7e -#define LED_CHAR_1 0x0c -#define LED_CHAR_2 0xb6 -#define LED_CHAR_3 0x9e -#define LED_CHAR_4 0xcc -#define LED_CHAR_5 0xda -#define LED_CHAR_6 0xfa -#define LED_CHAR_7 0x4e -#define LED_CHAR_8 0xfe -#define LED_CHAR_9 0xde - -#define LED_CHAR_A 0xee -#define LED_CHAR_B 0xf8 -#define LED_CHAR_C 0x72 -#define LED_CHAR_D 0xbc -#define LED_CHAR_E 0xf2 -#define LED_CHAR_F 0xe2 -#define LED_CHAR_G 0x7a -#define LED_CHAR_H 0xe8 -#define LED_CHAR_I 0x08 -#define LED_CHAR_J 0x3c -#define LED_CHAR_K 0xea -#define LED_CHAR_L 0x70 -#define LED_CHAR_M 0x6e -#define LED_CHAR_N 0xa8 -#define LED_CHAR_O 0xb8 -#define LED_CHAR_P 0xe6 -#define LED_CHAR_Q 0xce -#define LED_CHAR_R 0xa0 -#define LED_CHAR_S 0xc8 -#define LED_CHAR_T 0x8c -#define LED_CHAR_U 0x7c -#define LED_CHAR_V 0x54 -#define LED_CHAR_W 0xfc -#define LED_CHAR_X 0xec -#define LED_CHAR_Y 0xdc -#define LED_CHAR_Z 0xa4 - -#define LED_CHAR_SPACE 0x00 -#define LED_CHAR_DOT 0x01 - -#define LED_CHAR_ (LED_CHAR_SPACE) - -/** Macro to translate 4 characters into integer to display led */ -#define LED_C2I(C0, C1, C2, C3) \ - (~( \ - (LED_CHAR_##C0 << 24) | \ - (LED_CHAR_##C1 << 16) | \ - (LED_CHAR_##C2 << 8) | \ - (LED_CHAR_##C3) \ - )) - -#if defined(CONFIG_SUPPORT_CARD_LED_BASE) - -#define LED_ADDR CONFIG_SUPPORT_CARD_LED_BASE - -#ifdef __ASSEMBLY__ - -#define led_write(C0, C1, C2, C3) raw_led_write LED_C2I(C0, C1, C2, C3) -.macro raw_led_write data - ldr r0, =\data - ldr r1, =LED_ADDR - str r0, [r1] -.endm - -#else /* __ASSEMBLY__ */ - -#include <linux/io.h> - -#define led_write(C0, C1, C2, C3) \ -do { \ - raw_led_write(LED_C2I(C0, C1, C2, C3)); \ -} while (0) - -static inline void raw_led_write(u32 data) -{ - writel(data, LED_ADDR); -} - -#endif /* __ASSEMBLY__ */ - -#else /* CONFIG_SUPPORT_CARD_LED_BASE */ - -#define led_write(C0, C1, C2, C3) -#define raw_led_write(x) - -#endif /* CONFIG_SUPPORT_CARD_LED_BASE */ - -#endif /* ARCH_LED_H */ diff --git a/arch/arm/mach-uniphier/lowlevel_init.S b/arch/arm/mach-uniphier/lowlevel_init.S index fd34a4a..9259baf 100644 --- a/arch/arm/mach-uniphier/lowlevel_init.S +++ b/arch/arm/mach-uniphier/lowlevel_init.S @@ -8,7 +8,6 @@ #include <linux/linkage.h> #include <linux/sizes.h> #include <asm/system.h> -#include <mach/led.h> #include <mach/arm-mpcore.h> #include <mach/sbc-regs.h> #include <mach/ssc-regs.h> diff --git a/arch/arm/mach-uniphier/spl.c b/arch/arm/mach-uniphier/spl.c index 661d73a..75d2989 100644 --- a/arch/arm/mach-uniphier/spl.c +++ b/arch/arm/mach-uniphier/spl.c @@ -7,7 +7,6 @@ #include <common.h> #include <spl.h> #include <linux/compiler.h> -#include <mach/led.h> #include <mach/board.h>
void __weak bcu_init(void) @@ -46,25 +45,25 @@ void spl_board_init(void)
support_card_init();
- led_write(L, 0, , ); + led_puts("L0");
memconf_init();
- led_write(L, 1, , ); + led_puts("L1");
early_clkrst_init();
- led_write(L, 2, , ); + led_puts("L2");
early_pin_init();
- led_write(L, 3, , ); + led_puts("L3");
#ifdef CONFIG_SPL_SERIAL_SUPPORT preloader_console_init(); #endif
- led_write(L, 4, , ); + led_puts("L4");
{ int res; @@ -75,9 +74,10 @@ void spl_board_init(void) ; } } - led_write(L, 5, , ); + + led_puts("L5");
enable_dpll_ssc();
- led_write(L, 6, , ); + led_puts("L6"); } diff --git a/arch/arm/mach-uniphier/support_card.c b/arch/arm/mach-uniphier/support_card.c index ef4576d..e2a8c1f 100644 --- a/arch/arm/mach-uniphier/support_card.c +++ b/arch/arm/mach-uniphier/support_card.c @@ -5,6 +5,7 @@ */
#include <common.h> +#include <linux/ctype.h> #include <linux/io.h> #include <mach/board.h>
@@ -155,3 +156,73 @@ void support_card_late_init(void) { detect_num_flash_banks(); } + +static const u8 ledval_num[] = { + 0x7e, /* 0 */ + 0x0c, /* 1 */ + 0xb6, /* 2 */ + 0x9e, /* 3 */ + 0xcc, /* 4 */ + 0xda, /* 5 */ + 0xfa, /* 6 */ + 0x4e, /* 7 */ + 0xfe, /* 8 */ + 0xde, /* 9 */ +}; + +static const u8 ledval_alpha[] = { + 0xee, /* A */ + 0xf8, /* B */ + 0x72, /* C */ + 0xbc, /* D */ + 0xf2, /* E */ + 0xe2, /* F */ + 0x7a, /* G */ + 0xe8, /* H */ + 0x08, /* I */ + 0x3c, /* J */ + 0xea, /* K */ + 0x70, /* L */ + 0x6e, /* M */ + 0xa8, /* N */ + 0xb8, /* O */ + 0xe6, /* P */ + 0xce, /* Q */ + 0xa0, /* R */ + 0xc8, /* S */ + 0x8c, /* T */ + 0x7c, /* U */ + 0x54, /* V */ + 0xfc, /* W */ + 0xec, /* X */ + 0xdc, /* Y */ + 0xa4, /* Z */ +}; + +static u8 char2ledval(char c) +{ + if (isdigit(c)) + return ledval_num[c - '0']; + else if (isalpha(c)) + return ledval_alpha[toupper(c) - 'A']; + + return 0; +} + +void led_puts(const char *s) +{ + int i; + u32 val = 0; + + if (!s) + return; + + for (i = 0; i < 4; i++) { + val <<= 8; + val |= char2ledval(*s); + if (*s != '\0') + s++; + } + + writel(~val, CONFIG_SUPPORT_CARD_LED_BASE); +}

It is no longer necessary to define CONFIG_SUPPORT_CARD_* globally. Move them to a C file as local macros. Also, rename the C file.
Signed-off-by: Masahiro Yamada yamada.masahiro@socionext.com ---
arch/arm/mach-uniphier/Makefile | 2 +- .../{support_card.c => micro-support-card.c} | 15 +++++++++------ include/configs/uniphier.h | 11 ++--------- 3 files changed, 12 insertions(+), 16 deletions(-) rename arch/arm/mach-uniphier/{support_card.c => micro-support-card.c} (90%)
diff --git a/arch/arm/mach-uniphier/Makefile b/arch/arm/mach-uniphier/Makefile index 5f17557..df6a569 100644 --- a/arch/arm/mach-uniphier/Makefile +++ b/arch/arm/mach-uniphier/Makefile @@ -29,7 +29,7 @@ endif
obj-y += timer.o
-obj-$(CONFIG_MICRO_SUPPORT_CARD) += support_card.o +obj-$(CONFIG_MICRO_SUPPORT_CARD) += micro-support-card.o
obj-$(CONFIG_MACH_PH1_SLD3) += ph1-sld3/ obj-$(CONFIG_MACH_PH1_LD4) += ph1-ld4/ diff --git a/arch/arm/mach-uniphier/support_card.c b/arch/arm/mach-uniphier/micro-support-card.c similarity index 90% rename from arch/arm/mach-uniphier/support_card.c rename to arch/arm/mach-uniphier/micro-support-card.c index e2a8c1f..28dbfca 100644 --- a/arch/arm/mach-uniphier/support_card.c +++ b/arch/arm/mach-uniphier/micro-support-card.c @@ -9,10 +9,13 @@ #include <linux/io.h> #include <mach/board.h>
-#define MICRO_SUPPORT_CARD_RESET \ - ((CONFIG_SUPPORT_CARD_BASE) + 0x000D0034) -#define MICRO_SUPPORT_CARD_REVISION \ - ((CONFIG_SUPPORT_CARD_BASE) + 0x000D00E0) +#define MICRO_SUPPORT_CARD_BASE 0x43f00000 +#define SMC911X_BASE ((MICRO_SUPPORT_CARD_BASE) + 0x00000) +#define LED_BASE ((MICRO_SUPPORT_CARD_BASE) + 0x90000) +#define NS16550A_BASE ((MICRO_SUPPORT_CARD_BASE) + 0xb0000) +#define MICRO_SUPPORT_CARD_RESET ((MICRO_SUPPORT_CARD_BASE) + 0xd0034) +#define MICRO_SUPPORT_CARD_REVISION ((MICRO_SUPPORT_CARD_BASE) + 0xd00E0) + /* * 0: reset deassert, 1: reset * @@ -60,7 +63,7 @@ void support_card_init(void)
int board_eth_init(bd_t *bis) { - return smc911x_initialize(0, CONFIG_SMC911X_BASE); + return smc911x_initialize(0, SMC911X_BASE); } #endif
@@ -224,5 +227,5 @@ void led_puts(const char *s) s++; }
- writel(~val, CONFIG_SUPPORT_CARD_LED_BASE); + writel(~val, LED_BASE); } diff --git a/include/configs/uniphier.h b/include/configs/uniphier.h index a15838b..6405961 100644 --- a/include/configs/uniphier.h +++ b/include/configs/uniphier.h @@ -59,14 +59,6 @@ #define CONFIG_I2C_EEPROM #define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS 10
-/* - * Support card address map - */ -#define CONFIG_SUPPORT_CARD_BASE 0x43f00000 -#define CONFIG_SUPPORT_CARD_ETHER_BASE (CONFIG_SUPPORT_CARD_BASE + 0x00000000) -#define CONFIG_SUPPORT_CARD_LED_BASE (CONFIG_SUPPORT_CARD_BASE + 0x00090000) -#define CONFIG_SUPPORT_CARD_UART_BASE (CONFIG_SUPPORT_CARD_BASE + 0x000b0000) - #ifdef CONFIG_SYS_NS16550_SERIAL #define CONFIG_SYS_NS16550 #define CONFIG_SYS_NS16550_COM1 CONFIG_SUPPORT_CARD_UART_BASE @@ -81,7 +73,8 @@
#define CONFIG_SMC911X
-#define CONFIG_SMC911X_BASE CONFIG_SUPPORT_CARD_ETHER_BASE +/* dummy: referenced by examples/standalone/smc911x_eeprom.c */ +#define CONFIG_SMC911X_BASE 0 #define CONFIG_SMC911X_32_BIT
/*-----------------------------------------------------------------------

Without this, build fails if CONFIG_MICRO_SUPPORT_CARD is disabled.
Signed-off-by: Masahiro Yamada yamada.masahiro@socionext.com ---
arch/arm/mach-uniphier/spl.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/arch/arm/mach-uniphier/spl.c b/arch/arm/mach-uniphier/spl.c index 75d2989..2267b13 100644 --- a/arch/arm/mach-uniphier/spl.c +++ b/arch/arm/mach-uniphier/spl.c @@ -13,6 +13,10 @@ void __weak bcu_init(void) { };
+void __weak sbc_init(void) +{ +}; + void __weak sg_init(void) { };
participants (1)
-
Masahiro Yamada