Re: [PATCH 3/4] at91: sam9x60-curiosity: Add proper LED support
Hello Eugen, Am Wed, Aug 16, 2023 at 03:49:54PM +0300 schrieb Eugen Hristev: > Hi Alexander, > > On 8/9/23 17:16, Alexander Dahl wrote: > > Copied dts pieces from Linux Kernel. Support is optional for now, to > > make it work the following options have to be enabled: CONFIG_LED, > > CONFIG_LED_GPIO, CONFIG_CMD_LED. > > > > Signed-off-by: Alexander Dahl > > --- > > .../dts/at91-sam9x60_curiosity-u-boot.dtsi| 18 +++ > > arch/arm/dts/at91-sam9x60_curiosity.dts | 30 +++ > > .../sam9x60_curiosity/sam9x60_curiosity.c | 18 +++ > > Can you please split the DT changes from the C file changes, namely if you > bring changes from Linux, add them in a sync commit indicating the commit > from Linux, and the changes to the board in a separate patch. Yes, I can do that in v2 of the series. FWIW this LED stuff and the button stuff from patch 4 is taken from Linux v6.4 and it has not changed in Linux master since (which is currently at v6.5-rc6-36-g4853c74bd7ab). Greets Alex > > Thanks ! > > > 3 files changed, 66 insertions(+) > > > > diff --git a/arch/arm/dts/at91-sam9x60_curiosity-u-boot.dtsi > > b/arch/arm/dts/at91-sam9x60_curiosity-u-boot.dtsi > > index a1b76e94d1..dd4623311c 100644 > > --- a/arch/arm/dts/at91-sam9x60_curiosity-u-boot.dtsi > > +++ b/arch/arm/dts/at91-sam9x60_curiosity-u-boot.dtsi > > @@ -20,6 +20,24 @@ > > chosen { > > bootph-all; > > }; > > + > > + config { > > + u-boot,boot-led = "blue"; > > + }; > > + > > + leds { > > + led-red { > > + default-state = "off"; > > + }; > > + > > + led-green { > > + default-state = "off"; > > + }; > > + > > + led-blue { > > + default-state = "off"; > > + }; > > + }; > > }; > > &clk32 { > > diff --git a/arch/arm/dts/at91-sam9x60_curiosity.dts > > b/arch/arm/dts/at91-sam9x60_curiosity.dts > > index 2547b4527c..244cacfe1b 100644 > > --- a/arch/arm/dts/at91-sam9x60_curiosity.dts > > +++ b/arch/arm/dts/at91-sam9x60_curiosity.dts > > @@ -33,6 +33,28 @@ > > }; > > }; > > + leds { > > + compatible = "gpio-leds"; > > + pinctrl-names = "default"; > > + pinctrl-0 = <&pinctrl_gpio_leds>; > > + > > + led-red { > > + label = "red"; > > + gpios = <&pioD 17 GPIO_ACTIVE_HIGH>; > > + }; > > + > > + led-green { > > + label = "green"; > > + gpios = <&pioD 19 GPIO_ACTIVE_HIGH>; > > + }; > > + > > + led-blue { > > + label = "blue"; > > + gpios = <&pioD 21 GPIO_ACTIVE_HIGH>; > > + linux,default-trigger = "heartbeat"; > > + }; > > + }; > > + > > onewire_tm: onewire { > > gpios = <&pioD 14 GPIO_ACTIVE_HIGH>; > > pinctrl-names = "default"; > > @@ -167,6 +189,14 @@ > > }; > > }; > > + leds { > > + pinctrl_gpio_leds: gpio-leds { > > + atmel,pins = > AT91_PINCTRL_NONE > > + AT91_PIOD 19 AT91_PERIPH_GPIO > > AT91_PINCTRL_NONE > > + AT91_PIOD 21 AT91_PERIPH_GPIO > > AT91_PINCTRL_NONE>; > > + }; > > + }; > > + > > nand { > > pinctrl_nand_oe_we: nand-oe-we-0 { > > atmel,pins = > > diff --git a/board/atmel/sam9x60_curiosity/sam9x60_curiosity.c > > b/board/atmel/sam9x60_curiosity/sam9x60_curiosity.c > > index 0fe0de9fde..f53d359404 100644 > > --- a/board/atmel/sam9x60_curiosity/sam9x60_curiosity.c > > +++ b/board/atmel/sam9x60_curiosity/sam9x60_curiosity.c > > @@ -9,6 +9,7 @@ > > #include > > #include > > #include > > +#include > > #include > > #include > > #include > > @@ -18,6 +19,7 @@ > > #include > > #include > > #include > > +#include > > extern void at91_pda_detect(void); > > @@ -27,9 +29,25 @@ void at91_prepare_cpu_var(void); > > static void board_leds_init(void) > > { > > +#if CONFIG_IS_ENABLED(LED) > > + const char *led_name; > > + struct udevice *dev; > > + int ret; > > + > > + led_name = ofnode_conf_read_str("u-boot,boot-led"); > > + if (!led_name) > > + return; > > + > > + ret = led_get_by_label(led_name, &dev); > > + if (ret) > > + return; > > + > > + led_set_state(dev, LEDST_ON); > > +#else > > at91_set_pio_output(AT91_PIO_PORTD, 17, 0); /* LED RED */ > > at91_set_pio_output(AT91_PIO_PORTD, 19, 0); /* LED GREEN */ > > at91_set_pio_output(AT91_PIO_PORTD, 21, 1); /* LED BLUE */ > > +#endif > > } > > int board_late_init(void) >
Re: [PATCH 3/4] at91: sam9x60-curiosity: Add proper LED support
Hi Alexander, On 8/9/23 17:16, Alexander Dahl wrote: Copied dts pieces from Linux Kernel. Support is optional for now, to make it work the following options have to be enabled: CONFIG_LED, CONFIG_LED_GPIO, CONFIG_CMD_LED. Signed-off-by: Alexander Dahl --- .../dts/at91-sam9x60_curiosity-u-boot.dtsi| 18 +++ arch/arm/dts/at91-sam9x60_curiosity.dts | 30 +++ .../sam9x60_curiosity/sam9x60_curiosity.c | 18 +++ Can you please split the DT changes from the C file changes, namely if you bring changes from Linux, add them in a sync commit indicating the commit from Linux, and the changes to the board in a separate patch. Thanks ! 3 files changed, 66 insertions(+) diff --git a/arch/arm/dts/at91-sam9x60_curiosity-u-boot.dtsi b/arch/arm/dts/at91-sam9x60_curiosity-u-boot.dtsi index a1b76e94d1..dd4623311c 100644 --- a/arch/arm/dts/at91-sam9x60_curiosity-u-boot.dtsi +++ b/arch/arm/dts/at91-sam9x60_curiosity-u-boot.dtsi @@ -20,6 +20,24 @@ chosen { bootph-all; }; + + config { + u-boot,boot-led = "blue"; + }; + + leds { + led-red { + default-state = "off"; + }; + + led-green { + default-state = "off"; + }; + + led-blue { + default-state = "off"; + }; + }; }; &clk32 { diff --git a/arch/arm/dts/at91-sam9x60_curiosity.dts b/arch/arm/dts/at91-sam9x60_curiosity.dts index 2547b4527c..244cacfe1b 100644 --- a/arch/arm/dts/at91-sam9x60_curiosity.dts +++ b/arch/arm/dts/at91-sam9x60_curiosity.dts @@ -33,6 +33,28 @@ }; }; + leds { + compatible = "gpio-leds"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_gpio_leds>; + + led-red { + label = "red"; + gpios = <&pioD 17 GPIO_ACTIVE_HIGH>; + }; + + led-green { + label = "green"; + gpios = <&pioD 19 GPIO_ACTIVE_HIGH>; + }; + + led-blue { + label = "blue"; + gpios = <&pioD 21 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "heartbeat"; + }; + }; + onewire_tm: onewire { gpios = <&pioD 14 GPIO_ACTIVE_HIGH>; pinctrl-names = "default"; @@ -167,6 +189,14 @@ }; }; + leds { + pinctrl_gpio_leds: gpio-leds { + atmel,pins = ; + }; + }; + nand { pinctrl_nand_oe_we: nand-oe-we-0 { atmel,pins = diff --git a/board/atmel/sam9x60_curiosity/sam9x60_curiosity.c b/board/atmel/sam9x60_curiosity/sam9x60_curiosity.c index 0fe0de9fde..f53d359404 100644 --- a/board/atmel/sam9x60_curiosity/sam9x60_curiosity.c +++ b/board/atmel/sam9x60_curiosity/sam9x60_curiosity.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -18,6 +19,7 @@ #include #include #include +#include extern void at91_pda_detect(void); @@ -27,9 +29,25 @@ void at91_prepare_cpu_var(void); static void board_leds_init(void) { +#if CONFIG_IS_ENABLED(LED) + const char *led_name; + struct udevice *dev; + int ret; + + led_name = ofnode_conf_read_str("u-boot,boot-led"); + if (!led_name) + return; + + ret = led_get_by_label(led_name, &dev); + if (ret) + return; + + led_set_state(dev, LEDST_ON); +#else at91_set_pio_output(AT91_PIO_PORTD, 17, 0); /* LED RED */ at91_set_pio_output(AT91_PIO_PORTD, 19, 0); /* LED GREEN */ at91_set_pio_output(AT91_PIO_PORTD, 21, 1); /* LED BLUE */ +#endif } int board_late_init(void)
[PATCH 3/4] at91: sam9x60-curiosity: Add proper LED support
Copied dts pieces from Linux Kernel. Support is optional for now, to make it work the following options have to be enabled: CONFIG_LED, CONFIG_LED_GPIO, CONFIG_CMD_LED. Signed-off-by: Alexander Dahl --- .../dts/at91-sam9x60_curiosity-u-boot.dtsi| 18 +++ arch/arm/dts/at91-sam9x60_curiosity.dts | 30 +++ .../sam9x60_curiosity/sam9x60_curiosity.c | 18 +++ 3 files changed, 66 insertions(+) diff --git a/arch/arm/dts/at91-sam9x60_curiosity-u-boot.dtsi b/arch/arm/dts/at91-sam9x60_curiosity-u-boot.dtsi index a1b76e94d1..dd4623311c 100644 --- a/arch/arm/dts/at91-sam9x60_curiosity-u-boot.dtsi +++ b/arch/arm/dts/at91-sam9x60_curiosity-u-boot.dtsi @@ -20,6 +20,24 @@ chosen { bootph-all; }; + + config { + u-boot,boot-led = "blue"; + }; + + leds { + led-red { + default-state = "off"; + }; + + led-green { + default-state = "off"; + }; + + led-blue { + default-state = "off"; + }; + }; }; &clk32 { diff --git a/arch/arm/dts/at91-sam9x60_curiosity.dts b/arch/arm/dts/at91-sam9x60_curiosity.dts index 2547b4527c..244cacfe1b 100644 --- a/arch/arm/dts/at91-sam9x60_curiosity.dts +++ b/arch/arm/dts/at91-sam9x60_curiosity.dts @@ -33,6 +33,28 @@ }; }; + leds { + compatible = "gpio-leds"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_gpio_leds>; + + led-red { + label = "red"; + gpios = <&pioD 17 GPIO_ACTIVE_HIGH>; + }; + + led-green { + label = "green"; + gpios = <&pioD 19 GPIO_ACTIVE_HIGH>; + }; + + led-blue { + label = "blue"; + gpios = <&pioD 21 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "heartbeat"; + }; + }; + onewire_tm: onewire { gpios = <&pioD 14 GPIO_ACTIVE_HIGH>; pinctrl-names = "default"; @@ -167,6 +189,14 @@ }; }; + leds { + pinctrl_gpio_leds: gpio-leds { + atmel,pins = ; + }; + }; + nand { pinctrl_nand_oe_we: nand-oe-we-0 { atmel,pins = diff --git a/board/atmel/sam9x60_curiosity/sam9x60_curiosity.c b/board/atmel/sam9x60_curiosity/sam9x60_curiosity.c index 0fe0de9fde..f53d359404 100644 --- a/board/atmel/sam9x60_curiosity/sam9x60_curiosity.c +++ b/board/atmel/sam9x60_curiosity/sam9x60_curiosity.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -18,6 +19,7 @@ #include #include #include +#include extern void at91_pda_detect(void); @@ -27,9 +29,25 @@ void at91_prepare_cpu_var(void); static void board_leds_init(void) { +#if CONFIG_IS_ENABLED(LED) + const char *led_name; + struct udevice *dev; + int ret; + + led_name = ofnode_conf_read_str("u-boot,boot-led"); + if (!led_name) + return; + + ret = led_get_by_label(led_name, &dev); + if (ret) + return; + + led_set_state(dev, LEDST_ON); +#else at91_set_pio_output(AT91_PIO_PORTD, 17, 0); /* LED RED */ at91_set_pio_output(AT91_PIO_PORTD, 19, 0); /* LED GREEN */ at91_set_pio_output(AT91_PIO_PORTD, 21, 1); /* LED BLUE */ +#endif } int board_late_init(void) -- 2.30.2