Add gpio-poweroff node to allow the board to power itself off after
shutdown by disabling the SYSTEM and CPUX regulators (U5 resp. U6).
The RST button can be used to restart the board.
Signed-off-by: Michael Klein <[email protected]>
---
arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts b/arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts
index 4c6704e4c57e..76e79e6db733 100644
--- a/arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts
+++ b/arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts
@@ -46,6 +46,11 @@ sw4 {
};
};
+ gpio_poweroff {
+ compatible = "gpio-poweroff";
+ gpios = <&r_pio 0 8 GPIO_ACTIVE_LOW>; /* PL8 */
+ };
+
reg_vdd_cpux: vdd-cpux-regulator {
compatible = "regulator-gpio";
regulator-name = "vdd-cpux";
--
2.29.2
On 11/23/20 10:10 AM, Michael Klein wrote:
> Add gpio-poweroff node to allow the board to power itself off after
> shutdown by disabling the SYSTEM and CPUX regulators (U5 resp. U6).
> The RST button can be used to restart the board.
The PSCI client will override this driver once the PSCI implementation
is upgraded to v0.2 or newer functions. So having this around should
cause no compatibility issues (although it would print an error in dmesg
at that point). This seems like a reasonable thing to do for the other
H2+/H3 boards that use a similar regulator layout.
Reviewed-by: Samuel Holland <[email protected]>
> Signed-off-by: Michael Klein <[email protected]>
> ---
> arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts b/arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts
> index 4c6704e4c57e..76e79e6db733 100644
> --- a/arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts
> +++ b/arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts
> @@ -46,6 +46,11 @@ sw4 {
> };
> };
>
> + gpio_poweroff {
> + compatible = "gpio-poweroff";
> + gpios = <&r_pio 0 8 GPIO_ACTIVE_LOW>; /* PL8 */
> + };
> +
> reg_vdd_cpux: vdd-cpux-regulator {
> compatible = "regulator-gpio";
> regulator-name = "vdd-cpux";
>
On Tue, Nov 24, 2020 at 12:41:37PM +0800, Chen-Yu Tsai wrote:
> On Tue, Nov 24, 2020 at 12:14 PM Samuel Holland <[email protected]> wrote:
> >
> > On 11/23/20 10:10 AM, Michael Klein wrote:
> > > Add gpio-poweroff node to allow the board to power itself off after
> > > shutdown by disabling the SYSTEM and CPUX regulators (U5 resp. U6).
> > > The RST button can be used to restart the board.
> >
> > The PSCI client will override this driver once the PSCI implementation
> > is upgraded to v0.2 or newer functions. So having this around should
> > cause no compatibility issues (although it would print an error in dmesg
> > at that point). This seems like a reasonable thing to do for the other
> > H2+/H3 boards that use a similar regulator layout.
>
> I wonder if this (gpio-poweroff) works if those regulators are also in the DT?
It's probably not going to probe at all, since both would claim the
exclusive usage of the GPIO?
I guess we should model this properly using the regulator framework, and
regulator_force_disable allows to bypass any usage count
Maxime
On Tue, Nov 24, 2020 at 12:14 PM Samuel Holland <[email protected]> wrote:
>
> On 11/23/20 10:10 AM, Michael Klein wrote:
> > Add gpio-poweroff node to allow the board to power itself off after
> > shutdown by disabling the SYSTEM and CPUX regulators (U5 resp. U6).
> > The RST button can be used to restart the board.
>
> The PSCI client will override this driver once the PSCI implementation
> is upgraded to v0.2 or newer functions. So having this around should
> cause no compatibility issues (although it would print an error in dmesg
> at that point). This seems like a reasonable thing to do for the other
> H2+/H3 boards that use a similar regulator layout.
I wonder if this (gpio-poweroff) works if those regulators are also in the DT?
> Reviewed-by: Samuel Holland <[email protected]>
>
> > Signed-off-by: Michael Klein <[email protected]>
> > ---
> > arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts | 5 +++++
> > 1 file changed, 5 insertions(+)
> >
> > diff --git a/arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts b/arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts
> > index 4c6704e4c57e..76e79e6db733 100644
> > --- a/arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts
> > +++ b/arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts
> > @@ -46,6 +46,11 @@ sw4 {
> > };
> > };
> >
> > + gpio_poweroff {
> > + compatible = "gpio-poweroff";
> > + gpios = <&r_pio 0 8 GPIO_ACTIVE_LOW>; /* PL8 */
> > + };
> > +
> > reg_vdd_cpux: vdd-cpux-regulator {
> > compatible = "regulator-gpio";
> > regulator-name = "vdd-cpux";
> >
>
On Mon, Nov 23, 2020 at 05:10:41PM +0100, Michael Klein wrote:
> Add gpio-poweroff node to allow the board to power itself off after
> shutdown by disabling the SYSTEM and CPUX regulators (U5 resp. U6).
> The RST button can be used to restart the board.
>
> Signed-off-by: Michael Klein <[email protected]>
> ---
> arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts b/arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts
> index 4c6704e4c57e..76e79e6db733 100644
> --- a/arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts
> +++ b/arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts
> @@ -46,6 +46,11 @@ sw4 {
> };
> };
>
> + gpio_poweroff {
DT nodes are not supposed to have an underscore in their name. The name
should also be the class of the "device", so I guess we can simply use
poweroff here?
Maxime