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

2022-06-07 Thread Birger Koblitz
Hi,

On 07.06.22 11:10, Sander Vanheule wrote:
> On Tue, 2022-06-07 at 10:24 +0200, Birger Koblitz wrote:
>> 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;
> 
> We've gotten rid of _machine_restart and _machine_halt already, let's not 
> reintroduce them.
> 
> If you don't feel like writing a driver for the reset controller, perhaps 
> syscon-reboot [1] can be
> useful?
That sounds interesting, I'll try.

Cheers,
  Birger

___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


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

2022-06-07 Thread Sander Vanheule
On Tue, 2022-06-07 at 10:24 +0200, Birger Koblitz wrote:
> 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;

We've gotten rid of _machine_restart and _machine_halt already, let's not 
reintroduce them.

If you don't feel like writing a driver for the reset controller, perhaps 
syscon-reboot [1] can be
useful?

Best,
Sander

[1] 
https://mjmwired.net/kernel/Documentation/devicetree/bindings/power/reset/syscon-reboot.yaml


___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


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

2022-06-07 Thread Birger Koblitz
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 
> Signed-off-by: INAGAKI Hiroshi 
> Signed-off-by: Sander Vanheule 
> Tested-by: Bjørn Mork 
> ---
>  .../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)

___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel