[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <40f82334-8f89-e2bd-985a-b09f71be20ce@arm.com>
Date: Mon, 9 Dec 2019 13:43:05 +0000
From: Robin Murphy <robin.murphy@....com>
To: Soeren Moch <smoch@....de>, Lee Jones <lee.jones@...aro.org>
Cc: linux-rockchip@...ts.infradead.org,
Heiko Stuebner <heiko@...ech.de>,
linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] mfd: rk808: Always use poweroff when requested
On 09/12/2019 11:57 am, Soeren Moch wrote:
> With the device tree property "rockchip,system-power-controller" we
> explicitly request to use this PMIC to power off the system. So always
> register our poweroff function, even if some other handler (probably
> PSCI poweroff) was registered before.
This seems preferable to abusing syscore ops, and at least it does allow
the firmware behaviour to be encapsulated in the DT (and thus more
easily updated if and when a firmware-based shutdown can be achieved on
currently-crippled boards) rather than baking assumptions into the
kernel. And in the meantime, I *would* quite like to be able to power
down my RK3399 board without having to lean on the button... so I guess,
Acked-by: Robin Murphy <robin.murphy@....com>
> Signed-off-by: Soeren Moch <smoch@....de>
> ---
> Cc: Lee Jones <lee.jones@...aro.org>
> Cc: Heiko Stuebner <heiko@...ech.de>
> Cc: linux-arm-kernel@...ts.infradead.org
> Cc: linux-rockchip@...ts.infradead.org
> Cc: linux-kernel@...r.kernel.org
> ---
> drivers/mfd/rk808.c | 11 ++---------
> 1 file changed, 2 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/mfd/rk808.c b/drivers/mfd/rk808.c
> index a69a6742ecdc..616e44e7ef98 100644
> --- a/drivers/mfd/rk808.c
> +++ b/drivers/mfd/rk808.c
> @@ -550,7 +550,7 @@ static int rk808_probe(struct i2c_client *client,
> const struct mfd_cell *cells;
> int nr_pre_init_regs;
> int nr_cells;
> - int pm_off = 0, msb, lsb;
> + int msb, lsb;
> unsigned char pmic_id_msb, pmic_id_lsb;
> int ret;
> int i;
> @@ -674,16 +674,9 @@ static int rk808_probe(struct i2c_client *client,
> goto err_irq;
> }
>
> - pm_off = of_property_read_bool(np,
> - "rockchip,system-power-controller");
> - if (pm_off && !pm_power_off) {
> + if (of_property_read_bool(np, "rockchip,system-power-controller")) {
> rk808_i2c_client = client;
> pm_power_off = rk808->pm_pwroff_fn;
> - }
> -
> - if (pm_off && !pm_power_off_prepare) {
> - if (!rk808_i2c_client)
> - rk808_i2c_client = client;
> pm_power_off_prepare = rk808->pm_pwroff_prep_fn;
> }
>
> --
> 2.17.1
>
>
> _______________________________________________
> Linux-rockchip mailing list
> Linux-rockchip@...ts.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-rockchip
>
Powered by blists - more mailing lists