Re: [PATCH v2 6/7] regulator: sy7636a: bind to the I2C device directly

From: Pablo Mazzini

Date: Wed Nov 04 2026 - 14:58:53 EST


On Wed, 4 Nov 2026 19:28:45 +0100, Andreas Kemnade wrote:
> we need that regulator enabled for i2c access, if Patch 5 is merged before
> this it will happily try to access the device without it being accessible.

Right, I will move this patch before the hwmon read change in v3.

Pablo

On Wed, Nov 4, 2026 at 6:29 PM Andreas Kemnade <andreas@xxxxxxxxxxxx> wrote:
>
> On Sun, 1 Nov 2026 22:31:24 +0000
> Pablo Mazzini <pmazzini@xxxxxxxxx> wrote:
>
> [...]
> > - ret = devm_regulator_get_enable_optional(&pdev->dev, "vin");
> > + ret = devm_regulator_get_enable_optional(dev, "vin");
> > if (ret)
> > - return dev_err_probe(&pdev->dev, ret,
> > + return dev_err_probe(dev, ret,
> > "failed to get vin regulator\n");
> >
> we need that regulator enabled for i2c access, if Patch 5 is merged before
> this it will happily try to access the device without it being accessible.
>
> But it then is just another error code than ENODATA.
>
> So if that is considered harmful, probably this patch needs to be reordered.
>
> [...]
> > --- a/include/linux/mfd/sy7636a.h
> > +++ /dev/null
>
> but if it goes in first, this part will make trouble.
>
> Regards,
> Andreas
>
> > @@ -1,34 +0,0 @@
> > -/* SPDX-License-Identifier: GPL-2.0-only */
> > -/*
> > - * Functions to access SY3686A power management chip.
> > - *
> > - * Copyright (C) 2021 reMarkable AS - http://www.remarkable.com/
> > - */
> > -
> > -#ifndef __MFD_SY7636A_H
> > -#define __MFD_SY7636A_H
> > -
> > -#define SY7636A_REG_OPERATION_MODE_CRL 0x00
> > -/* It is set if a gpio is used to control the regulator */
> > -#define SY7636A_OPERATION_MODE_CRL_VCOMCTL BIT(6)
> > -#define SY7636A_OPERATION_MODE_CRL_ONOFF BIT(7)
> > -#define SY7636A_REG_VCOM_ADJUST_CTRL_L 0x01
> > -#define SY7636A_REG_VCOM_ADJUST_CTRL_H 0x02
> > -#define SY7636A_REG_VCOM_ADJUST_CTRL_MASK 0x01ff
> > -#define SY7636A_REG_VLDO_VOLTAGE_ADJULST_CTRL 0x03
> > -#define SY7636A_REG_POWER_ON_DELAY_TIME 0x06
> > -#define SY7636A_REG_FAULT_FLAG 0x07
> > -#define SY7636A_FAULT_FLAG_PG BIT(0)
> > -#define SY7636A_REG_TERMISTOR_READOUT 0x08
> > -
> > -#define SY7636A_REG_MAX 0x08
> > -
> > -#define VCOM_ADJUST_CTRL_MASK 0x1ff
> > -// Used to shift the high byte
> > -#define VCOM_ADJUST_CTRL_SHIFT 8
> > -// Used to scale from VCOM_ADJUST_CTRL to mv
> > -#define VCOM_ADJUST_CTRL_SCAL 10000
> > -
> > -#define FAULT_FLAG_SHIFT 1
> > -
> > -#endif /* __LINUX_MFD_SY7636A_H */
>