All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 1/2] rockchip: rk3399: fix incorrect ifdef check on SPL_DM_REGULATOR
@ 2022-07-15 15:09 Quentin Schulz
  2022-07-15 15:09 ` [PATCH v2 2/2] rockchip: rk3399: fix incorrect ifdef check on SPL_GPIO Quentin Schulz
  2022-07-18 20:05 ` [SPAM] [PATCH v2 1/2] rockchip: rk3399: fix incorrect ifdef check on SPL_DM_REGULATOR Xavier Drudis Ferran
  0 siblings, 2 replies; 5+ messages in thread
From: Quentin Schulz @ 2022-07-15 15:09 UTC (permalink / raw)
  Cc: sjg, philipp.tomsich, kever.yang, alpernebiyasak, email2tema,
	jagan, u-boot, Quentin Schulz, Quentin Schulz

From: Quentin Schulz <quentin.schulz@theobroma-systems.com>

The check to perform is on CONFIG_SPL_DM_REGULATOR and not
SPL_DM_REGULATOR. Also switch to in-code check instead of ifdefs.

Fixes: 07586ee4322a ("rockchip: rk3399: Support common spl_board_init")
Cc: Quentin Schulz <foss+uboot@0leil.net>
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
---

v2:
 - use IS_ENABLED checks,

 arch/arm/mach-rockchip/rk3399/rk3399.c | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/arch/arm/mach-rockchip/rk3399/rk3399.c b/arch/arm/mach-rockchip/rk3399/rk3399.c
index de11a3fa30..920da22307 100644
--- a/arch/arm/mach-rockchip/rk3399/rk3399.c
+++ b/arch/arm/mach-rockchip/rk3399/rk3399.c
@@ -275,13 +275,14 @@ void spl_board_init(void)
 		rk3399_force_power_on_reset();
 #endif
 
-#if defined(SPL_DM_REGULATOR)
-	/*
-	 * Turning the eMMC and SPI back on (if disabled via the Qseven
-	 * BIOS_ENABLE) signal is done through a always-on regulator).
-	 */
-	if (regulators_enable_boot_on(false))
-		debug("%s: Cannot enable boot on regulator\n", __func__);
-#endif
+	if (IS_ENABLED(CONFIG_SPL_DM_REGULATOR)) {
+		/*
+		 * Turning the eMMC and SPI back on (if disabled via the Qseven
+		 * BIOS_ENABLE) signal is done through a always-on regulator).
+		 */
+		if (regulators_enable_boot_on(false))
+			debug("%s: Cannot enable boot on regulator\n",
+			      __func__);
+	}
 }
 #endif
-- 
2.36.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH v2 2/2] rockchip: rk3399: fix incorrect ifdef check on SPL_GPIO
  2022-07-15 15:09 [PATCH v2 1/2] rockchip: rk3399: fix incorrect ifdef check on SPL_DM_REGULATOR Quentin Schulz
@ 2022-07-15 15:09 ` Quentin Schulz
  2022-07-18  9:53   ` [SPAM] " Xavier Drudis Ferran
  2022-07-18 20:02   ` Xavier Drudis Ferran
  2022-07-18 20:05 ` [SPAM] [PATCH v2 1/2] rockchip: rk3399: fix incorrect ifdef check on SPL_DM_REGULATOR Xavier Drudis Ferran
  1 sibling, 2 replies; 5+ messages in thread
From: Quentin Schulz @ 2022-07-15 15:09 UTC (permalink / raw)
  Cc: sjg, philipp.tomsich, kever.yang, alpernebiyasak, email2tema,
	jagan, u-boot, Quentin Schulz, Quentin Schulz

From: Quentin Schulz <quentin.schulz@theobroma-systems.com>

The check to perform is on CONFIG_SPL_GPIO and not SPL_GPIO.
Because this was never compiled in, it missed an include of cru.h that
was not detected before. Let's include it too.

Also switch to IS_ENABLED ifdef and in-code check.

Fixes: 07586ee4322a ("rockchip: rk3399: Support common spl_board_init")
Cc: Quentin Schulz <foss+uboot@0leil.net>
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
---

v2:
 - use IS_ENABLED checks,

 arch/arm/mach-rockchip/rk3399/rk3399.c | 45 ++++++++++++++------------
 1 file changed, 24 insertions(+), 21 deletions(-)

