Re: [PATCH v2] mfd: intel_soc_pmic_bxtwc: Add Intel BXT WhiskeyCove PMIC ADC thermal channel-zone mapping

From: Bin Gao
Date: Mon Jun 20 2016 - 14:09:18 EST


On Mon, Jun 20, 2016 at 09:52:00AM +0100, Lee Jones wrote:
> > > > > +static struct trip_config_map str3_trip_config[] = {
> > > > > + {
> > > > > + .irq_reg = BXTWC_THRM2IRQ,
> > > > > + .irq_mask = 0x10,
> > > > > + .irq_en = BXTWC_MTHRM2IRQ,
> > > > > + .irq_en_mask = 0x10,
> > > > > + .evt_stat = BXTWC_STHRM2IRQ,
> > > > > + .evt_mask = 0x10,
> > > > > + .trip_num = 0
> > > > > + },
> > > > > +};
> > > >
> > > > This looks like a register map to me.
> > > >
> > > > Can you use the regmap framework instead?
> > >
> > > These are platform data used by another driver(thermal driver) which
> > > uses regmap framework to access some of the fields of the structure(
> > > irq_reg, irq_en and evt_stat).
> >
> > I suggest you create the regmap here and pass it to the thermal driver
> > instead.
>
> Better yet, why don't you just create the regmap in the thermal
> driver? There is no need (in fact, it's not even allowed) to pass
> register addresses though platform data.

We did implement regmap in the acpi opregion driver(see drivers/acpi/pmic
for details) for the PMIC device. Each individual driver, e.g. gpio,
thermal, etc. will only access registers that belong to its logic unit.
Since the shared regmap implementation is already there, a single individual
driver doesn't need to implement again.