Re: [PATCH 3/4] at91: sam9x60-curiosity: Add proper LED support

2023-08-16 Thread Alexander Dahl
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";
> > +   };
> > +   };
> >   };
> >{
> > 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 = <_gpio_leds>;
> > +
> > +   led-red {
> > +   label = "red";
> > +   gpios = < 17 GPIO_ACTIVE_HIGH>;
> > +   };
> > +
> > +   led-green {
> > +   label = "green";
> > +   gpios = < 19 GPIO_ACTIVE_HIGH>;
> > +   };
> > +
> > +   led-blue {
> > +   label = "blue";
> > +   gpios = < 21 GPIO_ACTIVE_HIGH>;
> > +   linux,default-trigger = "heartbeat";
> > +   };
> > +   };
> > +
> > onewire_tm: onewire {
> > gpios = < 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, );
> > +   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

2023-08-16 Thread 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.


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";
+   };
+   };
  };
  
   {

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 = <_gpio_leds>;
+
+   led-red {
+   label = "red";
+   gpios = < 17 GPIO_ACTIVE_HIGH>;
+   };
+
+   led-green {
+   label = "green";
+   gpios = < 19 GPIO_ACTIVE_HIGH>;
+   };
+
+   led-blue {
+   label = "blue";
+   gpios = < 21 GPIO_ACTIVE_HIGH>;
+   linux,default-trigger = "heartbeat";
+   };
+   };
+
onewire_tm: onewire {
gpios = < 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, );
+   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

2023-08-09 Thread Alexander Dahl
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";
+   };
+   };
 };
 
  {
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 = <_gpio_leds>;
+
+   led-red {
+   label = "red";
+   gpios = < 17 GPIO_ACTIVE_HIGH>;
+   };
+
+   led-green {
+   label = "green";
+   gpios = < 19 GPIO_ACTIVE_HIGH>;
+   };
+
+   led-blue {
+   label = "blue";
+   gpios = < 21 GPIO_ACTIVE_HIGH>;
+   linux,default-trigger = "heartbeat";
+   };
+   };
+
onewire_tm: onewire {
gpios = < 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, );
+   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