@@ -164,6 +164,14 @@ static const struct regmap_config adp5589_regmap_config_template = {
.num_reg_defaults_raw = ADP5589_MAX_REG + 1,
};
+static const struct adp5585_regs adp5585_regs = {
+ .ext_cfg = ADP5585_PIN_CONFIG_C,
+};
+
+static const struct adp5585_regs adp5589_regs = {
+ .ext_cfg = ADP5589_PIN_CONFIG_D,
+};
+
static struct regmap_config *adp5585_fill_variant_config(struct adp5585_dev *adp5585)
{
struct regmap_config *regmap_config;
@@ -175,6 +183,7 @@ static struct regmap_config *adp5585_fill_variant_config(struct adp5585_dev *adp
case ADP5585_03:
case ADP5585_04:
adp5585->id = ADP5585_MAN_ID_VALUE;
+ adp5585->regs = &adp5585_regs;
regmap_config = devm_kmemdup(adp5585->dev, &adp5585_regmap_config_template,
sizeof(struct regmap_config), GFP_KERNEL);
break;
@@ -182,6 +191,7 @@ static struct regmap_config *adp5585_fill_variant_config(struct adp5585_dev *adp
case ADP5589_01:
case ADP5589_02:
adp5585->id = ADP5589_MAN_ID_VALUE;
+ adp5585->regs = &adp5589_regs;
regmap_config = devm_kmemdup(adp5585->dev, &adp5589_regmap_config_template,
sizeof(struct regmap_config), GFP_KERNEL);
break;
@@ -120,6 +120,7 @@
/* ADP5589 */
#define ADP5589_MAN_ID_VALUE 0x10
#define ADP5589_GPI_STATUS_C 0x18
+#define ADP5589_PIN_CONFIG_D 0x4C
#define ADP5589_INT_EN 0x4e
#define ADP5589_MAX_REG ADP5589_INT_EN
@@ -137,9 +138,14 @@ enum adp5585_variant {
ADP5585_MAX
};
+struct adp5585_regs {
+ unsigned int ext_cfg;
+};
+
struct adp5585_dev {
struct device *dev;
struct regmap *regmap;
+ const struct adp5585_regs *regs;
enum adp5585_variant variant;
unsigned int id;
};