[PATCH v1 3/5] realtek: add sys-led disable pinctrl for rtl931x
Sander Vanheule
sander at svanheule.net
Tue Jun 7 02:49:20 PDT 2022
Hi Birger,
On Tue, 2022-06-07 at 11:26 +0200, Birger Koblitz wrote:
> Hi,
>
> On 07.06.22 11:04, Sander Vanheule wrote:
> > On Tue, 2022-06-07 at 10:15 +0200, Birger Koblitz wrote:
> > > Hi,
> > >
> > > has anyone tested that???
> >
> > I don't have any 931x hardware, but it is based on what you put into setup.c.
> What is in the setup.c makes the System LED solid on. It is the same for all
> the architectures:
> 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 rtl931x_setup(void)
> {
> sw_w32_mask(0, 3 << 12, RTL931X_LED_GLB_CTRL);
> }
>
> You are not using that to disable the system led on the 838x/839x, so why would it do something
> different on the RTL931x? Note that at that time it was not know how to toggle the LED, because
> that is somewhere else.
>
OK, it's clear I misunderstood what it was doing. Still, I don't think we should modify this setting
unconditionally, so I'll reword the commit message.
Best,
Sander
> >
> > > This does not make sense at all, there is no LED disable
> > > in the LED_GLB_CTRL register. Instead one needs to use RTL9310_MAC_L2_GLOBAL_CTRL2
> > >
> > > The following works nicely on the XS1930 and Edgecore:
> > >
> > > pinmux: pinmux at 1b001358 {
> > > compatible = "pinctrl-single";
> > > reg = <0x1b001358 0x4>;
> > >
> > > pinctrl-single,bit-per-mux;
> > > pinctrl-single,register-width = <32>;
> > > pinctrl-single,function-mask = <0x1>;
> > > #pinctrl-cells = <2>;
> > >
> > > /* Enable GPIO6 and GPIO7, possibly unknown others */
> > > pinmux_disable_jtag: disable_jtag {
> > > pinctrl-single,bits = <0x0 0x0 0x8000>;
> > > };
> > >
> > > pinmux_disable_sys_led: disable_sys_led {
> > > pinctrl-single,bits = <0x0 0x0 0x100>;
> > > };
> >
> > Thanks, I wasn't aware of these fields. Will update in v2.
> Good.
>
> >
> > > >
> > > > + pinmux_led: pinmux at 1b000600 {
> > > > + compatible = "pinctrl-single";
> > > > + reg = <0x1b000600 0x4>;
> > > > +
> > > > + pinctrl-single,bit-per-mux;
> > > > + pinctrl-single,register-width = <32>;
> > > > + pinctrl-single,function-mask = <0x1>;
> > > > + #pinctrl-cells = <2>;
> > > > +
> > > > + /* enable GPIO 0 */
> > > > + pinmux_disable_sys_led: disable_sys_led {
> > > > + pinctrl-single,bits = <0x0 0x3000 0x3000>;
> > > > + };
> >
> > This field, I assume, controls the toggling rate of the system led then. Would explain why it
> > has
> > two bits and is called SYS_LED_MODE.
> Yes, see above.
>
> Cheers,
> Birger
More information about the openwrt-devel
mailing list