Message ID | 20230809141622.231247-4-ada@thorsis.com |
---|---|
State | Changes Requested |
Delegated to: | Eugen Hristev |
Headers | show |
Series | at91: sam9x60-curiosity: Misc improvements | expand |
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 <ada@thorsis.com> > --- > .../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 = <AT91_PIOD 17 AT91_PERIPH_GPIO 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 <debug_uart.h> > #include <fdtdec.h> > #include <init.h> > +#include <led.h> > #include <asm/arch/at91_common.h> > #include <asm/arch/at91_rstc.h> > #include <asm/arch/at91_sfr.h> > @@ -18,6 +19,7 @@ > #include <asm/global_data.h> > #include <asm/io.h> > #include <asm/mach-types.h> > +#include <dm/ofnode.h> > > 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)
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 <ada@thorsis.com> > > --- > > .../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_PIOD 17 AT91_PERIPH_GPIO 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 <debug_uart.h> > > #include <fdtdec.h> > > #include <init.h> > > +#include <led.h> > > #include <asm/arch/at91_common.h> > > #include <asm/arch/at91_rstc.h> > > #include <asm/arch/at91_sfr.h> > > @@ -18,6 +19,7 @@ > > #include <asm/global_data.h> > > #include <asm/io.h> > > #include <asm/mach-types.h> > > +#include <dm/ofnode.h> > > 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) >
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_PIOD 17 AT91_PERIPH_GPIO 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 <debug_uart.h> #include <fdtdec.h> #include <init.h> +#include <led.h> #include <asm/arch/at91_common.h> #include <asm/arch/at91_rstc.h> #include <asm/arch/at91_sfr.h> @@ -18,6 +19,7 @@ #include <asm/global_data.h> #include <asm/io.h> #include <asm/mach-types.h> +#include <dm/ofnode.h> 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)
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 <ada@thorsis.com> --- .../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(+)