On Sun, 22 Aug 2021 18:18:04 -0500 Samuel Holland <sam...@sholland.org> wrote:
> A single DM-based driver should be able to support some feature for > several PMIC variants where the interface is the same. For example, > all PMIC variants use the same register bit to trigger poweroff. > > However, currently only definitions for a single PMIC are available at > a time. This requires drivers to use #ifdefs and different indentifiers > for each variant they support. > > Let's simplify this by making register definitions for all variants > available from the header. Then no preprocessor conditions are needed; > the driver can use the register definition from any variant that > supports the relevant feature. > > An exception is the GPIO-related definitions, which do not use unique > identifiers. So for now, keep them like before. They will be cleaned up > along with the GPIO driver. > > Signed-off-by: Samuel Holland <sam...@sholland.org> Reviewed-by: Andre Przywara <andre.przyw...@arm.com> Cheers, Andre > --- > > include/axp152.h | 2 ++ > include/axp209.h | 2 ++ > include/axp221.h | 2 ++ > include/axp809.h | 2 ++ > include/axp818.h | 2 ++ > include/axp_pmic.h | 12 ------------ > 6 files changed, 10 insertions(+), 12 deletions(-) > > diff --git a/include/axp152.h b/include/axp152.h > index c81f172502c..10d845fec42 100644 > --- a/include/axp152.h > +++ b/include/axp152.h > @@ -15,6 +15,7 @@ enum axp152_reg { > #define AXP152_POWEROFF (1 << 7) > > /* For axp_gpio.c */ > +#ifdef CONFIG_AXP152_POWER > #define AXP_GPIO0_CTRL 0x90 > #define AXP_GPIO1_CTRL 0x91 > #define AXP_GPIO2_CTRL 0x92 > @@ -24,3 +25,4 @@ enum axp152_reg { > #define AXP_GPIO_CTRL_INPUT 0x02 /* Input */ > #define AXP_GPIO_STATE 0x97 > #define AXP_GPIO_STATE_OFFSET 0 > +#endif > diff --git a/include/axp209.h b/include/axp209.h > index f4f1b2fe56d..30399a8d621 100644 > --- a/include/axp209.h > +++ b/include/axp209.h > @@ -74,6 +74,7 @@ enum axp209_reg { > #define AXP209_POWEROFF BIT(7) > > /* For axp_gpio.c */ > +#ifdef CONFIG_AXP209_POWER > #define AXP_POWER_STATUS 0x00 > #define AXP_POWER_STATUS_VBUS_PRESENT BIT(5) > #define AXP_GPIO0_CTRL 0x90 > @@ -84,3 +85,4 @@ enum axp209_reg { > #define AXP_GPIO_CTRL_INPUT 0x02 /* Input */ > #define AXP_GPIO_STATE 0x94 > #define AXP_GPIO_STATE_OFFSET 4 > +#endif > diff --git a/include/axp221.h b/include/axp221.h > index caffb910f4b..a02e9b4f645 100644 > --- a/include/axp221.h > +++ b/include/axp221.h > @@ -50,6 +50,7 @@ > #define AXP221_SID 0x20 > > /* For axp_gpio.c */ > +#ifdef CONFIG_AXP221_POWER > #define AXP_POWER_STATUS 0x00 > #define AXP_POWER_STATUS_VBUS_PRESENT (1 << 5) > #define AXP_VBUS_IPSOUT 0x30 > @@ -63,3 +64,4 @@ > #define AXP_GPIO_CTRL_INPUT 0x02 /* Input */ > #define AXP_GPIO_STATE 0x94 > #define AXP_GPIO_STATE_OFFSET 0 > +#endif > diff --git a/include/axp809.h b/include/axp809.h > index 86b29253306..430dbef622b 100644 > --- a/include/axp809.h > +++ b/include/axp809.h > @@ -44,6 +44,7 @@ > #define AXP809_SHUTDOWN_POWEROFF (1 << 7) > > /* For axp_gpio.c */ > +#ifdef CONFIG_AXP809_POWER > #define AXP_POWER_STATUS 0x00 > #define AXP_POWER_STATUS_VBUS_PRESENT (1 << 5) > #define AXP_VBUS_IPSOUT 0x30 > @@ -57,3 +58,4 @@ > #define AXP_GPIO_CTRL_INPUT 0x02 /* Input */ > #define AXP_GPIO_STATE 0x94 > #define AXP_GPIO_STATE_OFFSET 0 > +#endif > diff --git a/include/axp818.h b/include/axp818.h > index b16fe0b1527..8bac6b67ca2 100644 > --- a/include/axp818.h > +++ b/include/axp818.h > @@ -58,6 +58,7 @@ > #define AXP818_SHUTDOWN_POWEROFF (1 << 7) > > /* For axp_gpio.c */ > +#ifdef CONFIG_AXP818_POWER > #define AXP_POWER_STATUS 0x00 > #define AXP_POWER_STATUS_VBUS_PRESENT (1 << 5) > #define AXP_VBUS_IPSOUT 0x30 > @@ -71,3 +72,4 @@ > #define AXP_GPIO_CTRL_INPUT 0x02 /* Input */ > #define AXP_GPIO_STATE 0x94 > #define AXP_GPIO_STATE_OFFSET 0 > +#endif > diff --git a/include/axp_pmic.h b/include/axp_pmic.h > index 2eab18937bc..01ebba63479 100644 > --- a/include/axp_pmic.h > +++ b/include/axp_pmic.h > @@ -9,24 +9,12 @@ > > #include <stdbool.h> > > -#ifdef CONFIG_AXP152_POWER > #include <axp152.h> > -#endif > -#ifdef CONFIG_AXP209_POWER > #include <axp209.h> > -#endif > -#ifdef CONFIG_AXP221_POWER > #include <axp221.h> > -#endif > -#ifdef CONFIG_AXP305_POWER > #include <axp305.h> > -#endif > -#ifdef CONFIG_AXP809_POWER > #include <axp809.h> > -#endif > -#ifdef CONFIG_AXP818_POWER > #include <axp818.h> > -#endif > > #define AXP_PMIC_MODE_REG 0x3e > #define AXP_PMIC_MODE_I2C 0x00