[PATCH v1 5/5] realtek: remove hardcoded sys-led configurations

Birger Koblitz mail at birger-koblitz.de
Tue Jun 7 01:24:15 PDT 2022


Hi,

at least for the RTL931x, removing the rtl931x_setup() is not a good idea as the WDT reset does not work for that architecture.
The only way to get a working reset is via registering a reset handler:

static void __init rtl931x_setup(void)
{
	pr_info("Registering _machine_restart\n");
	_machine_restart = rtl931x_restart;
	_machine_halt = rtl931x_halt;

	// Enable system LED, no flashing
	sw_w32_mask(0, 3 << 12, RTL931X_LED_GLB_CTRL);
}

Cheers,
  Birger



On 07.06.22 09:50, Sander Vanheule wrote:
> Disabling the sys-led peripheral should be done via a pin controller,
> for which pinctrl-single nodes are present in the platform DTSI files.
> Drop the hardcoded per-platform sys-led configurations, and require
> things to be set up in the devicetree.
> 
> Co-developed-by: INAGAKI Hiroshi <musashino.open at gmail.com>
> Signed-off-by: INAGAKI Hiroshi <musashino.open at gmail.com>
> Signed-off-by: Sander Vanheule <sander at svanheule.net>
> Tested-by: Bjørn Mork <bjorn at mork.no>
> ---
>  .../files-5.10/arch/mips/rtl838x/setup.c      | 40 -------------------
>  1 file changed, 40 deletions(-)
> 
> diff --git a/target/linux/realtek/files-5.10/arch/mips/rtl838x/setup.c b/target/linux/realtek/files-5.10/arch/mips/rtl838x/setup.c
> index 55419c7b0b7a..df29b76bbf0f 100644
> --- a/target/linux/realtek/files-5.10/arch/mips/rtl838x/setup.c
> +++ b/target/linux/realtek/files-5.10/arch/mips/rtl838x/setup.c
> @@ -28,31 +28,6 @@
>  
>  extern struct rtl83xx_soc_info soc_info;
>  
> -static void __init rtl838x_setup(void)
> -{
> -	/* Setup System LED. Bit 15 then allows to toggle it */
> -	sw_w32_mask(0, 3 << 16, RTL838X_LED_GLB_CTRL);
> -}
> -
> -static void __init rtl839x_setup(void)
> -{
> -	/* Setup System LED. Bit 14 of RTL839X_LED_GLB_CTRL then allows to toggle it */
> -	sw_w32_mask(0, 3 << 15, RTL839X_LED_GLB_CTRL);
> -}
> -
> -static void __init rtl930x_setup(void)
> -{
> -	if (soc_info.id == 0x9302)
> -		sw_w32_mask(0, 3 << 13, RTL9302_LED_GLB_CTRL);
> -	else
> -		sw_w32_mask(0, 3 << 13, RTL930X_LED_GLB_CTRL);
> -}
> -
> -static void __init rtl931x_setup(void)
> -{
> -	sw_w32_mask(0, 3 << 12, RTL931X_LED_GLB_CTRL);
> -}
> -
>  void __init plat_mem_setup(void)
>  {
>  	void *dtb;
> @@ -71,21 +46,6 @@ void __init plat_mem_setup(void)
>  	 * parsed resulting in our memory appearing
>  	 */
>  	__dt_setup_arch(dtb);
> -
> -	switch (soc_info.family) {
> -	case RTL8380_FAMILY_ID:
> -		rtl838x_setup();
> -		break;
> -	case RTL8390_FAMILY_ID:
> -		rtl839x_setup();
> -		break;
> -	case RTL9300_FAMILY_ID:
> -		rtl930x_setup();
> -		break;
> -	case RTL9310_FAMILY_ID:
> -		rtl931x_setup();
> -		break;
> -	}
>  }
>  
>  void __init plat_time_init(void)



More information about the openwrt-devel mailing list