diff options
author | Uri Mashiach <uri.mashiach@compulab.co.il> | 2017-01-19 10:51:45 +0200 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2017-01-21 15:12:33 -0500 |
commit | 2d8d190c8394b43c0989cdb04a50cb48d4e1f8da (patch) | |
tree | a19e034f406aba9bfc07e8ef0d4fafc6fa4a04b7 /board/motionpro | |
parent | 79267edd10fde0815c382157b9cb280166637fac (diff) | |
download | u-boot-2d8d190c8394b43c0989cdb04a50cb48d4e1f8da.tar.gz |
status_led: Kconfig migration
Move all of the status LED feature to drivers/led/Kconfig.
The LED status definitions were moved from the board configuration
files to the defconfig files.
TBD: Move all of the definitions in the include/status_led.h to the
relevant board's defconfig files.
Tested boards: CL-SOM-AM57x, CM-T335
Signed-off-by: Uri Mashiach <uri.mashiach@compulab.co.il>
Diffstat (limited to 'board/motionpro')
-rw-r--r-- | board/motionpro/motionpro.c | 45 |
1 files changed, 32 insertions, 13 deletions
diff --git a/board/motionpro/motionpro.c b/board/motionpro/motionpro.c index dc237c1ced..7fa81b8677 100644 --- a/board/motionpro/motionpro.c +++ b/board/motionpro/motionpro.c @@ -15,9 +15,9 @@ #include <miiphy.h> #include <libfdt.h> -#if defined(CONFIG_STATUS_LED) +#if defined(CONFIG_LED_STATUS) #include <status_led.h> -#endif /* CONFIG_STATUS_LED */ +#endif /* CONFIG_LED_STATUS */ /* Kollmorgen DPR initialization data */ struct init_elem { @@ -194,27 +194,46 @@ int ft_board_setup(void *blob, bd_t *bd) #endif /* CONFIG_OF_BOARD_SETUP */ -#if defined(CONFIG_STATUS_LED) -void __led_init(led_id_t regaddr, int state) +#if defined(CONFIG_LED_STATUS) +vu_long *regcode_to_regaddr(led_id_t regcode) { - *((vu_long *) regaddr) |= ENABLE_GPIO_OUT; + /* GPT Enable and Mode Select Register address */ + vu_long *reg_translate[] = { + (vu_long *)MPC5XXX_GPT6_ENABLE, + (vu_long *)MPC5XXX_GPT7_ENABLE, + }; + + if (ARRAY_SIZE(reg_translate) <= regcode) + return NULL; + return reg_translate[regcode]; +} + +void __led_init(led_id_t regcode, int state) +{ + vu_long *regaddr = regcode_to_regaddr(regcode); + + *regaddr |= ENABLE_GPIO_OUT; - if (state == STATUS_LED_ON) + if (state == CONFIG_LED_STATUS_ON) *((vu_long *) regaddr) |= LED_ON; else *((vu_long *) regaddr) &= ~LED_ON; } -void __led_set(led_id_t regaddr, int state) +void __led_set(led_id_t regcode, int state) { - if (state == STATUS_LED_ON) - *((vu_long *) regaddr) |= LED_ON; + vu_long *regaddr = regcode_to_regaddr(regcode); + + if (state == CONFIG_LED_STATUS_ON) + *regaddr |= LED_ON; else - *((vu_long *) regaddr) &= ~LED_ON; + *regaddr &= ~LED_ON; } -void __led_toggle(led_id_t regaddr) +void __led_toggle(led_id_t regcode) { - *((vu_long *) regaddr) ^= LED_ON; + vu_long *regaddr = regcode_to_regaddr(regcode); + + *regaddr ^= LED_ON; } -#endif /* CONFIG_STATUS_LED */ +#endif /* CONFIG_LED_STATUS */ |