diff options
| -rw-r--r-- | drivers/mfd/Kconfig | 1 | ||||
| -rw-r--r-- | drivers/mfd/max77686.c | 23 | ||||
| -rw-r--r-- | include/linux/mfd/max77686-private.h | 1 | ||||
| -rw-r--r-- | include/linux/mfd/max77686.h | 28 |
4 files changed, 1 insertions, 52 deletions
diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig index c47b2da7986e..be5b684eefcf 100644 --- a/drivers/mfd/Kconfig +++ b/drivers/mfd/Kconfig | |||
| @@ -429,6 +429,7 @@ config MFD_MAX14577 | |||
| 429 | config MFD_MAX77686 | 429 | config MFD_MAX77686 |
| 430 | bool "Maxim Semiconductor MAX77686/802 PMIC Support" | 430 | bool "Maxim Semiconductor MAX77686/802 PMIC Support" |
| 431 | depends on I2C=y | 431 | depends on I2C=y |
| 432 | depends on OF | ||
| 432 | select MFD_CORE | 433 | select MFD_CORE |
| 433 | select REGMAP_I2C | 434 | select REGMAP_I2C |
| 434 | select REGMAP_IRQ | 435 | select REGMAP_IRQ |
diff --git a/drivers/mfd/max77686.c b/drivers/mfd/max77686.c index 2b2f2ccda523..760d08d7923d 100644 --- a/drivers/mfd/max77686.c +++ b/drivers/mfd/max77686.c | |||
| @@ -205,24 +205,10 @@ static const struct of_device_id max77686_pmic_dt_match[] = { | |||
| 205 | { }, | 205 | { }, |
| 206 | }; | 206 | }; |
| 207 | 207 | ||
| 208 | static struct max77686_platform_data *max77686_i2c_parse_dt_pdata(struct device | ||
| 209 | *dev) | ||
| 210 | { | ||
| 211 | struct max77686_platform_data *pd; | ||
| 212 | |||
| 213 | pd = devm_kzalloc(dev, sizeof(*pd), GFP_KERNEL); | ||
| 214 | if (!pd) | ||
| 215 | return NULL; | ||
| 216 | |||
| 217 | dev->platform_data = pd; | ||
| 218 | return pd; | ||
| 219 | } | ||
| 220 | |||
| 221 | static int max77686_i2c_probe(struct i2c_client *i2c, | 208 | static int max77686_i2c_probe(struct i2c_client *i2c, |
| 222 | const struct i2c_device_id *id) | 209 | const struct i2c_device_id *id) |
| 223 | { | 210 | { |
| 224 | struct max77686_dev *max77686 = NULL; | 211 | struct max77686_dev *max77686 = NULL; |
| 225 | struct max77686_platform_data *pdata = dev_get_platdata(&i2c->dev); | ||
| 226 | const struct of_device_id *match; | 212 | const struct of_device_id *match; |
| 227 | unsigned int data; | 213 | unsigned int data; |
| 228 | int ret = 0; | 214 | int ret = 0; |
| @@ -233,14 +219,6 @@ static int max77686_i2c_probe(struct i2c_client *i2c, | |||
| 233 | const struct mfd_cell *cells; | 219 | const struct mfd_cell *cells; |
| 234 | int n_devs; | 220 | int n_devs; |
| 235 | 221 | ||
| 236 | if (IS_ENABLED(CONFIG_OF) && i2c->dev.of_node && !pdata) | ||
| 237 | pdata = max77686_i2c_parse_dt_pdata(&i2c->dev); | ||
| 238 | |||
| 239 | if (!pdata) { | ||
| 240 | dev_err(&i2c->dev, "No platform data found.\n"); | ||
| 241 | return -EINVAL; | ||
| 242 | } | ||
| 243 | |||
| 244 | max77686 = devm_kzalloc(&i2c->dev, | 222 | max77686 = devm_kzalloc(&i2c->dev, |
| 245 | sizeof(struct max77686_dev), GFP_KERNEL); | 223 | sizeof(struct max77686_dev), GFP_KERNEL); |
| 246 | if (!max77686) | 224 | if (!max77686) |
| @@ -259,7 +237,6 @@ static int max77686_i2c_probe(struct i2c_client *i2c, | |||
| 259 | max77686->dev = &i2c->dev; | 237 | max77686->dev = &i2c->dev; |
| 260 | max77686->i2c = i2c; | 238 | max77686->i2c = i2c; |
| 261 | 239 | ||
| 262 | max77686->wakeup = pdata->wakeup; | ||
| 263 | max77686->irq = i2c->irq; | 240 | max77686->irq = i2c->irq; |
| 264 | 241 | ||
| 265 | if (max77686->type == TYPE_MAX77686) { | 242 | if (max77686->type == TYPE_MAX77686) { |
diff --git a/include/linux/mfd/max77686-private.h b/include/linux/mfd/max77686-private.h index 960b92ad450d..f5043490d67c 100644 --- a/include/linux/mfd/max77686-private.h +++ b/include/linux/mfd/max77686-private.h | |||
| @@ -447,7 +447,6 @@ struct max77686_dev { | |||
| 447 | struct regmap_irq_chip_data *rtc_irq_data; | 447 | struct regmap_irq_chip_data *rtc_irq_data; |
| 448 | 448 | ||
| 449 | int irq; | 449 | int irq; |
| 450 | bool wakeup; | ||
| 451 | struct mutex irqlock; | 450 | struct mutex irqlock; |
| 452 | int irq_masks_cur[MAX77686_IRQ_GROUP_NR]; | 451 | int irq_masks_cur[MAX77686_IRQ_GROUP_NR]; |
| 453 | int irq_masks_cache[MAX77686_IRQ_GROUP_NR]; | 452 | int irq_masks_cache[MAX77686_IRQ_GROUP_NR]; |
diff --git a/include/linux/mfd/max77686.h b/include/linux/mfd/max77686.h index 553f7d09258a..bb995ab9a575 100644 --- a/include/linux/mfd/max77686.h +++ b/include/linux/mfd/max77686.h | |||
| @@ -119,12 +119,6 @@ enum max77802_regulators { | |||
| 119 | MAX77802_REG_MAX, | 119 | MAX77802_REG_MAX, |
| 120 | }; | 120 | }; |
| 121 | 121 | ||
| 122 | struct max77686_regulator_data { | ||
| 123 | int id; | ||
| 124 | struct regulator_init_data *initdata; | ||
| 125 | struct device_node *of_node; | ||
| 126 | }; | ||
| 127 | |||
| 128 | enum max77686_opmode { | 122 | enum max77686_opmode { |
| 129 | MAX77686_OPMODE_NORMAL, | 123 | MAX77686_OPMODE_NORMAL, |
| 130 | MAX77686_OPMODE_LP, | 124 | MAX77686_OPMODE_LP, |
| @@ -136,26 +130,4 @@ struct max77686_opmode_data { | |||
| 136 | int mode; | 130 | int mode; |
| 137 | }; | 131 | }; |
| 138 | 132 | ||
| 139 | struct max77686_platform_data { | ||
| 140 | int ono; | ||
| 141 | int wakeup; | ||
| 142 | |||
| 143 | /* ---- PMIC ---- */ | ||
| 144 | struct max77686_regulator_data *regulators; | ||
| 145 | int num_regulators; | ||
| 146 | |||
| 147 | struct max77686_opmode_data *opmode_data; | ||
| 148 | |||
| 149 | /* | ||
| 150 | * GPIO-DVS feature is not enabled with the current version of | ||
| 151 | * MAX77686 driver. Buck2/3/4_voltages[0] is used as the default | ||
| 152 | * voltage at probe. DVS/SELB gpios are set as OUTPUT-LOW. | ||
| 153 | */ | ||
| 154 | int buck234_gpio_dvs[3]; /* GPIO of [0]DVS1, [1]DVS2, [2]DVS3 */ | ||
| 155 | int buck234_gpio_selb[3]; /* [0]SELB2, [1]SELB3, [2]SELB4 */ | ||
| 156 | unsigned int buck2_voltage[8]; /* buckx_voltage in uV */ | ||
| 157 | unsigned int buck3_voltage[8]; | ||
| 158 | unsigned int buck4_voltage[8]; | ||
| 159 | }; | ||
| 160 | |||
| 161 | #endif /* __LINUX_MFD_MAX77686_H */ | 133 | #endif /* __LINUX_MFD_MAX77686_H */ |
