Re: [PATCH v4 3/3] acpi/pmic: Add support for PMIC regs operation region

From: Heikki Krogerus
Date: Mon Jun 27 2016 - 10:37:46 EST


On Mon, Jun 27, 2016 at 03:25:11PM +0200, Rafael J. Wysocki wrote:
> On Mon, Jun 27, 2016 at 11:26 AM, Heikki Krogerus
> <heikki.krogerus@xxxxxxxxxxxxxxx> wrote:
> > Whoa! Hold on!
> >
> > On Thu, Jun 23, 2016 at 05:52:53PM -0700, Bin Gao wrote:
> >> Broxton platform firmware has defined new customized operation regions
> >> called regs for PMIC chip - regs op region is used to handle the
> >> PMIC gpio mainly intended for the TYPE-C VBUS and Orientation.
> >>
> >> The intel_gpio_ctx structure is created for the purpose of handling
> >> the PMIC gpio register read and write.
> >>
> >> Signed-off-by: Felipe Balbi <felipe.balbi@xxxxxxxxxxxxxxx>
> >> Signed-off-by: Chandra Sekhar Anagani <chandra.sekhar.anagani@xxxxxxxxx>
> >> Signed-off-by: Bin Gao <bin.gao@xxxxxxxxx>
> >> ---
> >> Changes in v4:
> >> - various fixes to address Aaron's comments.
> >> Changes in v3: none
> >> Changes in v2: none
> >> drivers/acpi/pmic/intel_pmic.c | 74 ++++++++++++++++++++++++++++++++++++++++--
> >> drivers/acpi/pmic/intel_pmic.h | 5 +++
> >> 2 files changed, 76 insertions(+), 3 deletions(-)
> >>
> >> diff --git a/drivers/acpi/pmic/intel_pmic.c b/drivers/acpi/pmic/intel_pmic.c
> >> index 410e96f..e11d1e0 100644
> >> --- a/drivers/acpi/pmic/intel_pmic.c
> >> +++ b/drivers/acpi/pmic/intel_pmic.c
> >> @@ -21,12 +21,14 @@
> >>
> >> #define PMIC_POWER_OPREGION_ID 0x8d
> >> #define PMIC_THERMAL_OPREGION_ID 0x8c
> >> +#define PMIC_REGS_OPREGION_ID 0x8f
> >>
> >> struct intel_pmic_opregion {
> >> struct mutex lock;
> >> struct acpi_lpat_conversion_table *lpat_table;
> >> struct regmap *regmap;
> >> struct intel_pmic_opregion_data *data;
> >> + struct pmic_gpio_ctx ctx;
> >
> > What gpio?
> >
> >> };
> >>
> >> static int pmic_get_reg_bit(int address, struct pmic_table *table,
> >> @@ -204,6 +206,56 @@ static acpi_status intel_pmic_thermal_handler(u32 function,
> >> return AE_OK;
> >> }
> >>
> >> +static acpi_status intel_pmic_gpio_handler(u32 function,
> >> + acpi_physical_address address, u32 bits, u64 *value64,
> >> + void *handler_context, void *region_context)
> >
> > What the heck is this? Why is this suddenly a gpio handler?
> >
> > This is handler for an operation region, not some gpio!
>
> OK
>
> What about if I replaced this one with the original one from Felipe you sent?

That works for me.


Thanks,

--
heikki