diff --git a/arch/arm/mach-rockchip/rk3399/rk3399.c b/arch/arm/mach-rockchip/rk3399/rk3399.c
index 920da22307..db8a6cb83a 100644
--- a/arch/arm/mach-rockchip/rk3399/rk3399.c
+++ b/arch/arm/mach-rockchip/rk3399/rk3399.c
@@ -221,7 +221,9 @@ void spl_perform_fixups(struct spl_image_info *spl_image)
 			   "u-boot,spl-boot-device", boot_ofpath);
 }
 
-#if defined(SPL_GPIO)
+#if IS_ENABLED(CONFIG_SPL_GPIO)
+
+#include <asm/arch-rockchip/cru.h>
 static void rk3399_force_power_on_reset(void)
 {
 	ofnode node;
@@ -253,27 +255,28 @@ void spl_board_init(void)
 {
 	led_setup();
 
-#if defined(SPL_GPIO)
-	struct rockchip_cru *cru = rockchip_get_cru();
+	if (IS_ENABLED(CONFIG_SPL_GPIO)) {
+		struct rockchip_cru *cru = rockchip_get_cru();
 
-	/*
-	 * The RK3399 resets only 'almost all logic' (see also in the TRM
-	 * "3.9.4 Global software reset"), when issuing a software reset.
-	 * This may cause issues during boot-up for some configurations of
-	 * the application software stack.
-	 *
-	 * To work around this, we test whether the last reset reason was
-	 * a power-on reset and (if not) issue an overtemp-reset to reset
-	 * the entire module.
-	 *
-	 * While this was previously fixed by modifying the various places
-	 * that could generate a software reset (e.g. U-Boot's sysreset
-	 * driver, the ATF or Linux), we now have it here to ensure that
-	 * we no longer have to track this through the various components.
-	 */
-	if (cru->glb_rst_st != 0)
-		rk3399_force_power_on_reset();
-#endif
+		/*
+		 * The RK3399 resets only 'almost all logic' (see also in the
+		 * TRM "3.9.4 Global software reset"), when issuing a software
+		 * reset. This may cause issues during boot-up for some
+		 * configurations of the application software stack.
+		 *
+		 * To work around this, we test whether the last reset reason
+		 * was a power-on reset and (if not) issue an overtemp-reset to
+		 * reset the entire module.
+		 *
+		 * While this was previously fixed by modifying the various
+		 * places that could generate a software reset (e.g. U-Boot's
+		 * sysreset driver, the ATF or Linux), we now have it here to
+		 * ensure that we no longer have to track this through the
+		 * various components.
+		 */
+		if (cru->glb_rst_st != 0)
+			rk3399_force_power_on_reset();
+	}
 
 	if (IS_ENABLED(CONFIG_SPL_DM_REGULATOR)) {
 		/*
-- 
2.36.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [SPAM] [PATCH v2 2/2] rockchip: rk3399: fix incorrect ifdef check on SPL_GPIO
  2022-07-15 15:09 ` [PATCH v2 2/2] rockchip: rk3399: fix incorrect ifdef check on SPL_GPIO Quentin Schulz
@ 2022-07-18  9:53   ` Xavier Drudis Ferran
  2022-07-18 20:02   ` Xavier Drudis Ferran
  1 sibling, 0 replies; 5+ messages in thread
From: Xavier Drudis Ferran @ 2022-07-18  9:53 UTC (permalink / raw)
  To: Quentin Schulz
  Cc: sjg, philipp.tomsich, kever.yang, alpernebiyasak, email2tema,
	jagan, u-boot, Quentin Schulz

El Fri, Jul 15, 2022 at 05:09:49PM +0200, Quentin Schulz deia:
> From: Quentin Schulz <quentin.schulz@theobroma-systems.com>
> 
> The check to perform is on CONFIG_SPL_GPIO and not SPL_GPIO.
> Because this was never compiled in, it missed an include of cru.h that
> was not detected before. Let's include it too.
> 
> Also switch to IS_ENABLED ifdef and in-code check.
>

Thank you. That helps when CONGIF_SPL_GPIO is enabled.
 But in case CONFIG_SPL_GPIO is disabled...
 
> Fixes: 07586ee4322a ("rockchip: rk3399: Support common spl_board_init")
> Cc: Quentin Schulz <foss+uboot@0leil.net>
> Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
> ---
> 
> v2:
>  - use IS_ENABLED checks,
> 
>  arch/arm/mach-rockchip/rk3399/rk3399.c | 45 ++++++++++++++------------
>  1 file changed, 24 insertions(+), 21 deletions(-)
> 
> diff --git a/arch/arm/mach-rockchip/rk3399/rk3399.c b/arch/arm/mach-rockchip/rk3399/rk3399.c
> index 920da22307..db8a6cb83a 100644
> --- a/arch/arm/mach-rockchip/rk3399/rk3399.c
> +++ b/arch/arm/mach-rockchip/rk3399/rk3399.c
> @@ -221,7 +221,9 @@ void spl_perform_fixups(struct spl_image_info *spl_image)
>  			   "u-boot,spl-boot-device", boot_ofpath);
>  }
>  
> -#if defined(SPL_GPIO)
> +#if IS_ENABLED(CONFIG_SPL_GPIO)
> +
> +#include <asm/arch-rockchip/cru.h>

then (if CONFIG_SPL_GPIO is disabled...) the include is not in effect, but the call to 

>  static void rk3399_force_power_on_reset(void)
>  {
>  	ofnode node;

the  #endif for that #if is somewhere over here.

> @@ -253,27 +255,28 @@ void spl_board_init(void)
>  {
>  	led_setup();
>  
> -#if defined(SPL_GPIO)
> -	struct rockchip_cru *cru = rockchip_get_cru();
> +	if (IS_ENABLED(CONFIG_SPL_GPIO)) {
> +		struct rockchip_cru *cru = rockchip_get_cru();
>  
[...]
> +		/*
[...]
> +		 */
> +		if (cru->glb_rst_st != 0)

This gives me a compilation error (rock-pi-4, CONFIG_SPL_GPIO disabled), 
because of the missing include defining rockchip_cru
(and glb_rst_st as a member of it)

> +			rk3399_force_power_on_reset();

This gives a warning, because the function declaration is #ifdefed out.

So we could leave the include outside the #if defined(SPL_GPIO)
and add an inline dummy function in #else, 

or we could change the if (IS_ENABLED(CONFIG_SPL_GPIO)) to 
#if (IS_ENABLED(CONFIG_SPL_GPIO))

I think the first is preferred in U-Boot, but not sure if that might
somehow make SPL bigger or something. I don't think so.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [SPAM] [PATCH v2 2/2] rockchip: rk3399: fix incorrect ifdef check on SPL_GPIO
  2022-07-15 15:09 ` [PATCH v2 2/2] rockchip: rk3399: fix incorrect ifdef check on SPL_GPIO Quentin Schulz
  2022-07-18  9:53   ` [SPAM] " Xavier Drudis Ferran
@ 2022-07-18 20:02   ` Xavier Drudis Ferran
  1 sibling, 0 replies; 5+ messages in thread
From: Xavier Drudis Ferran @ 2022-07-18 20:02 UTC (permalink / raw)
  To: Quentin Schulz
  Cc: sjg, philipp.tomsich, kever.yang, alpernebiyasak, email2tema,
	jagan, u-boot, Quentin Schulz

El Fri, Jul 15, 2022 at 05:09:49PM +0200, Quentin Schulz deia:
> From: Quentin Schulz <quentin.schulz@theobroma-systems.com>
> 
> The check to perform is on CONFIG_SPL_GPIO and not SPL_GPIO.
> Because this was never compiled in, it missed an include of cru.h that
> was not detected before. Let's include it too.
> 
> Also switch to IS_ENABLED ifdef and in-code check.
> 
> Fixes: 07586ee4322a ("rockchip: rk3399: Support common spl_board_init")
> Cc: Quentin Schulz <foss+uboot@0leil.net>
> Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
> ---
>

I've tested this on a Rock-Pi-4B, but with the patch below on top 
and I haven't seen any regression. So, with this small correction: 

Tested-by: Xavier Drudis Ferran <xdrudis@tinet.cat>
 
> v2:
>  - use IS_ENABLED checks,
> 
>  arch/arm/mach-rockchip/rk3399/rk3399.c | 45 ++++++++++++++------------
>  1 file changed, 24 insertions(+), 21 deletions(-)
> 
> diff --git a/arch/arm/mach-rockchip/rk3399/rk3399.c b/arch/arm/mach-rockchip/rk3399/rk3399.c
> index 920da22307..db8a6cb83a 100644
> --- a/arch/arm/mach-rockchip/rk3399/rk3399.c
> +++ b/arch/arm/mach-rockchip/rk3399/rk3399.c
> @@ -221,7 +221,9 @@ void spl_perform_fixups(struct spl_image_info *spl_image)
>  			   "u-boot,spl-boot-device", boot_ofpath);
>  }
>  
> -#if defined(SPL_GPIO)
> +#if IS_ENABLED(CONFIG_SPL_GPIO)
> +
> +#include <asm/arch-rockchip/cru.h>
>  static void rk3399_force_power_on_reset(void)
>  {
>  	ofnode node;
> @@ -253,27 +255,28 @@ void spl_board_init(void)
>  {
>  	led_setup();
>  
> -#if defined(SPL_GPIO)
> -	struct rockchip_cru *cru = rockchip_get_cru();
> +	if (IS_ENABLED(CONFIG_SPL_GPIO)) {
> +		struct rockchip_cru *cru = rockchip_get_cru();
>  
> -	/*
> -	 * The RK3399 resets only 'almost all logic' (see also in the TRM
> -	 * "3.9.4 Global software reset"), when issuing a software reset.
> -	 * This may cause issues during boot-up for some configurations of
> -	 * the application software stack.
> -	 *
> -	 * To work around this, we test whether the last reset reason was
> -	 * a power-on reset and (if not) issue an overtemp-reset to reset
> -	 * the entire module.
> -	 *
> -	 * While this was previously fixed by modifying the various places
> -	 * that could generate a software reset (e.g. U-Boot's sysreset
> -	 * driver, the ATF or Linux), we now have it here to ensure that
> -	 * we no longer have to track this through the various components.
> -	 */
> -	if (cru->glb_rst_st != 0)
> -		rk3399_force_power_on_reset();
> -#endif
> +		/*
> +		 * The RK3399 resets only 'almost all logic' (see also in the
> +		 * TRM "3.9.4 Global software reset"), when issuing a software
> +		 * reset. This may cause issues during boot-up for some
> +		 * configurations of the application software stack.
> +		 *
> +		 * To work around this, we test whether the last reset reason
> +		 * was a power-on reset and (if not) issue an overtemp-reset to
> +		 * reset the entire module.
> +		 *
> +		 * While this was previously fixed by modifying the various
> +		 * places that could generate a software reset (e.g. U-Boot's
> +		 * sysreset driver, the ATF or Linux), we now have it here to
> +		 * ensure that we no longer have to track this through the
> +		 * various components.
> +		 */
> +		if (cru->glb_rst_st != 0)
> +			rk3399_force_power_on_reset();
> +	}
>  
>  	if (IS_ENABLED(CONFIG_SPL_DM_REGULATOR)) {
>  		/*
> -- 
> 2.36.1
> 

The small correction (now that I think of it, the include might as well go at the top of file): 

---
 arch/arm/mach-rockchip/rk3399/rk3399.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/arch/arm/mach-rockchip/rk3399/rk3399.c b/arch/arm/mach-rockchip/rk3399/rk3399.c
index fced5c7e21..10b911f998 100644
--- a/arch/arm/mach-rockchip/rk3399/rk3399.c
+++ b/arch/arm/mach-rockchip/rk3399/rk3399.c
@@ -221,9 +221,9 @@ void spl_perform_fixups(struct spl_image_info *spl_image)
 			   "u-boot,spl-boot-device", boot_ofpath);
 }
 
+#include <asm/arch-rockchip/cru.h>
 #if IS_ENABLED(CONFIG_SPL_GPIO)
 
-#include <asm/arch-rockchip/cru.h>
 static void rk3399_force_power_on_reset(void)
 {
 	ofnode node;
@@ -245,6 +245,10 @@ static void rk3399_force_power_on_reset(void)
 
 	dm_gpio_set_value(&sysreset_gpio, 1);
 }
+#else
+static inline void rk3399_force_power_on_reset(void)
+{
+}
 #endif
 
 void __weak led_setup(void)
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [SPAM] [PATCH v2 1/2] rockchip: rk3399: fix incorrect ifdef check on SPL_DM_REGULATOR
  2022-07-15 15:09 [PATCH v2 1/2] rockchip: rk3399: fix incorrect ifdef check on SPL_DM_REGULATOR Quentin Schulz
  2022-07-15 15:09 ` [PATCH v2 2/2] rockchip: rk3399: fix incorrect ifdef check on SPL_GPIO Quentin Schulz
@ 2022-07-18 20:05 ` Xavier Drudis Ferran
  1 sibling, 0 replies; 5+ messages in thread
From: Xavier Drudis Ferran @ 2022-07-18 20:05 UTC (permalink / raw)
  To: Quentin Schulz
  Cc: sjg, philipp.tomsich, kever.yang, alpernebiyasak, email2tema,
	jagan, u-boot, Quentin Schulz

El Fri, Jul 15, 2022 at 05:09:48PM +0200, Quentin Schulz deia:
> From: Quentin Schulz <quentin.schulz@theobroma-systems.com>
> 
> The check to perform is on CONFIG_SPL_DM_REGULATOR and not
> SPL_DM_REGULATOR. Also switch to in-code check instead of ifdefs.
>

Tested it on a Rock-Pi-4 with the patch below on top.
So with the small correction: 

Tested-by: Xavier Drudis Ferran <xdrudis@tinet.cat>
 
> Fixes: 07586ee4322a ("rockchip: rk3399: Support common spl_board_init")
> Cc: Quentin Schulz <foss+uboot@0leil.net>
> Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
> ---
> 
> v2:
>  - use IS_ENABLED checks,
> 
>  arch/arm/mach-rockchip/rk3399/rk3399.c | 17 +++++++++--------
>  1 file changed, 9 insertions(+), 8 deletions(-)
> 
> diff --git a/arch/arm/mach-rockchip/rk3399/rk3399.c b/arch/arm/mach-rockchip/rk3399/rk3399.c
> index de11a3fa30..920da22307 100644
> --- a/arch/arm/mach-rockchip/rk3399/rk3399.c
> +++ b/arch/arm/mach-rockchip/rk3399/rk3399.c
> @@ -275,13 +275,14 @@ void spl_board_init(void)
>  		rk3399_force_power_on_reset();
>  #endif
>  
> -#if defined(SPL_DM_REGULATOR)
> -	/*
> -	 * Turning the eMMC and SPI back on (if disabled via the Qseven
> -	 * BIOS_ENABLE) signal is done through a always-on regulator).
> -	 */
> -	if (regulators_enable_boot_on(false))
> -		debug("%s: Cannot enable boot on regulator\n", __func__);
> -#endif
> +	if (IS_ENABLED(CONFIG_SPL_DM_REGULATOR)) {
> +		/*
> +		 * Turning the eMMC and SPI back on (if disabled via the Qseven
> +		 * BIOS_ENABLE) signal is done through a always-on regulator).
> +		 */
> +		if (regulators_enable_boot_on(false))
> +			debug("%s: Cannot enable boot on regulator\n",
> +			      __func__);
> +	}
>  }
>  #endif
> -- 
> 2.36.1
> 

The small correction:

---
 common/spl/spl.c          | 2 --
 include/power/regulator.h | 5 +++++
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/common/spl/spl.c b/common/spl/spl.c
index 70c11aa275..6ab997279d 100644
--- a/common/spl/spl.c
+++ b/common/spl/spl.c
@@ -39,9 +39,7 @@
 #include <fdt_support.h>
 #include <bootcount.h>
 #include <wdt.h>
-#if CONFIG_IS_ENABLED(DM_REGULATOR)
 #include <power/regulator.h>
-#endif
 
 DECLARE_GLOBAL_DATA_PTR;
 DECLARE_BINMAN_MAGIC_SYM;
diff --git a/include/power/regulator.h b/include/power/regulator.h
index ff1bfc2435..4bce61dd9f 100644
--- a/include/power/regulator.h
+++ b/include/power/regulator.h
@@ -631,6 +631,11 @@ static inline int regulators_enable_boot_on(bool verbose)
 	return -ENOSYS;
 }
 
+static inline int regulators_enable_boot_off(bool verbose)
+{
+	return -ENOSYS;
+}
+
 static inline int regulator_autoset(struct udevice *dev)
 {
 	return -ENOSYS;
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-07-18 20:05 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-15 15:09 [PATCH v2 1/2] rockchip: rk3399: fix incorrect ifdef check on SPL_DM_REGULATOR Quentin Schulz
2022-07-15 15:09 ` [PATCH v2 2/2] rockchip: rk3399: fix incorrect ifdef check on SPL_GPIO Quentin Schulz
2022-07-18  9:53   ` [SPAM] " Xavier Drudis Ferran
2022-07-18 20:02   ` Xavier Drudis Ferran
2022-07-18 20:05 ` [SPAM] [PATCH v2 1/2] rockchip: rk3399: fix incorrect ifdef check on SPL_DM_REGULATOR Xavier Drudis Ferran

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.