Symbol: wm8350
drivers/gpio/gpio-wm8350.c
103
struct wm8350 *wm8350 = dev_get_drvdata(pdev->dev.parent);
drivers/gpio/gpio-wm8350.c
104
struct wm8350_platform_data *pdata = dev_get_platdata(wm8350->dev);
drivers/gpio/gpio-wm8350.c
112
wm8350_gpio->wm8350 = wm8350;
drivers/gpio/gpio-wm8350.c
22
struct wm8350 *wm8350;
drivers/gpio/gpio-wm8350.c
29
struct wm8350 *wm8350 = wm8350_gpio->wm8350;
drivers/gpio/gpio-wm8350.c
31
return wm8350_set_bits(wm8350, WM8350_GPIO_CONFIGURATION_I_O,
drivers/gpio/gpio-wm8350.c
38
struct wm8350 *wm8350 = wm8350_gpio->wm8350;
drivers/gpio/gpio-wm8350.c
41
ret = wm8350_reg_read(wm8350, WM8350_GPIO_LEVEL);
drivers/gpio/gpio-wm8350.c
55
struct wm8350 *wm8350 = wm8350_gpio->wm8350;
drivers/gpio/gpio-wm8350.c
58
return wm8350_set_bits(wm8350, WM8350_GPIO_LEVEL, 1 << offset);
drivers/gpio/gpio-wm8350.c
60
return wm8350_clear_bits(wm8350, WM8350_GPIO_LEVEL, 1 << offset);
drivers/gpio/gpio-wm8350.c
67
struct wm8350 *wm8350 = wm8350_gpio->wm8350;
drivers/gpio/gpio-wm8350.c
70
ret = wm8350_clear_bits(wm8350, WM8350_GPIO_CONFIGURATION_I_O,
drivers/gpio/gpio-wm8350.c
82
struct wm8350 *wm8350 = wm8350_gpio->wm8350;
drivers/gpio/gpio-wm8350.c
84
if (!wm8350->irq_base)
drivers/gpio/gpio-wm8350.c
87
return wm8350->irq_base + WM8350_IRQ_GPIO(offset);
drivers/hwmon/wm8350-hwmon.c
28
struct wm8350 *wm8350 = dev_get_drvdata(dev);
drivers/hwmon/wm8350-hwmon.c
32
val = wm8350_read_auxadc(wm8350, channel, 0, 0) * WM8350_AUX_COEFF;
drivers/hwmon/wm8350-hwmon.c
67
ATTRIBUTE_GROUPS(wm8350);
drivers/hwmon/wm8350-hwmon.c
71
struct wm8350 *wm8350 = platform_get_drvdata(pdev);
drivers/hwmon/wm8350-hwmon.c
75
wm8350,
drivers/mfd/wm8350-core.c
100
int wm8350_block_read(struct wm8350 *wm8350, int start_reg, int regs,
drivers/mfd/wm8350-core.c
105
err = regmap_bulk_read(wm8350->regmap, start_reg, dest, regs);
drivers/mfd/wm8350-core.c
107
dev_err(wm8350->dev, "block read starting from R%d failed\n",
drivers/mfd/wm8350-core.c
114
int wm8350_block_write(struct wm8350 *wm8350, int start_reg, int regs,
drivers/mfd/wm8350-core.c
119
ret = regmap_bulk_write(wm8350->regmap, start_reg, src, regs);
drivers/mfd/wm8350-core.c
121
dev_err(wm8350->dev, "block write starting at R%d failed\n",
drivers/mfd/wm8350-core.c
137
int wm8350_reg_lock(struct wm8350 *wm8350)
drivers/mfd/wm8350-core.c
145
ret = wm8350_reg_write(wm8350, WM8350_SECURITY, WM8350_LOCK_KEY);
drivers/mfd/wm8350-core.c
147
dev_err(wm8350->dev, "lock failed\n");
drivers/mfd/wm8350-core.c
149
wm8350->unlocked = false;
drivers/mfd/wm8350-core.c
168
int wm8350_reg_unlock(struct wm8350 *wm8350)
drivers/mfd/wm8350-core.c
176
ret = wm8350_reg_write(wm8350, WM8350_SECURITY, WM8350_UNLOCK_KEY);
drivers/mfd/wm8350-core.c
178
dev_err(wm8350->dev, "unlock failed\n");
drivers/mfd/wm8350-core.c
180
wm8350->unlocked = true;
drivers/mfd/wm8350-core.c
188
int wm8350_read_auxadc(struct wm8350 *wm8350, int channel, int scale, int vref)
drivers/mfd/wm8350-core.c
198
mutex_lock(&wm8350->auxadc_mutex);
drivers/mfd/wm8350-core.c
201
reg = wm8350_reg_read(wm8350, WM8350_POWER_MGMT_5);
drivers/mfd/wm8350-core.c
202
wm8350_reg_write(wm8350, WM8350_POWER_MGMT_5, reg | WM8350_AUXADC_ENA);
drivers/mfd/wm8350-core.c
207
wm8350_reg_write(wm8350, WM8350_AUX1_READBACK + channel, reg);
drivers/mfd/wm8350-core.c
210
reg = wm8350_reg_read(wm8350, WM8350_DIGITISER_CONTROL_1);
drivers/mfd/wm8350-core.c
212
wm8350_reg_write(wm8350, WM8350_DIGITISER_CONTROL_1, reg);
drivers/mfd/wm8350-core.c
216
try_wait_for_completion(&wm8350->auxadc_done);
drivers/mfd/wm8350-core.c
221
wait_for_completion_timeout(&wm8350->auxadc_done, msecs_to_jiffies(5));
drivers/mfd/wm8350-core.c
223
reg = wm8350_reg_read(wm8350, WM8350_DIGITISER_CONTROL_1);
drivers/mfd/wm8350-core.c
225
dev_err(wm8350->dev, "adc chn %d read timeout\n", channel);
drivers/mfd/wm8350-core.c
227
result = wm8350_reg_read(wm8350,
drivers/mfd/wm8350-core.c
231
reg = wm8350_reg_read(wm8350, WM8350_POWER_MGMT_5);
drivers/mfd/wm8350-core.c
232
wm8350_reg_write(wm8350, WM8350_POWER_MGMT_5,
drivers/mfd/wm8350-core.c
235
mutex_unlock(&wm8350->auxadc_mutex);
drivers/mfd/wm8350-core.c
243
struct wm8350 *wm8350 = irq_data;
drivers/mfd/wm8350-core.c
245
complete(&wm8350->auxadc_done);
drivers/mfd/wm8350-core.c
254
static void wm8350_client_dev_register(struct wm8350 *wm8350,
drivers/mfd/wm8350-core.c
262
dev_err(wm8350->dev, "Failed to allocate %s\n", name);
drivers/mfd/wm8350-core.c
266
(*pdev)->dev.parent = wm8350->dev;
drivers/mfd/wm8350-core.c
267
platform_set_drvdata(*pdev, wm8350);
drivers/mfd/wm8350-core.c
270
dev_err(wm8350->dev, "Failed to register %s: %d\n", name, ret);
drivers/mfd/wm8350-core.c
276
int wm8350_device_init(struct wm8350 *wm8350, int irq,
drivers/mfd/wm8350-core.c
283
dev_set_drvdata(wm8350->dev, wm8350);
drivers/mfd/wm8350-core.c
286
ret = regmap_read(wm8350->regmap, WM8350_RESET_ID, &id1);
drivers/mfd/wm8350-core.c
288
dev_err(wm8350->dev, "Failed to read ID: %d\n", ret);
drivers/mfd/wm8350-core.c
292
ret = regmap_read(wm8350->regmap, WM8350_ID, &id2);
drivers/mfd/wm8350-core.c
294
dev_err(wm8350->dev, "Failed to read ID: %d\n", ret);
drivers/mfd/wm8350-core.c
298
ret = regmap_read(wm8350->regmap, WM8350_REVISION, &mask_rev);
drivers/mfd/wm8350-core.c
300
dev_err(wm8350->dev, "Failed to read revision: %d\n", ret);
drivers/mfd/wm8350-core.c
305
dev_err(wm8350->dev,
drivers/mfd/wm8350-core.c
314
dev_info(wm8350->dev,
drivers/mfd/wm8350-core.c
319
dev_err(wm8350->dev, "Unsupported CUST_ID\n");
drivers/mfd/wm8350-core.c
326
wm8350->pmic.max_dcdc = WM8350_DCDC_6;
drivers/mfd/wm8350-core.c
327
wm8350->pmic.max_isink = WM8350_ISINK_B;
drivers/mfd/wm8350-core.c
331
dev_info(wm8350->dev, "WM8350 Rev E\n");
drivers/mfd/wm8350-core.c
334
dev_info(wm8350->dev, "WM8350 Rev F\n");
drivers/mfd/wm8350-core.c
337
dev_info(wm8350->dev, "WM8350 Rev G\n");
drivers/mfd/wm8350-core.c
338
wm8350->power.rev_g_coeff = 1;
drivers/mfd/wm8350-core.c
341
dev_info(wm8350->dev, "WM8350 Rev H\n");
drivers/mfd/wm8350-core.c
342
wm8350->power.rev_g_coeff = 1;
drivers/mfd/wm8350-core.c
346
dev_err(wm8350->dev, "Unknown WM8350 CHIP_REV\n");
drivers/mfd/wm8350-core.c
353
wm8350->pmic.max_dcdc = WM8350_DCDC_4;
drivers/mfd/wm8350-core.c
354
wm8350->pmic.max_isink = WM8350_ISINK_A;
drivers/mfd/wm8350-core.c
358
dev_info(wm8350->dev, "WM8351 Rev A\n");
drivers/mfd/wm8350-core.c
359
wm8350->power.rev_g_coeff = 1;
drivers/mfd/wm8350-core.c
363
dev_info(wm8350->dev, "WM8351 Rev B\n");
drivers/mfd/wm8350-core.c
364
wm8350->power.rev_g_coeff = 1;
drivers/mfd/wm8350-core.c
368
dev_err(wm8350->dev, "Unknown WM8351 CHIP_REV\n");
drivers/mfd/wm8350-core.c
375
wm8350->pmic.max_dcdc = WM8350_DCDC_6;
drivers/mfd/wm8350-core.c
376
wm8350->pmic.max_isink = WM8350_ISINK_B;
drivers/mfd/wm8350-core.c
380
dev_info(wm8350->dev, "WM8352 Rev A\n");
drivers/mfd/wm8350-core.c
381
wm8350->power.rev_g_coeff = 1;
drivers/mfd/wm8350-core.c
385
dev_err(wm8350->dev, "Unknown WM8352 CHIP_REV\n");
drivers/mfd/wm8350-core.c
392
dev_err(wm8350->dev, "Unknown MASK_REV\n");
drivers/mfd/wm8350-core.c
397
mutex_init(&wm8350->auxadc_mutex);
drivers/mfd/wm8350-core.c
398
init_completion(&wm8350->auxadc_done);
drivers/mfd/wm8350-core.c
400
ret = wm8350_irq_init(wm8350, irq, pdata);
drivers/mfd/wm8350-core.c
404
if (wm8350->irq_base) {
drivers/mfd/wm8350-core.c
405
ret = request_threaded_irq(wm8350->irq_base +
drivers/mfd/wm8350-core.c
409
"auxadc", wm8350);
drivers/mfd/wm8350-core.c
411
dev_warn(wm8350->dev,
drivers/mfd/wm8350-core.c
416
ret = pdata->init(wm8350);
drivers/mfd/wm8350-core.c
418
dev_err(wm8350->dev, "Platform init() failed: %d\n",
drivers/mfd/wm8350-core.c
424
wm8350_reg_write(wm8350, WM8350_SYSTEM_INTERRUPTS_MASK, 0x0);
drivers/mfd/wm8350-core.c
426
wm8350_client_dev_register(wm8350, "wm8350-codec",
drivers/mfd/wm8350-core.c
427
&(wm8350->codec.pdev));
drivers/mfd/wm8350-core.c
428
wm8350_client_dev_register(wm8350, "wm8350-gpio",
drivers/mfd/wm8350-core.c
429
&(wm8350->gpio.pdev));
drivers/mfd/wm8350-core.c
430
wm8350_client_dev_register(wm8350, "wm8350-hwmon",
drivers/mfd/wm8350-core.c
431
&(wm8350->hwmon.pdev));
drivers/mfd/wm8350-core.c
432
wm8350_client_dev_register(wm8350, "wm8350-power",
drivers/mfd/wm8350-core.c
433
&(wm8350->power.pdev));
drivers/mfd/wm8350-core.c
434
wm8350_client_dev_register(wm8350, "wm8350-rtc", &(wm8350->rtc.pdev));
drivers/mfd/wm8350-core.c
435
wm8350_client_dev_register(wm8350, "wm8350-wdt", &(wm8350->wdt.pdev));
drivers/mfd/wm8350-core.c
440
wm8350_irq_exit(wm8350);
drivers/mfd/wm8350-core.c
63
int wm8350_clear_bits(struct wm8350 *wm8350, u16 reg, u16 mask)
drivers/mfd/wm8350-core.c
65
return regmap_update_bits(wm8350->regmap, reg, mask, 0);
drivers/mfd/wm8350-core.c
69
int wm8350_set_bits(struct wm8350 *wm8350, u16 reg, u16 mask)
drivers/mfd/wm8350-core.c
71
return regmap_update_bits(wm8350->regmap, reg, mask, mask);
drivers/mfd/wm8350-core.c
75
u16 wm8350_reg_read(struct wm8350 *wm8350, int reg)
drivers/mfd/wm8350-core.c
80
err = regmap_read(wm8350->regmap, reg, &data);
drivers/mfd/wm8350-core.c
82
dev_err(wm8350->dev, "read from reg R%d failed\n", reg);
drivers/mfd/wm8350-core.c
88
int wm8350_reg_write(struct wm8350 *wm8350, int reg, u16 val)
drivers/mfd/wm8350-core.c
92
ret = regmap_write(wm8350->regmap, reg, val);
drivers/mfd/wm8350-core.c
95
dev_err(wm8350->dev, "write to reg R%d failed\n", reg);
drivers/mfd/wm8350-gpio.c
100
reg = wm8350_reg_read(wm8350, WM8350_GPIO_FUNCTION_SELECT_3)
drivers/mfd/wm8350-gpio.c
102
wm8350_reg_write(wm8350, WM8350_GPIO_FUNCTION_SELECT_3,
drivers/mfd/wm8350-gpio.c
106
reg = wm8350_reg_read(wm8350, WM8350_GPIO_FUNCTION_SELECT_3)
drivers/mfd/wm8350-gpio.c
108
wm8350_reg_write(wm8350, WM8350_GPIO_FUNCTION_SELECT_3,
drivers/mfd/wm8350-gpio.c
112
reg = wm8350_reg_read(wm8350, WM8350_GPIO_FUNCTION_SELECT_3)
drivers/mfd/wm8350-gpio.c
114
wm8350_reg_write(wm8350, WM8350_GPIO_FUNCTION_SELECT_3,
drivers/mfd/wm8350-gpio.c
118
reg = wm8350_reg_read(wm8350, WM8350_GPIO_FUNCTION_SELECT_3)
drivers/mfd/wm8350-gpio.c
120
wm8350_reg_write(wm8350, WM8350_GPIO_FUNCTION_SELECT_3,
drivers/mfd/wm8350-gpio.c
124
reg = wm8350_reg_read(wm8350, WM8350_GPIO_FUNCTION_SELECT_4)
drivers/mfd/wm8350-gpio.c
126
wm8350_reg_write(wm8350, WM8350_GPIO_FUNCTION_SELECT_4,
drivers/mfd/wm8350-gpio.c
130
wm8350_reg_lock(wm8350);
drivers/mfd/wm8350-gpio.c
134
wm8350_reg_lock(wm8350);
drivers/mfd/wm8350-gpio.c
138
static int gpio_set_pull_up(struct wm8350 *wm8350, int gpio, int up)
drivers/mfd/wm8350-gpio.c
141
return wm8350_set_bits(wm8350,
drivers/mfd/wm8350-gpio.c
145
return wm8350_clear_bits(wm8350,
drivers/mfd/wm8350-gpio.c
150
static int gpio_set_pull_down(struct wm8350 *wm8350, int gpio, int down)
drivers/mfd/wm8350-gpio.c
153
return wm8350_set_bits(wm8350,
drivers/mfd/wm8350-gpio.c
157
return wm8350_clear_bits(wm8350,
drivers/mfd/wm8350-gpio.c
162
static int gpio_set_polarity(struct wm8350 *wm8350, int gpio, int pol)
drivers/mfd/wm8350-gpio.c
165
return wm8350_set_bits(wm8350,
drivers/mfd/wm8350-gpio.c
169
return wm8350_clear_bits(wm8350,
drivers/mfd/wm8350-gpio.c
174
static int gpio_set_invert(struct wm8350 *wm8350, int gpio, int invert)
drivers/mfd/wm8350-gpio.c
177
return wm8350_set_bits(wm8350, WM8350_GPIO_INT_MODE, 1 << gpio);
drivers/mfd/wm8350-gpio.c
179
return wm8350_clear_bits(wm8350,
drivers/mfd/wm8350-gpio.c
18
static int gpio_set_dir(struct wm8350 *wm8350, int gpio, int dir)
drivers/mfd/wm8350-gpio.c
183
int wm8350_gpio_config(struct wm8350 *wm8350, int gpio, int dir, int func,
drivers/mfd/wm8350-gpio.c
188
if (gpio_set_pull_up(wm8350, gpio, 0))
drivers/mfd/wm8350-gpio.c
190
if (gpio_set_pull_down(wm8350, gpio, 0))
drivers/mfd/wm8350-gpio.c
193
if (gpio_set_pull_down(wm8350, gpio, 0))
drivers/mfd/wm8350-gpio.c
195
if (gpio_set_pull_up(wm8350, gpio, 1))
drivers/mfd/wm8350-gpio.c
198
if (gpio_set_pull_up(wm8350, gpio, 0))
drivers/mfd/wm8350-gpio.c
200
if (gpio_set_pull_down(wm8350, gpio, 1))
drivers/mfd/wm8350-gpio.c
204
if (gpio_set_invert(wm8350, gpio, invert))
drivers/mfd/wm8350-gpio.c
206
if (gpio_set_polarity(wm8350, gpio, pol))
drivers/mfd/wm8350-gpio.c
208
if (wm8350_gpio_set_debounce(wm8350, gpio, debounce))
drivers/mfd/wm8350-gpio.c
210
if (gpio_set_dir(wm8350, gpio, dir))
drivers/mfd/wm8350-gpio.c
212
return gpio_set_func(wm8350, gpio, func);
drivers/mfd/wm8350-gpio.c
22
wm8350_reg_unlock(wm8350);
drivers/mfd/wm8350-gpio.c
24
ret = wm8350_clear_bits(wm8350,
drivers/mfd/wm8350-gpio.c
28
ret = wm8350_set_bits(wm8350,
drivers/mfd/wm8350-gpio.c
31
wm8350_reg_lock(wm8350);
drivers/mfd/wm8350-gpio.c
35
static int wm8350_gpio_set_debounce(struct wm8350 *wm8350, int gpio, int db)
drivers/mfd/wm8350-gpio.c
38
return wm8350_set_bits(wm8350, WM8350_GPIO_DEBOUNCE,
drivers/mfd/wm8350-gpio.c
41
return wm8350_clear_bits(wm8350,
drivers/mfd/wm8350-gpio.c
45
static int gpio_set_func(struct wm8350 *wm8350, int gpio, int func)
drivers/mfd/wm8350-gpio.c
49
wm8350_reg_unlock(wm8350);
drivers/mfd/wm8350-gpio.c
52
reg = wm8350_reg_read(wm8350, WM8350_GPIO_FUNCTION_SELECT_1)
drivers/mfd/wm8350-gpio.c
54
wm8350_reg_write(wm8350, WM8350_GPIO_FUNCTION_SELECT_1,
drivers/mfd/wm8350-gpio.c
58
reg = wm8350_reg_read(wm8350, WM8350_GPIO_FUNCTION_SELECT_1)
drivers/mfd/wm8350-gpio.c
60
wm8350_reg_write(wm8350, WM8350_GPIO_FUNCTION_SELECT_1,
drivers/mfd/wm8350-gpio.c
64
reg = wm8350_reg_read(wm8350, WM8350_GPIO_FUNCTION_SELECT_1)
drivers/mfd/wm8350-gpio.c
66
wm8350_reg_write(wm8350, WM8350_GPIO_FUNCTION_SELECT_1,
drivers/mfd/wm8350-gpio.c
70
reg = wm8350_reg_read(wm8350, WM8350_GPIO_FUNCTION_SELECT_1)
drivers/mfd/wm8350-gpio.c
72
wm8350_reg_write(wm8350, WM8350_GPIO_FUNCTION_SELECT_1,
drivers/mfd/wm8350-gpio.c
76
reg = wm8350_reg_read(wm8350, WM8350_GPIO_FUNCTION_SELECT_2)
drivers/mfd/wm8350-gpio.c
78
wm8350_reg_write(wm8350, WM8350_GPIO_FUNCTION_SELECT_2,
drivers/mfd/wm8350-gpio.c
82
reg = wm8350_reg_read(wm8350, WM8350_GPIO_FUNCTION_SELECT_2)
drivers/mfd/wm8350-gpio.c
84
wm8350_reg_write(wm8350, WM8350_GPIO_FUNCTION_SELECT_2,
drivers/mfd/wm8350-gpio.c
88
reg = wm8350_reg_read(wm8350, WM8350_GPIO_FUNCTION_SELECT_2)
drivers/mfd/wm8350-gpio.c
90
wm8350_reg_write(wm8350, WM8350_GPIO_FUNCTION_SELECT_2,
drivers/mfd/wm8350-gpio.c
94
reg = wm8350_reg_read(wm8350, WM8350_GPIO_FUNCTION_SELECT_2)
drivers/mfd/wm8350-gpio.c
96
wm8350_reg_write(wm8350, WM8350_GPIO_FUNCTION_SELECT_2,
drivers/mfd/wm8350-i2c.c
21
struct wm8350 *wm8350;
drivers/mfd/wm8350-i2c.c
25
wm8350 = devm_kzalloc(&i2c->dev, sizeof(struct wm8350), GFP_KERNEL);
drivers/mfd/wm8350-i2c.c
26
if (wm8350 == NULL)
drivers/mfd/wm8350-i2c.c
29
wm8350->regmap = devm_regmap_init_i2c(i2c, &wm8350_regmap);
drivers/mfd/wm8350-i2c.c
30
if (IS_ERR(wm8350->regmap)) {
drivers/mfd/wm8350-i2c.c
31
ret = PTR_ERR(wm8350->regmap);
drivers/mfd/wm8350-i2c.c
37
i2c_set_clientdata(i2c, wm8350);
drivers/mfd/wm8350-i2c.c
38
wm8350->dev = &i2c->dev;
drivers/mfd/wm8350-i2c.c
40
return wm8350_device_init(wm8350, i2c->irq, pdata);
drivers/mfd/wm8350-irq.c
361
static inline struct wm8350_irq_data *irq_to_wm8350_irq(struct wm8350 *wm8350,
drivers/mfd/wm8350-irq.c
364
return &wm8350_irqs[irq - wm8350->irq_base];
drivers/mfd/wm8350-irq.c
378
struct wm8350 *wm8350 = irq_data;
drivers/mfd/wm8350-irq.c
385
level_one = wm8350_reg_read(wm8350, WM8350_SYSTEM_INTERRUPTS)
drivers/mfd/wm8350-irq.c
386
& ~wm8350_reg_read(wm8350, WM8350_SYSTEM_INTERRUPTS_MASK);
drivers/mfd/wm8350-irq.c
401
wm8350_reg_read(wm8350, WM8350_INT_STATUS_1 +
drivers/mfd/wm8350-irq.c
403
sub_reg[data->reg] &= ~wm8350->irq_masks[data->reg];
drivers/mfd/wm8350-irq.c
408
handle_nested_irq(wm8350->irq_base + i);
drivers/mfd/wm8350-irq.c
416
struct wm8350 *wm8350 = irq_data_get_irq_chip_data(data);
drivers/mfd/wm8350-irq.c
418
mutex_lock(&wm8350->irq_lock);
drivers/mfd/wm8350-irq.c
423
struct wm8350 *wm8350 = irq_data_get_irq_chip_data(data);
drivers/mfd/wm8350-irq.c
426
for (i = 0; i < ARRAY_SIZE(wm8350->irq_masks); i++) {
drivers/mfd/wm8350-irq.c
429
WARN_ON(regmap_update_bits(wm8350->regmap,
drivers/mfd/wm8350-irq.c
431
0xffff, wm8350->irq_masks[i]));
drivers/mfd/wm8350-irq.c
434
mutex_unlock(&wm8350->irq_lock);
drivers/mfd/wm8350-irq.c
439
struct wm8350 *wm8350 = irq_data_get_irq_chip_data(data);
drivers/mfd/wm8350-irq.c
440
struct wm8350_irq_data *irq_data = irq_to_wm8350_irq(wm8350,
drivers/mfd/wm8350-irq.c
443
wm8350->irq_masks[irq_data->reg] &= ~irq_data->mask;
drivers/mfd/wm8350-irq.c
448
struct wm8350 *wm8350 = irq_data_get_irq_chip_data(data);
drivers/mfd/wm8350-irq.c
449
struct wm8350_irq_data *irq_data = irq_to_wm8350_irq(wm8350,
drivers/mfd/wm8350-irq.c
452
wm8350->irq_masks[irq_data->reg] |= irq_data->mask;
drivers/mfd/wm8350-irq.c
463
int wm8350_irq_init(struct wm8350 *wm8350, int irq,
drivers/mfd/wm8350-irq.c
471
dev_warn(wm8350->dev, "No interrupt support, no core IRQ\n");
drivers/mfd/wm8350-irq.c
476
wm8350_reg_write(wm8350, WM8350_SYSTEM_INTERRUPTS_MASK, 0xFFFF);
drivers/mfd/wm8350-irq.c
481
for (i = 0; i < ARRAY_SIZE(wm8350->irq_masks); i++) {
drivers/mfd/wm8350-irq.c
482
wm8350_reg_write(wm8350, WM8350_INT_STATUS_1_MASK + i,
drivers/mfd/wm8350-irq.c
484
wm8350->irq_masks[i] =
drivers/mfd/wm8350-irq.c
485
wm8350_reg_read(wm8350,
drivers/mfd/wm8350-irq.c
489
mutex_init(&wm8350->irq_lock);
drivers/mfd/wm8350-irq.c
490
wm8350->chip_irq = irq;
drivers/mfd/wm8350-irq.c
495
wm8350->irq_base =
drivers/mfd/wm8350-irq.c
497
if (wm8350->irq_base < 0) {
drivers/mfd/wm8350-irq.c
498
dev_warn(wm8350->dev, "Allocating irqs failed with %d\n",
drivers/mfd/wm8350-irq.c
499
wm8350->irq_base);
drivers/mfd/wm8350-irq.c
506
wm8350_set_bits(wm8350, WM8350_SYSTEM_CONTROL_1,
drivers/mfd/wm8350-irq.c
511
wm8350_clear_bits(wm8350, WM8350_SYSTEM_CONTROL_1,
drivers/mfd/wm8350-irq.c
516
for (cur_irq = wm8350->irq_base;
drivers/mfd/wm8350-irq.c
517
cur_irq < ARRAY_SIZE(wm8350_irqs) + wm8350->irq_base;
drivers/mfd/wm8350-irq.c
519
irq_set_chip_data(cur_irq, wm8350);
drivers/mfd/wm8350-irq.c
528
"wm8350", wm8350);
drivers/mfd/wm8350-irq.c
530
dev_err(wm8350->dev, "Failed to request IRQ: %d\n", ret);
drivers/mfd/wm8350-irq.c
533
wm8350_reg_write(wm8350, WM8350_SYSTEM_INTERRUPTS_MASK, 0);
drivers/mfd/wm8350-irq.c
538
int wm8350_irq_exit(struct wm8350 *wm8350)
drivers/mfd/wm8350-irq.c
540
free_irq(wm8350->chip_irq, wm8350);
drivers/mfd/wm8350-regmap.c
288
struct wm8350 *wm8350 = dev_get_drvdata(dev);
drivers/mfd/wm8350-regmap.c
290
if (!wm8350->unlocked) {
drivers/power/supply/wm8350_power.c
105
wm8350_reg_unlock(wm8350);
drivers/power/supply/wm8350_power.c
107
reg = wm8350_reg_read(wm8350, WM8350_BATTERY_CHARGER_CONTROL_1)
drivers/power/supply/wm8350_power.c
109
wm8350_reg_write(wm8350, WM8350_BATTERY_CHARGER_CONTROL_1,
drivers/power/supply/wm8350_power.c
115
if (wm8350_get_supplies(wm8350) & WM8350_USB_SUPPLY) {
drivers/power/supply/wm8350_power.c
118
wm8350_reg_write(wm8350, WM8350_BATTERY_CHARGER_CONTROL_2,
drivers/power/supply/wm8350_power.c
120
fast_limit_mA | wm8350_charge_time_min(wm8350,
drivers/power/supply/wm8350_power.c
126
wm8350_reg_write(wm8350, WM8350_BATTERY_CHARGER_CONTROL_2,
drivers/power/supply/wm8350_power.c
128
fast_limit_mA | wm8350_charge_time_min(wm8350,
drivers/power/supply/wm8350_power.c
132
wm8350_reg_lock(wm8350);
drivers/power/supply/wm8350_power.c
136
static int wm8350_batt_status(struct wm8350 *wm8350)
drivers/power/supply/wm8350_power.c
140
state = wm8350_reg_read(wm8350, WM8350_BATTERY_CHARGER_CONTROL_2);
drivers/power/supply/wm8350_power.c
159
struct wm8350 *wm8350 = dev_get_drvdata(dev);
drivers/power/supply/wm8350_power.c
163
state = wm8350_reg_read(wm8350, WM8350_BATTERY_CHARGER_CONTROL_2) &
drivers/power/supply/wm8350_power.c
186
struct wm8350 *wm8350 = data;
drivers/power/supply/wm8350_power.c
187
struct wm8350_power *power = &wm8350->power;
drivers/power/supply/wm8350_power.c
190
switch (irq - wm8350->irq_base) {
drivers/power/supply/wm8350_power.c
192
dev_err(wm8350->dev, "battery failed\n");
drivers/power/supply/wm8350_power.c
195
dev_err(wm8350->dev, "charger timeout\n");
drivers/power/supply/wm8350_power.c
20
static int wm8350_read_battery_uvolts(struct wm8350 *wm8350)
drivers/power/supply/wm8350_power.c
207
dev_dbg(wm8350->dev, "fast charger ready\n");
drivers/power/supply/wm8350_power.c
208
wm8350_charger_config(wm8350, policy);
drivers/power/supply/wm8350_power.c
209
wm8350_reg_unlock(wm8350);
drivers/power/supply/wm8350_power.c
210
wm8350_set_bits(wm8350, WM8350_BATTERY_CHARGER_CONTROL_1,
drivers/power/supply/wm8350_power.c
212
wm8350_reg_lock(wm8350);
drivers/power/supply/wm8350_power.c
216
dev_warn(wm8350->dev, "battery < 3.9V\n");
drivers/power/supply/wm8350_power.c
219
dev_warn(wm8350->dev, "battery < 3.1V\n");
drivers/power/supply/wm8350_power.c
22
return wm8350_read_auxadc(wm8350, WM8350_AUXADC_BATT, 0, 0)
drivers/power/supply/wm8350_power.c
222
dev_warn(wm8350->dev, "battery < 2.85V\n");
drivers/power/supply/wm8350_power.c
229
wm8350_charger_config(wm8350, policy);
drivers/power/supply/wm8350_power.c
238
dev_err(wm8350->dev, "Unknown interrupt %d\n", irq);
drivers/power/supply/wm8350_power.c
251
struct wm8350 *wm8350 = dev_get_drvdata(psy->dev.parent);
drivers/power/supply/wm8350_power.c
256
val->intval = !!(wm8350_get_supplies(wm8350) &
drivers/power/supply/wm8350_power.c
26
static int wm8350_read_line_uvolts(struct wm8350 *wm8350)
drivers/power/supply/wm8350_power.c
260
val->intval = wm8350_read_line_uvolts(wm8350);
drivers/power/supply/wm8350_power.c
28
return wm8350_read_auxadc(wm8350, WM8350_AUXADC_LINE, 0, 0)
drivers/power/supply/wm8350_power.c
281
struct wm8350 *wm8350 = dev_get_drvdata(psy->dev.parent);
drivers/power/supply/wm8350_power.c
286
val->intval = !!(wm8350_get_supplies(wm8350) &
drivers/power/supply/wm8350_power.c
290
val->intval = wm8350_read_usb_uvolts(wm8350);
drivers/power/supply/wm8350_power.c
308
static int wm8350_bat_check_health(struct wm8350 *wm8350)
drivers/power/supply/wm8350_power.c
312
if (wm8350_read_battery_uvolts(wm8350) < 2850000)
drivers/power/supply/wm8350_power.c
315
reg = wm8350_reg_read(wm8350, WM8350_CHARGER_OVERRIDES);
drivers/power/supply/wm8350_power.c
32
static int wm8350_read_usb_uvolts(struct wm8350 *wm8350)
drivers/power/supply/wm8350_power.c
325
static int wm8350_bat_get_charge_type(struct wm8350 *wm8350)
drivers/power/supply/wm8350_power.c
329
state = wm8350_reg_read(wm8350, WM8350_BATTERY_CHARGER_CONTROL_2) &
drivers/power/supply/wm8350_power.c
34
return wm8350_read_auxadc(wm8350, WM8350_AUXADC_USB, 0, 0)
drivers/power/supply/wm8350_power.c
347
struct wm8350 *wm8350 = dev_get_drvdata(psy->dev.parent);
drivers/power/supply/wm8350_power.c
352
val->intval = wm8350_batt_status(wm8350);
drivers/power/supply/wm8350_power.c
355
val->intval = !!(wm8350_get_supplies(wm8350) &
drivers/power/supply/wm8350_power.c
359
val->intval = wm8350_read_battery_uvolts(wm8350);
drivers/power/supply/wm8350_power.c
362
val->intval = wm8350_bat_check_health(wm8350);
drivers/power/supply/wm8350_power.c
365
val->intval = wm8350_bat_get_charge_type(wm8350);
drivers/power/supply/wm8350_power.c
411
static int wm8350_init_charger(struct wm8350 *wm8350)
drivers/power/supply/wm8350_power.c
416
ret = wm8350_register_irq(wm8350, WM8350_IRQ_CHG_BAT_HOT,
drivers/power/supply/wm8350_power.c
417
wm8350_charger_handler, 0, "Battery hot", wm8350);
drivers/power/supply/wm8350_power.c
42
static inline int wm8350_charge_time_min(struct wm8350 *wm8350, int min)
drivers/power/supply/wm8350_power.c
421
ret = wm8350_register_irq(wm8350, WM8350_IRQ_CHG_BAT_COLD,
drivers/power/supply/wm8350_power.c
422
wm8350_charger_handler, 0, "Battery cold", wm8350);
drivers/power/supply/wm8350_power.c
426
ret = wm8350_register_irq(wm8350, WM8350_IRQ_CHG_BAT_FAIL,
drivers/power/supply/wm8350_power.c
427
wm8350_charger_handler, 0, "Battery fail", wm8350);
drivers/power/supply/wm8350_power.c
431
ret = wm8350_register_irq(wm8350, WM8350_IRQ_CHG_TO,
drivers/power/supply/wm8350_power.c
433
"Charger timeout", wm8350);
drivers/power/supply/wm8350_power.c
437
ret = wm8350_register_irq(wm8350, WM8350_IRQ_CHG_END,
drivers/power/supply/wm8350_power.c
439
"Charge end", wm8350);
drivers/power/supply/wm8350_power.c
44
if (!wm8350->power.rev_g_coeff)
drivers/power/supply/wm8350_power.c
443
ret = wm8350_register_irq(wm8350, WM8350_IRQ_CHG_START,
drivers/power/supply/wm8350_power.c
445
"Charge start", wm8350);
drivers/power/supply/wm8350_power.c
449
ret = wm8350_register_irq(wm8350, WM8350_IRQ_CHG_FAST_RDY,
drivers/power/supply/wm8350_power.c
451
"Fast charge ready", wm8350);
drivers/power/supply/wm8350_power.c
455
ret = wm8350_register_irq(wm8350, WM8350_IRQ_CHG_VBATT_LT_3P9,
drivers/power/supply/wm8350_power.c
457
"Battery <3.9V", wm8350);
drivers/power/supply/wm8350_power.c
461
ret = wm8350_register_irq(wm8350, WM8350_IRQ_CHG_VBATT_LT_3P1,
drivers/power/supply/wm8350_power.c
463
"Battery <3.1V", wm8350);
drivers/power/supply/wm8350_power.c
467
ret = wm8350_register_irq(wm8350, WM8350_IRQ_CHG_VBATT_LT_2P85,
drivers/power/supply/wm8350_power.c
469
"Battery <2.85V", wm8350);
drivers/power/supply/wm8350_power.c
474
ret = wm8350_register_irq(wm8350, WM8350_IRQ_EXT_USB_FB,
drivers/power/supply/wm8350_power.c
475
wm8350_charger_handler, 0, "USB", wm8350);
drivers/power/supply/wm8350_power.c
479
ret = wm8350_register_irq(wm8350, WM8350_IRQ_EXT_WALL_FB,
drivers/power/supply/wm8350_power.c
480
wm8350_charger_handler, 0, "Wall", wm8350);
drivers/power/supply/wm8350_power.c
484
ret = wm8350_register_irq(wm8350, WM8350_IRQ_EXT_BAT_FB,
drivers/power/supply/wm8350_power.c
485
wm8350_charger_handler, 0, "Battery", wm8350);
drivers/power/supply/wm8350_power.c
492
wm8350_free_irq(wm8350, WM8350_IRQ_EXT_WALL_FB, wm8350);
drivers/power/supply/wm8350_power.c
494
wm8350_free_irq(wm8350, WM8350_IRQ_EXT_USB_FB, wm8350);
drivers/power/supply/wm8350_power.c
496
wm8350_free_irq(wm8350, WM8350_IRQ_CHG_VBATT_LT_2P85, wm8350);
drivers/power/supply/wm8350_power.c
498
wm8350_free_irq(wm8350, WM8350_IRQ_CHG_VBATT_LT_3P1, wm8350);
drivers/power/supply/wm8350_power.c
50
static int wm8350_get_supplies(struct wm8350 *wm8350)
drivers/power/supply/wm8350_power.c
500
wm8350_free_irq(wm8350, WM8350_IRQ_CHG_VBATT_LT_3P9, wm8350);
drivers/power/supply/wm8350_power.c
502
wm8350_free_irq(wm8350, WM8350_IRQ_CHG_FAST_RDY, wm8350);
drivers/power/supply/wm8350_power.c
504
wm8350_free_irq(wm8350, WM8350_IRQ_CHG_START, wm8350);
drivers/power/supply/wm8350_power.c
506
wm8350_free_irq(wm8350, WM8350_IRQ_CHG_END, wm8350);
drivers/power/supply/wm8350_power.c
508
wm8350_free_irq(wm8350, WM8350_IRQ_CHG_TO, wm8350);
drivers/power/supply/wm8350_power.c
510
wm8350_free_irq(wm8350, WM8350_IRQ_CHG_BAT_FAIL, wm8350);
drivers/power/supply/wm8350_power.c
512
wm8350_free_irq(wm8350, WM8350_IRQ_CHG_BAT_COLD, wm8350);
drivers/power/supply/wm8350_power.c
514
wm8350_free_irq(wm8350, WM8350_IRQ_CHG_BAT_HOT, wm8350);
drivers/power/supply/wm8350_power.c
519
static void free_charger_irq(struct wm8350 *wm8350)
drivers/power/supply/wm8350_power.c
521
wm8350_free_irq(wm8350, WM8350_IRQ_CHG_BAT_HOT, wm8350);
drivers/power/supply/wm8350_power.c
522
wm8350_free_irq(wm8350, WM8350_IRQ_CHG_BAT_COLD, wm8350);
drivers/power/supply/wm8350_power.c
523
wm8350_free_irq(wm8350, WM8350_IRQ_CHG_BAT_FAIL, wm8350);
drivers/power/supply/wm8350_power.c
524
wm8350_free_irq(wm8350, WM8350_IRQ_CHG_TO, wm8350);
drivers/power/supply/wm8350_power.c
525
wm8350_free_irq(wm8350, WM8350_IRQ_CHG_END, wm8350);
drivers/power/supply/wm8350_power.c
526
wm8350_free_irq(wm8350, WM8350_IRQ_CHG_START, wm8350);
drivers/power/supply/wm8350_power.c
527
wm8350_free_irq(wm8350, WM8350_IRQ_CHG_FAST_RDY, wm8350);
drivers/power/supply/wm8350_power.c
528
wm8350_free_irq(wm8350, WM8350_IRQ_CHG_VBATT_LT_3P9, wm8350);
drivers/power/supply/wm8350_power.c
529
wm8350_free_irq(wm8350, WM8350_IRQ_CHG_VBATT_LT_3P1, wm8350);
drivers/power/supply/wm8350_power.c
530
wm8350_free_irq(wm8350, WM8350_IRQ_CHG_VBATT_LT_2P85, wm8350);
drivers/power/supply/wm8350_power.c
531
wm8350_free_irq(wm8350, WM8350_IRQ_EXT_USB_FB, wm8350);
drivers/power/supply/wm8350_power.c
532
wm8350_free_irq(wm8350, WM8350_IRQ_EXT_WALL_FB, wm8350);
drivers/power/supply/wm8350_power.c
533
wm8350_free_irq(wm8350, WM8350_IRQ_EXT_BAT_FB, wm8350);
drivers/power/supply/wm8350_power.c
538
struct wm8350 *wm8350 = platform_get_drvdata(pdev);
drivers/power/supply/wm8350_power.c
539
struct wm8350_power *power = &wm8350->power;
drivers/power/supply/wm8350_power.c
55
sm = wm8350_reg_read(wm8350, WM8350_STATE_MACHINE_STATUS);
drivers/power/supply/wm8350_power.c
557
dev_warn(wm8350->dev, "failed to add charge sysfs: %d\n", ret);
drivers/power/supply/wm8350_power.c
56
ov = wm8350_reg_read(wm8350, WM8350_MISC_OVERRIDES);
drivers/power/supply/wm8350_power.c
560
wm8350_init_charger(wm8350);
drivers/power/supply/wm8350_power.c
561
if (wm8350_charger_config(wm8350, policy) == 0) {
drivers/power/supply/wm8350_power.c
562
wm8350_reg_unlock(wm8350);
drivers/power/supply/wm8350_power.c
563
wm8350_set_bits(wm8350, WM8350_POWER_MGMT_5, WM8350_CHG_ENA);
drivers/power/supply/wm8350_power.c
564
wm8350_reg_lock(wm8350);
drivers/power/supply/wm8350_power.c
57
co = wm8350_reg_read(wm8350, WM8350_COMPARATOR_OVERRIDES);
drivers/power/supply/wm8350_power.c
572
struct wm8350 *wm8350 = platform_get_drvdata(pdev);
drivers/power/supply/wm8350_power.c
574
free_charger_irq(wm8350);
drivers/power/supply/wm8350_power.c
58
chrg = wm8350_reg_read(wm8350, WM8350_BATTERY_CHARGER_CONTROL_2);
drivers/power/supply/wm8350_power.c
86
static int wm8350_charger_config(struct wm8350 *wm8350,
drivers/power/supply/wm8350_power.c
92
dev_warn(wm8350->dev,
drivers/power/supply/wm8350_power.c
99
dev_err(wm8350->dev, "USB fast charge > 500mA\n");
drivers/regulator/wm8350-regulator.c
101
switch (wm8350->pmic.isink_A_dcdc) {
drivers/regulator/wm8350-regulator.c
104
wm8350_set_bits(wm8350, WM8350_POWER_MGMT_7,
drivers/regulator/wm8350-regulator.c
106
wm8350_set_bits(wm8350, WM8350_CSA_FLASH_CONTROL,
drivers/regulator/wm8350-regulator.c
108
wm8350_set_bits(wm8350, WM8350_DCDC_LDO_REQUESTED,
drivers/regulator/wm8350-regulator.c
109
1 << (wm8350->pmic.isink_A_dcdc -
drivers/regulator/wm8350-regulator.c
1106
struct wm8350 *wm8350 = dev_get_drvdata(&pdev->dev);
drivers/regulator/wm8350-regulator.c
1118
val = wm8350_reg_read(wm8350, WM8350_DCDC1_LOW_POWER);
drivers/regulator/wm8350-regulator.c
1119
wm8350->pmic.dcdc1_hib_mode = val & WM8350_DCDC_HIB_MODE_MASK;
drivers/regulator/wm8350-regulator.c
1122
val = wm8350_reg_read(wm8350, WM8350_DCDC3_LOW_POWER);
drivers/regulator/wm8350-regulator.c
1123
wm8350->pmic.dcdc3_hib_mode = val & WM8350_DCDC_HIB_MODE_MASK;
drivers/regulator/wm8350-regulator.c
1126
val = wm8350_reg_read(wm8350, WM8350_DCDC4_LOW_POWER);
drivers/regulator/wm8350-regulator.c
1127
wm8350->pmic.dcdc4_hib_mode = val & WM8350_DCDC_HIB_MODE_MASK;
drivers/regulator/wm8350-regulator.c
1130
val = wm8350_reg_read(wm8350, WM8350_DCDC6_LOW_POWER);
drivers/regulator/wm8350-regulator.c
1131
wm8350->pmic.dcdc6_hib_mode = val & WM8350_DCDC_HIB_MODE_MASK;
drivers/regulator/wm8350-regulator.c
1138
config.regmap = wm8350->regmap;
drivers/regulator/wm8350-regulator.c
1150
ret = wm8350_register_irq(wm8350, wm8350_reg[pdev->id].irq,
drivers/regulator/wm8350-regulator.c
1164
struct wm8350 *wm8350 = rdev_get_drvdata(rdev);
drivers/regulator/wm8350-regulator.c
1166
wm8350_free_irq(wm8350, wm8350_reg[pdev->id].irq, rdev);
drivers/regulator/wm8350-regulator.c
1169
int wm8350_register_regulator(struct wm8350 *wm8350, int reg,
drivers/regulator/wm8350-regulator.c
117
switch (wm8350->pmic.isink_B_dcdc) {
drivers/regulator/wm8350-regulator.c
1177
if (wm8350->pmic.pdev[reg])
drivers/regulator/wm8350-regulator.c
1181
reg > wm8350->pmic.max_dcdc)
drivers/regulator/wm8350-regulator.c
1184
reg > wm8350->pmic.max_isink)
drivers/regulator/wm8350-regulator.c
1191
wm8350->pmic.pdev[reg] = pdev;
drivers/regulator/wm8350-regulator.c
1193
initdata->driver_data = wm8350;
drivers/regulator/wm8350-regulator.c
1196
pdev->dev.parent = wm8350->dev;
drivers/regulator/wm8350-regulator.c
1197
platform_set_drvdata(pdev, wm8350);
drivers/regulator/wm8350-regulator.c
120
wm8350_set_bits(wm8350, WM8350_POWER_MGMT_7,
drivers/regulator/wm8350-regulator.c
1202
dev_err(wm8350->dev, "Failed to register regulator %d: %d\n",
drivers/regulator/wm8350-regulator.c
1205
wm8350->pmic.pdev[reg] = NULL;
drivers/regulator/wm8350-regulator.c
122
wm8350_set_bits(wm8350, WM8350_CSB_FLASH_CONTROL,
drivers/regulator/wm8350-regulator.c
1228
int wm8350_register_led(struct wm8350 *wm8350, int lednum, int dcdc, int isink,
drivers/regulator/wm8350-regulator.c
1235
if (lednum >= ARRAY_SIZE(wm8350->pmic.led) || lednum < 0) {
drivers/regulator/wm8350-regulator.c
1236
dev_err(wm8350->dev, "Invalid LED index %d\n", lednum);
drivers/regulator/wm8350-regulator.c
124
wm8350_set_bits(wm8350, WM8350_DCDC_LDO_REQUESTED,
drivers/regulator/wm8350-regulator.c
1240
led = &wm8350->pmic.led[lednum];
drivers/regulator/wm8350-regulator.c
1243
dev_err(wm8350->dev, "LED %d already allocated\n", lednum);
drivers/regulator/wm8350-regulator.c
1249
dev_err(wm8350->dev, "Failed to allocate LED %d\n", lednum);
drivers/regulator/wm8350-regulator.c
125
1 << (wm8350->pmic.isink_B_dcdc -
drivers/regulator/wm8350-regulator.c
1262
ret = wm8350_register_regulator(wm8350, isink, &led->isink_init);
drivers/regulator/wm8350-regulator.c
1274
ret = wm8350_register_regulator(wm8350, dcdc, &led->dcdc_init);
drivers/regulator/wm8350-regulator.c
1282
wm8350->pmic.isink_A_dcdc = dcdc;
drivers/regulator/wm8350-regulator.c
1285
wm8350->pmic.isink_B_dcdc = dcdc;
drivers/regulator/wm8350-regulator.c
1290
pdev->dev.parent = wm8350->dev;
drivers/regulator/wm8350-regulator.c
1293
dev_err(wm8350->dev, "Failed to register LED %d: %d\n",
drivers/regulator/wm8350-regulator.c
140
struct wm8350 *wm8350 = rdev_get_drvdata(rdev);
drivers/regulator/wm8350-regulator.c
145
switch (wm8350->pmic.isink_A_dcdc) {
drivers/regulator/wm8350-regulator.c
148
wm8350_clear_bits(wm8350, WM8350_DCDC_LDO_REQUESTED,
drivers/regulator/wm8350-regulator.c
149
1 << (wm8350->pmic.isink_A_dcdc -
drivers/regulator/wm8350-regulator.c
151
wm8350_clear_bits(wm8350, WM8350_POWER_MGMT_7,
drivers/regulator/wm8350-regulator.c
159
switch (wm8350->pmic.isink_B_dcdc) {
drivers/regulator/wm8350-regulator.c
162
wm8350_clear_bits(wm8350, WM8350_DCDC_LDO_REQUESTED,
drivers/regulator/wm8350-regulator.c
163
1 << (wm8350->pmic.isink_B_dcdc -
drivers/regulator/wm8350-regulator.c
165
wm8350_clear_bits(wm8350, WM8350_POWER_MGMT_7,
drivers/regulator/wm8350-regulator.c
180
struct wm8350 *wm8350 = rdev_get_drvdata(rdev);
drivers/regulator/wm8350-regulator.c
185
return wm8350_reg_read(wm8350, WM8350_CURRENT_SINK_DRIVER_A) &
drivers/regulator/wm8350-regulator.c
188
return wm8350_reg_read(wm8350, WM8350_CURRENT_SINK_DRIVER_B) &
drivers/regulator/wm8350-regulator.c
196
struct wm8350 *wm8350 = rdev_get_drvdata(rdev);
drivers/regulator/wm8350-regulator.c
202
reg = wm8350_reg_read(wm8350, WM8350_CSA_FLASH_CONTROL);
drivers/regulator/wm8350-regulator.c
205
reg = wm8350_reg_read(wm8350, WM8350_CSB_FLASH_CONTROL);
drivers/regulator/wm8350-regulator.c
239
int wm8350_isink_set_flash(struct wm8350 *wm8350, int isink, u16 mode,
drivers/regulator/wm8350-regulator.c
245
wm8350_reg_write(wm8350, WM8350_CSA_FLASH_CONTROL,
drivers/regulator/wm8350-regulator.c
251
wm8350_reg_write(wm8350, WM8350_CSB_FLASH_CONTROL,
drivers/regulator/wm8350-regulator.c
265
struct wm8350 *wm8350 = rdev_get_drvdata(rdev);
drivers/regulator/wm8350-regulator.c
269
dev_dbg(wm8350->dev, "%s %d mV %d\n", __func__, dcdc, uV / 1000);
drivers/regulator/wm8350-regulator.c
295
val = wm8350_reg_read(wm8350, volt_reg) & ~WM8350_DC1_VSEL_MASK;
drivers/regulator/wm8350-regulator.c
296
wm8350_reg_write(wm8350, volt_reg, val | sel);
drivers/regulator/wm8350-regulator.c
302
struct wm8350 *wm8350 = rdev_get_drvdata(rdev);
drivers/regulator/wm8350-regulator.c
308
val = wm8350_reg_read(wm8350, WM8350_DCDC1_LOW_POWER)
drivers/regulator/wm8350-regulator.c
310
wm8350_reg_write(wm8350, WM8350_DCDC1_LOW_POWER,
drivers/regulator/wm8350-regulator.c
311
val | wm8350->pmic.dcdc1_hib_mode);
drivers/regulator/wm8350-regulator.c
314
val = wm8350_reg_read(wm8350, WM8350_DCDC3_LOW_POWER)
drivers/regulator/wm8350-regulator.c
316
wm8350_reg_write(wm8350, WM8350_DCDC3_LOW_POWER,
drivers/regulator/wm8350-regulator.c
317
val | wm8350->pmic.dcdc3_hib_mode);
drivers/regulator/wm8350-regulator.c
320
val = wm8350_reg_read(wm8350, WM8350_DCDC4_LOW_POWER)
drivers/regulator/wm8350-regulator.c
322
wm8350_reg_write(wm8350, WM8350_DCDC4_LOW_POWER,
drivers/regulator/wm8350-regulator.c
323
val | wm8350->pmic.dcdc4_hib_mode);
drivers/regulator/wm8350-regulator.c
326
val = wm8350_reg_read(wm8350, WM8350_DCDC6_LOW_POWER)
drivers/regulator/wm8350-regulator.c
328
wm8350_reg_write(wm8350, WM8350_DCDC6_LOW_POWER,
drivers/regulator/wm8350-regulator.c
329
val | wm8350->pmic.dcdc6_hib_mode);
drivers/regulator/wm8350-regulator.c
342
struct wm8350 *wm8350 = rdev_get_drvdata(rdev);
drivers/regulator/wm8350-regulator.c
348
val = wm8350_reg_read(wm8350, WM8350_DCDC1_LOW_POWER);
drivers/regulator/wm8350-regulator.c
349
wm8350->pmic.dcdc1_hib_mode = val & WM8350_DCDC_HIB_MODE_MASK;
drivers/regulator/wm8350-regulator.c
350
wm8350_reg_write(wm8350, WM8350_DCDC1_LOW_POWER,
drivers/regulator/wm8350-regulator.c
354
val = wm8350_reg_read(wm8350, WM8350_DCDC3_LOW_POWER);
drivers/regulator/wm8350-regulator.c
355
wm8350->pmic.dcdc3_hib_mode = val & WM8350_DCDC_HIB_MODE_MASK;
drivers/regulator/wm8350-regulator.c
356
wm8350_reg_write(wm8350, WM8350_DCDC3_LOW_POWER,
drivers/regulator/wm8350-regulator.c
360
val = wm8350_reg_read(wm8350, WM8350_DCDC4_LOW_POWER);
drivers/regulator/wm8350-regulator.c
361
wm8350->pmic.dcdc4_hib_mode = val & WM8350_DCDC_HIB_MODE_MASK;
drivers/regulator/wm8350-regulator.c
362
wm8350_reg_write(wm8350, WM8350_DCDC4_LOW_POWER,
drivers/regulator/wm8350-regulator.c
366
val = wm8350_reg_read(wm8350, WM8350_DCDC6_LOW_POWER);
drivers/regulator/wm8350-regulator.c
367
wm8350->pmic.dcdc6_hib_mode = val & WM8350_DCDC_HIB_MODE_MASK;
drivers/regulator/wm8350-regulator.c
368
wm8350_reg_write(wm8350, WM8350_DCDC6_LOW_POWER,
drivers/regulator/wm8350-regulator.c
382
struct wm8350 *wm8350 = rdev_get_drvdata(rdev);
drivers/regulator/wm8350-regulator.c
388
val = wm8350_reg_read(wm8350, WM8350_DCDC2_CONTROL)
drivers/regulator/wm8350-regulator.c
390
wm8350_reg_write(wm8350, WM8350_DCDC2_CONTROL, val |
drivers/regulator/wm8350-regulator.c
394
val = wm8350_reg_read(wm8350, WM8350_DCDC5_CONTROL)
drivers/regulator/wm8350-regulator.c
396
wm8350_reg_write(wm8350, WM8350_DCDC5_CONTROL, val |
drivers/regulator/wm8350-regulator.c
407
struct wm8350 *wm8350 = rdev_get_drvdata(rdev);
drivers/regulator/wm8350-regulator.c
413
val = wm8350_reg_read(wm8350, WM8350_DCDC2_CONTROL)
drivers/regulator/wm8350-regulator.c
415
wm8350_reg_write(wm8350, WM8350_DCDC2_CONTROL, val |
drivers/regulator/wm8350-regulator.c
419
val = wm8350_reg_read(wm8350, WM8350_DCDC5_CONTROL)
drivers/regulator/wm8350-regulator.c
421
wm8350_reg_write(wm8350, WM8350_DCDC5_CONTROL, val |
drivers/regulator/wm8350-regulator.c
433
struct wm8350 *wm8350 = rdev_get_drvdata(rdev);
drivers/regulator/wm8350-regulator.c
439
hib_mode = &wm8350->pmic.dcdc1_hib_mode;
drivers/regulator/wm8350-regulator.c
442
hib_mode = &wm8350->pmic.dcdc3_hib_mode;
drivers/regulator/wm8350-regulator.c
445
hib_mode = &wm8350->pmic.dcdc4_hib_mode;
drivers/regulator/wm8350-regulator.c
448
hib_mode = &wm8350->pmic.dcdc6_hib_mode;
drivers/regulator/wm8350-regulator.c
480
struct wm8350 *wm8350 = rdev_get_drvdata(rdev);
drivers/regulator/wm8350-regulator.c
484
dev_dbg(wm8350->dev, "%s %d mV %d\n", __func__, ldo, uV / 1000);
drivers/regulator/wm8350-regulator.c
508
val = wm8350_reg_read(wm8350, volt_reg) & ~WM8350_LDO1_VSEL_MASK;
drivers/regulator/wm8350-regulator.c
509
wm8350_reg_write(wm8350, volt_reg, val | sel);
drivers/regulator/wm8350-regulator.c
515
struct wm8350 *wm8350 = rdev_get_drvdata(rdev);
drivers/regulator/wm8350-regulator.c
537
val = wm8350_reg_read(wm8350, volt_reg) & ~WM8350_LDO1_HIB_MODE_MASK;
drivers/regulator/wm8350-regulator.c
538
wm8350_reg_write(wm8350, volt_reg, val);
drivers/regulator/wm8350-regulator.c
544
struct wm8350 *wm8350 = rdev_get_drvdata(rdev);
drivers/regulator/wm8350-regulator.c
566
val = wm8350_reg_read(wm8350, volt_reg) & ~WM8350_LDO1_HIB_MODE_MASK;
drivers/regulator/wm8350-regulator.c
567
wm8350_reg_write(wm8350, volt_reg, val | WM8350_LDO1_HIB_MODE_DIS);
drivers/regulator/wm8350-regulator.c
571
int wm8350_dcdc_set_slot(struct wm8350 *wm8350, int dcdc, u16 start,
drivers/regulator/wm8350-regulator.c
577
dev_dbg(wm8350->dev, "%s %d start %d stop %d\n",
drivers/regulator/wm8350-regulator.c
607
val = wm8350_reg_read(wm8350, slot_reg) &
drivers/regulator/wm8350-regulator.c
610
wm8350_reg_write(wm8350, slot_reg,
drivers/regulator/wm8350-regulator.c
619
int wm8350_ldo_set_slot(struct wm8350 *wm8350, int ldo, u16 start, u16 stop)
drivers/regulator/wm8350-regulator.c
624
dev_dbg(wm8350->dev, "%s %d start %d stop %d\n",
drivers/regulator/wm8350-regulator.c
648
val = wm8350_reg_read(wm8350, slot_reg) & ~WM8350_LDO1_SDSLOT_MASK;
drivers/regulator/wm8350-regulator.c
649
wm8350_reg_write(wm8350, slot_reg, val | ((start << 10) | (stop << 6)));
drivers/regulator/wm8350-regulator.c
654
int wm8350_dcdc25_set_mode(struct wm8350 *wm8350, int dcdc, u16 mode,
drivers/regulator/wm8350-regulator.c
659
dev_dbg(wm8350->dev, "%s %d mode: %s %s\n", __func__, dcdc,
drivers/regulator/wm8350-regulator.c
664
val = wm8350_reg_read(wm8350, WM8350_DCDC2_CONTROL)
drivers/regulator/wm8350-regulator.c
667
wm8350_reg_write(wm8350, WM8350_DCDC2_CONTROL, val |
drivers/regulator/wm8350-regulator.c
674
val = wm8350_reg_read(wm8350, WM8350_DCDC5_CONTROL)
drivers/regulator/wm8350-regulator.c
677
wm8350_reg_write(wm8350, WM8350_DCDC5_CONTROL, val |
drivers/regulator/wm8350-regulator.c
691
static int force_continuous_enable(struct wm8350 *wm8350, int dcdc, int enable)
drivers/regulator/wm8350-regulator.c
713
ret = wm8350_set_bits(wm8350, reg,
drivers/regulator/wm8350-regulator.c
716
ret = wm8350_clear_bits(wm8350, reg,
drivers/regulator/wm8350-regulator.c
723
struct wm8350 *wm8350 = rdev_get_drvdata(rdev);
drivers/regulator/wm8350-regulator.c
738
wm8350_set_bits(wm8350, WM8350_DCDC_ACTIVE_OPTIONS, val);
drivers/regulator/wm8350-regulator.c
739
wm8350_clear_bits(wm8350, WM8350_DCDC_SLEEP_OPTIONS, val);
drivers/regulator/wm8350-regulator.c
740
force_continuous_enable(wm8350, dcdc, 1);
drivers/regulator/wm8350-regulator.c
744
wm8350_set_bits(wm8350, WM8350_DCDC_ACTIVE_OPTIONS, val);
drivers/regulator/wm8350-regulator.c
745
wm8350_clear_bits(wm8350, WM8350_DCDC_SLEEP_OPTIONS, val);
drivers/regulator/wm8350-regulator.c
746
force_continuous_enable(wm8350, dcdc, 0);
drivers/regulator/wm8350-regulator.c
750
force_continuous_enable(wm8350, dcdc, 0);
drivers/regulator/wm8350-regulator.c
751
wm8350_clear_bits(wm8350, WM8350_DCDC_SLEEP_OPTIONS, val);
drivers/regulator/wm8350-regulator.c
752
wm8350_clear_bits(wm8350, WM8350_DCDC_ACTIVE_OPTIONS, val);
drivers/regulator/wm8350-regulator.c
756
force_continuous_enable(wm8350, dcdc, 0);
drivers/regulator/wm8350-regulator.c
757
wm8350_set_bits(wm8350, WM8350_DCDC_SLEEP_OPTIONS, val);
drivers/regulator/wm8350-regulator.c
766
struct wm8350 *wm8350 = rdev_get_drvdata(rdev);
drivers/regulator/wm8350-regulator.c
790
active = wm8350_reg_read(wm8350, WM8350_DCDC_ACTIVE_OPTIONS) & mask;
drivers/regulator/wm8350-regulator.c
791
force = wm8350_reg_read(wm8350, reg) & WM8350_DCDC1_FORCE_PWM_ENA;
drivers/regulator/wm8350-regulator.c
792
sleep = wm8350_reg_read(wm8350, WM8350_DCDC_SLEEP_OPTIONS) & mask;
drivers/regulator/wm8350-regulator.c
794
dev_dbg(wm8350->dev, "mask %x active %x sleep %x force %x",
drivers/regulator/wm8350-regulator.c
96
struct wm8350 *wm8350 = rdev_get_drvdata(rdev);
drivers/rtc/rtc-wm8350.c
110
ret = wm8350_set_bits(wm8350, WM8350_RTC_TIME_CONTROL, WM8350_RTC_SET);
drivers/rtc/rtc-wm8350.c
116
rtc_ctrl = wm8350_reg_read(wm8350, WM8350_RTC_TIME_CONTROL);
drivers/rtc/rtc-wm8350.c
126
ret = wm8350_block_write(wm8350, WM8350_RTC_SECONDS_MINUTES, 4, time);
drivers/rtc/rtc-wm8350.c
131
ret = wm8350_clear_bits(wm8350, WM8350_RTC_TIME_CONTROL,
drivers/rtc/rtc-wm8350.c
141
struct wm8350 *wm8350 = dev_get_drvdata(dev);
drivers/rtc/rtc-wm8350.c
146
ret = wm8350_block_read(wm8350, WM8350_ALARM_SECONDS_MINUTES, 4, time);
drivers/rtc/rtc-wm8350.c
185
static int wm8350_rtc_stop_alarm(struct wm8350 *wm8350)
drivers/rtc/rtc-wm8350.c
192
ret = wm8350_set_bits(wm8350, WM8350_RTC_TIME_CONTROL,
drivers/rtc/rtc-wm8350.c
199
rtc_ctrl = wm8350_reg_read(wm8350, WM8350_RTC_TIME_CONTROL);
drivers/rtc/rtc-wm8350.c
209
static int wm8350_rtc_start_alarm(struct wm8350 *wm8350)
drivers/rtc/rtc-wm8350.c
215
ret = wm8350_clear_bits(wm8350, WM8350_RTC_TIME_CONTROL,
drivers/rtc/rtc-wm8350.c
222
rtc_ctrl = wm8350_reg_read(wm8350, WM8350_RTC_TIME_CONTROL);
drivers/rtc/rtc-wm8350.c
235
struct wm8350 *wm8350 = dev_get_drvdata(dev);
drivers/rtc/rtc-wm8350.c
238
return wm8350_rtc_start_alarm(wm8350);
drivers/rtc/rtc-wm8350.c
240
return wm8350_rtc_stop_alarm(wm8350);
drivers/rtc/rtc-wm8350.c
245
struct wm8350 *wm8350 = dev_get_drvdata(dev);
drivers/rtc/rtc-wm8350.c
282
ret = wm8350_rtc_stop_alarm(wm8350);
drivers/rtc/rtc-wm8350.c
287
ret = wm8350_block_write(wm8350, WM8350_ALARM_SECONDS_MINUTES,
drivers/rtc/rtc-wm8350.c
293
ret = wm8350_rtc_start_alarm(wm8350);
drivers/rtc/rtc-wm8350.c
300
struct wm8350 *wm8350 = data;
drivers/rtc/rtc-wm8350.c
301
struct rtc_device *rtc = wm8350->rtc.rtc;
drivers/rtc/rtc-wm8350.c
307
ret = wm8350_set_bits(wm8350, WM8350_RTC_TIME_CONTROL,
drivers/rtc/rtc-wm8350.c
310
dev_err(&(wm8350->rtc.pdev->dev),
drivers/rtc/rtc-wm8350.c
319
struct wm8350 *wm8350 = data;
drivers/rtc/rtc-wm8350.c
320
struct rtc_device *rtc = wm8350->rtc.rtc;
drivers/rtc/rtc-wm8350.c
33
struct wm8350 *wm8350 = dev_get_drvdata(dev);
drivers/rtc/rtc-wm8350.c
338
struct wm8350 *wm8350 = dev_get_drvdata(dev);
drivers/rtc/rtc-wm8350.c
342
reg = wm8350_reg_read(wm8350, WM8350_RTC_TIME_CONTROL);
drivers/rtc/rtc-wm8350.c
344
if (device_may_wakeup(&wm8350->rtc.pdev->dev) &&
drivers/rtc/rtc-wm8350.c
346
ret = wm8350_rtc_stop_alarm(wm8350);
drivers/rtc/rtc-wm8350.c
356
struct wm8350 *wm8350 = dev_get_drvdata(dev);
drivers/rtc/rtc-wm8350.c
359
if (wm8350->rtc.alarm_enabled) {
drivers/rtc/rtc-wm8350.c
360
ret = wm8350_rtc_start_alarm(wm8350);
drivers/rtc/rtc-wm8350.c
371
struct wm8350 *wm8350 = platform_get_drvdata(pdev);
drivers/rtc/rtc-wm8350.c
372
struct wm8350_rtc *wm_rtc = &wm8350->rtc;
drivers/rtc/rtc-wm8350.c
376
timectl = wm8350_reg_read(wm8350, WM8350_RTC_TIME_CONTROL);
drivers/rtc/rtc-wm8350.c
387
power5 = wm8350_reg_read(wm8350, WM8350_POWER_MGMT_5);
drivers/rtc/rtc-wm8350.c
389
wm8350_reg_unlock(wm8350);
drivers/rtc/rtc-wm8350.c
391
ret = wm8350_set_bits(wm8350, WM8350_POWER_MGMT_5,
drivers/rtc/rtc-wm8350.c
398
wm8350_reg_lock(wm8350);
drivers/rtc/rtc-wm8350.c
404
ret = wm8350_clear_bits(wm8350, WM8350_RTC_TIME_CONTROL,
drivers/rtc/rtc-wm8350.c
413
timectl = wm8350_reg_read(wm8350,
drivers/rtc/rtc-wm8350.c
42
ret = wm8350_block_read(wm8350, WM8350_RTC_SECONDS_MINUTES,
drivers/rtc/rtc-wm8350.c
430
ret = wm8350_register_irq(wm8350, WM8350_IRQ_RTC_SEC,
drivers/rtc/rtc-wm8350.c
432
"RTC Seconds", wm8350);
drivers/rtc/rtc-wm8350.c
436
wm8350_mask_irq(wm8350, WM8350_IRQ_RTC_SEC);
drivers/rtc/rtc-wm8350.c
438
ret = wm8350_register_irq(wm8350, WM8350_IRQ_RTC_ALM,
drivers/rtc/rtc-wm8350.c
440
"RTC Alarm", wm8350);
drivers/rtc/rtc-wm8350.c
442
wm8350_free_irq(wm8350, WM8350_IRQ_RTC_SEC, wm8350);
drivers/rtc/rtc-wm8350.c
451
struct wm8350 *wm8350 = platform_get_drvdata(pdev);
drivers/rtc/rtc-wm8350.c
453
wm8350_free_irq(wm8350, WM8350_IRQ_RTC_SEC, wm8350);
drivers/rtc/rtc-wm8350.c
454
wm8350_free_irq(wm8350, WM8350_IRQ_RTC_ALM, wm8350);
drivers/rtc/rtc-wm8350.c
46
ret = wm8350_block_read(wm8350, WM8350_RTC_SECONDS_MINUTES,
drivers/rtc/rtc-wm8350.c
92
struct wm8350 *wm8350 = dev_get_drvdata(dev);
drivers/watchdog/wm8350_wdt.c
105
struct wm8350 *wm8350 = watchdog_get_drvdata(wdt_dev);
drivers/watchdog/wm8350_wdt.c
111
reg = wm8350_reg_read(wm8350, WM8350_SYSTEM_CONTROL_2);
drivers/watchdog/wm8350_wdt.c
112
ret = wm8350_reg_write(wm8350, WM8350_SYSTEM_CONTROL_2, reg);
drivers/watchdog/wm8350_wdt.c
142
struct wm8350 *wm8350 = platform_get_drvdata(pdev);
drivers/watchdog/wm8350_wdt.c
144
if (!wm8350) {
drivers/watchdog/wm8350_wdt.c
150
watchdog_set_drvdata(&wm8350_wdt, wm8350);
drivers/watchdog/wm8350_wdt.c
39
struct wm8350 *wm8350 = watchdog_get_drvdata(wdt_dev);
drivers/watchdog/wm8350_wdt.c
50
wm8350_reg_unlock(wm8350);
drivers/watchdog/wm8350_wdt.c
52
reg = wm8350_reg_read(wm8350, WM8350_SYSTEM_CONTROL_2);
drivers/watchdog/wm8350_wdt.c
55
ret = wm8350_reg_write(wm8350, WM8350_SYSTEM_CONTROL_2, reg);
drivers/watchdog/wm8350_wdt.c
57
wm8350_reg_lock(wm8350);
drivers/watchdog/wm8350_wdt.c
66
struct wm8350 *wm8350 = watchdog_get_drvdata(wdt_dev);
drivers/watchdog/wm8350_wdt.c
71
wm8350_reg_unlock(wm8350);
drivers/watchdog/wm8350_wdt.c
73
reg = wm8350_reg_read(wm8350, WM8350_SYSTEM_CONTROL_2);
drivers/watchdog/wm8350_wdt.c
76
ret = wm8350_reg_write(wm8350, WM8350_SYSTEM_CONTROL_2, reg);
drivers/watchdog/wm8350_wdt.c
78
wm8350_reg_lock(wm8350);
drivers/watchdog/wm8350_wdt.c
86
struct wm8350 *wm8350 = watchdog_get_drvdata(wdt_dev);
drivers/watchdog/wm8350_wdt.c
91
wm8350_reg_unlock(wm8350);
drivers/watchdog/wm8350_wdt.c
93
reg = wm8350_reg_read(wm8350, WM8350_SYSTEM_CONTROL_2);
drivers/watchdog/wm8350_wdt.c
95
ret = wm8350_reg_write(wm8350, WM8350_SYSTEM_CONTROL_2, reg);
drivers/watchdog/wm8350_wdt.c
97
wm8350_reg_lock(wm8350);
include/linux/mfd/wm8350/comparator.h
163
struct wm8350;
include/linux/mfd/wm8350/comparator.h
168
int wm8350_read_auxadc(struct wm8350 *wm8350, int channel, int scale,
include/linux/mfd/wm8350/core.h
590
struct wm8350;
include/linux/mfd/wm8350/core.h
633
int (*init)(struct wm8350 *wm8350);
include/linux/mfd/wm8350/core.h
643
int wm8350_device_init(struct wm8350 *wm8350, int irq,
include/linux/mfd/wm8350/core.h
649
int wm8350_clear_bits(struct wm8350 *wm8350, u16 reg, u16 mask);
include/linux/mfd/wm8350/core.h
650
int wm8350_set_bits(struct wm8350 *wm8350, u16 reg, u16 mask);
include/linux/mfd/wm8350/core.h
651
u16 wm8350_reg_read(struct wm8350 *wm8350, int reg);
include/linux/mfd/wm8350/core.h
652
int wm8350_reg_write(struct wm8350 *wm8350, int reg, u16 val);
include/linux/mfd/wm8350/core.h
653
int wm8350_reg_lock(struct wm8350 *wm8350);
include/linux/mfd/wm8350/core.h
654
int wm8350_reg_unlock(struct wm8350 *wm8350);
include/linux/mfd/wm8350/core.h
655
int wm8350_block_read(struct wm8350 *wm8350, int reg, int size, u16 *dest);
include/linux/mfd/wm8350/core.h
656
int wm8350_block_write(struct wm8350 *wm8350, int reg, int size, u16 *src);
include/linux/mfd/wm8350/core.h
661
static inline int wm8350_register_irq(struct wm8350 *wm8350, int irq,
include/linux/mfd/wm8350/core.h
666
if (!wm8350->irq_base)
include/linux/mfd/wm8350/core.h
669
return request_threaded_irq(irq + wm8350->irq_base, NULL,
include/linux/mfd/wm8350/core.h
673
static inline void wm8350_free_irq(struct wm8350 *wm8350, int irq, void *data)
include/linux/mfd/wm8350/core.h
675
free_irq(irq + wm8350->irq_base, data);
include/linux/mfd/wm8350/core.h
678
static inline void wm8350_mask_irq(struct wm8350 *wm8350, int irq)
include/linux/mfd/wm8350/core.h
680
disable_irq(irq + wm8350->irq_base);
include/linux/mfd/wm8350/core.h
683
static inline void wm8350_unmask_irq(struct wm8350 *wm8350, int irq)
include/linux/mfd/wm8350/core.h
685
enable_irq(irq + wm8350->irq_base);
include/linux/mfd/wm8350/core.h
688
int wm8350_irq_init(struct wm8350 *wm8350, int irq,
include/linux/mfd/wm8350/core.h
690
int wm8350_irq_exit(struct wm8350 *wm8350);
include/linux/mfd/wm8350/gpio.h
342
struct wm8350;
include/linux/mfd/wm8350/gpio.h
344
int wm8350_gpio_config(struct wm8350 *wm8350, int gpio, int dir, int func,
include/linux/mfd/wm8350/pmic.h
698
struct wm8350;
include/linux/mfd/wm8350/pmic.h
750
int wm8350_register_regulator(struct wm8350 *wm8350, int reg,
include/linux/mfd/wm8350/pmic.h
752
int wm8350_register_led(struct wm8350 *wm8350, int lednum, int dcdc, int isink,
include/linux/mfd/wm8350/pmic.h
758
int wm8350_dcdc_set_slot(struct wm8350 *wm8350, int dcdc, u16 start,
include/linux/mfd/wm8350/pmic.h
760
int wm8350_dcdc25_set_mode(struct wm8350 *wm8350, int dcdc, u16 mode,
include/linux/mfd/wm8350/pmic.h
766
int wm8350_ldo_set_slot(struct wm8350 *wm8350, int ldo, u16 start, u16 stop);
include/linux/mfd/wm8350/pmic.h
771
int wm8350_isink_set_flash(struct wm8350 *wm8350, int isink, u16 mode,
sound/soc/codecs/wm8350.c
100
wm8350_reg_write(wm8350, WM8350_LOUT1_VOLUME,
sound/soc/codecs/wm8350.c
1027
struct wm8350 *wm8350 = priv->wm8350;
sound/soc/codecs/wm8350.c
1036
wm8350_clear_bits(wm8350, WM8350_POWER_MGMT_4,
sound/soc/codecs/wm8350.c
1045
dev_dbg(wm8350->dev,
sound/soc/codecs/wm8350.c
1066
wm8350_set_bits(wm8350, WM8350_POWER_MGMT_4, WM8350_FLL_OSC_ENA);
sound/soc/codecs/wm8350.c
1067
wm8350_set_bits(wm8350, WM8350_POWER_MGMT_4, WM8350_FLL_ENA);
sound/soc/codecs/wm8350.c
108
reg = wm8350_reg_read(wm8350, WM8350_ROUT1_VOLUME);
sound/soc/codecs/wm8350.c
1080
struct wm8350 *wm8350 = priv->wm8350;
sound/soc/codecs/wm8350.c
1082
wm8350->codec.platform_data;
sound/soc/codecs/wm8350.c
1088
pm1 = wm8350_reg_read(wm8350, WM8350_POWER_MGMT_1) &
sound/soc/codecs/wm8350.c
1090
wm8350_reg_write(wm8350, WM8350_POWER_MGMT_1,
sound/soc/codecs/wm8350.c
1096
pm1 = wm8350_reg_read(wm8350, WM8350_POWER_MGMT_1);
sound/soc/codecs/wm8350.c
1098
wm8350_reg_write(wm8350, WM8350_POWER_MGMT_1,
sound/soc/codecs/wm8350.c
1110
wm8350_set_bits(wm8350, WM8350_POWER_MGMT_4,
sound/soc/codecs/wm8350.c
1114
wm8350_set_bits(wm8350, WM8350_DAC_MUTE,
sound/soc/codecs/wm8350.c
1118
wm8350_reg_write(wm8350, WM8350_ANTI_POP_CONTROL,
sound/soc/codecs/wm8350.c
1130
wm8350_reg_write(wm8350, WM8350_ANTI_POP_CONTROL,
sound/soc/codecs/wm8350.c
1134
wm8350_reg_write(wm8350, WM8350_POWER_MGMT_1,
sound/soc/codecs/wm8350.c
1146
pm1 = wm8350_reg_read(wm8350, WM8350_POWER_MGMT_1) &
sound/soc/codecs/wm8350.c
115
wm8350_reg_write(wm8350, WM8350_ROUT1_VOLUME,
sound/soc/codecs/wm8350.c
1150
wm8350_reg_write(wm8350, WM8350_POWER_MGMT_1,
sound/soc/codecs/wm8350.c
1156
wm8350_reg_write(wm8350, WM8350_POWER_MGMT_1, pm1);
sound/soc/codecs/wm8350.c
1159
wm8350_reg_write(wm8350, WM8350_ANTI_POP_CONTROL, 0);
sound/soc/codecs/wm8350.c
1163
pm1 = wm8350_reg_read(wm8350, WM8350_POWER_MGMT_1) &
sound/soc/codecs/wm8350.c
1165
wm8350_reg_write(wm8350, WM8350_POWER_MGMT_1,
sound/soc/codecs/wm8350.c
1176
wm8350_set_bits(wm8350, WM8350_DAC_MUTE, WM8350_DAC_MUTE_ENA);
sound/soc/codecs/wm8350.c
1178
wm8350_set_bits(wm8350, WM8350_POWER_MGMT_3,
sound/soc/codecs/wm8350.c
1183
wm8350_reg_write(wm8350, WM8350_ANTI_POP_CONTROL,
sound/soc/codecs/wm8350.c
1187
pm1 = wm8350_reg_read(wm8350, WM8350_POWER_MGMT_1) &
sound/soc/codecs/wm8350.c
1189
wm8350_reg_write(wm8350, WM8350_POWER_MGMT_1, pm1);
sound/soc/codecs/wm8350.c
1196
wm8350_reg_write(wm8350, WM8350_ANTI_POP_CONTROL,
sound/soc/codecs/wm8350.c
1204
pm1 = wm8350_reg_read(wm8350, WM8350_POWER_MGMT_1) &
sound/soc/codecs/wm8350.c
1206
wm8350_reg_write(wm8350, WM8350_POWER_MGMT_1,
sound/soc/codecs/wm8350.c
1214
wm8350_reg_write(wm8350, WM8350_POWER_MGMT_1, pm1);
sound/soc/codecs/wm8350.c
1217
wm8350_reg_write(wm8350, WM8350_ANTI_POP_CONTROL, 0);
sound/soc/codecs/wm8350.c
1219
wm8350_clear_bits(wm8350, WM8350_LOUT1_VOLUME,
sound/soc/codecs/wm8350.c
1221
wm8350_clear_bits(wm8350, WM8350_ROUT1_VOLUME,
sound/soc/codecs/wm8350.c
1223
wm8350_clear_bits(wm8350, WM8350_LOUT2_VOLUME,
sound/soc/codecs/wm8350.c
1225
wm8350_clear_bits(wm8350, WM8350_ROUT2_VOLUME,
sound/soc/codecs/wm8350.c
1229
wm8350_clear_bits(wm8350, WM8350_POWER_MGMT_4,
sound/soc/codecs/wm8350.c
124
wm8350_reg_write(wm8350, WM8350_ROUT1_VOLUME,
sound/soc/codecs/wm8350.c
1243
struct wm8350 *wm8350 = priv->wm8350;
sound/soc/codecs/wm8350.c
1247
reg = wm8350_reg_read(wm8350, WM8350_JACK_PIN_STATUS);
sound/soc/codecs/wm8350.c
1276
struct wm8350 *wm8350 = priv->wm8350;
sound/soc/codecs/wm8350.c
1282
if (device_may_wakeup(wm8350->dev))
sound/soc/codecs/wm8350.c
1283
pm_wakeup_event(wm8350->dev, 250);
sound/soc/codecs/wm8350.c
1294
struct wm8350 *wm8350 = priv->wm8350;
sound/soc/codecs/wm8350.c
1300
if (device_may_wakeup(wm8350->dev))
sound/soc/codecs/wm8350.c
1301
pm_wakeup_event(wm8350->dev, 250);
sound/soc/codecs/wm8350.c
132
wm8350_set_bits(wm8350, WM8350_LOUT1_VOLUME, WM8350_OUT1_VU);
sound/soc/codecs/wm8350.c
1324
struct wm8350 *wm8350 = priv->wm8350;
sound/soc/codecs/wm8350.c
1345
wm8350_set_bits(wm8350, WM8350_POWER_MGMT_4, WM8350_TOCLK_ENA);
sound/soc/codecs/wm8350.c
1346
wm8350_set_bits(wm8350, WM8350_JACK_DETECT, ena);
sound/soc/codecs/wm8350.c
1348
wm8350_clear_bits(wm8350, WM8350_JACK_DETECT, ena);
sound/soc/codecs/wm8350.c
1368
struct wm8350 *wm8350 = priv->wm8350;
sound/soc/codecs/wm8350.c
1376
reg = wm8350_reg_read(wm8350, WM8350_JACK_PIN_STATUS);
sound/soc/codecs/wm8350.c
1404
struct wm8350 *wm8350 = priv->wm8350;
sound/soc/codecs/wm8350.c
1411
wm8350_set_bits(wm8350, WM8350_POWER_MGMT_4, WM8350_TOCLK_ENA);
sound/soc/codecs/wm8350.c
1412
wm8350_set_bits(wm8350, WM8350_POWER_MGMT_1,
sound/soc/codecs/wm8350.c
1415
wm8350_clear_bits(wm8350, WM8350_POWER_MGMT_1,
sound/soc/codecs/wm8350.c
143
struct wm8350 *wm8350 = wm8350_data->wm8350;
sound/soc/codecs/wm8350.c
1460
struct wm8350 *wm8350 = dev_get_platdata(component->dev);
sound/soc/codecs/wm8350.c
1466
if (wm8350->codec.platform_data == NULL) {
sound/soc/codecs/wm8350.c
1476
snd_soc_component_init_regmap(component, wm8350->regmap);
sound/soc/codecs/wm8350.c
1479
priv->wm8350 = wm8350;
sound/soc/codecs/wm8350.c
148
reg = wm8350_reg_read(wm8350, WM8350_LOUT2_VOLUME);
sound/soc/codecs/wm8350.c
1484
ret = devm_regulator_bulk_get(wm8350->dev, ARRAY_SIZE(priv->supplies),
sound/soc/codecs/wm8350.c
1490
wm8350_clear_bits(wm8350, WM8350_POWER_MGMT_5, WM8350_CODEC_ENA);
sound/soc/codecs/wm8350.c
1497
wm8350_set_bits(wm8350, WM8350_POWER_MGMT_5, WM8350_CODEC_ENA);
sound/soc/codecs/wm8350.c
1507
out1->left_vol = (wm8350_reg_read(wm8350, WM8350_LOUT1_VOLUME) &
sound/soc/codecs/wm8350.c
1509
out1->right_vol = (wm8350_reg_read(wm8350, WM8350_ROUT1_VOLUME) &
sound/soc/codecs/wm8350.c
1511
out2->left_vol = (wm8350_reg_read(wm8350, WM8350_LOUT2_VOLUME) &
sound/soc/codecs/wm8350.c
1513
out2->right_vol = (wm8350_reg_read(wm8350, WM8350_ROUT2_VOLUME) &
sound/soc/codecs/wm8350.c
1515
wm8350_reg_write(wm8350, WM8350_LOUT1_VOLUME, 0);
sound/soc/codecs/wm8350.c
1516
wm8350_reg_write(wm8350, WM8350_ROUT1_VOLUME, 0);
sound/soc/codecs/wm8350.c
1517
wm8350_reg_write(wm8350, WM8350_LOUT2_VOLUME, 0);
sound/soc/codecs/wm8350.c
1518
wm8350_reg_write(wm8350, WM8350_ROUT2_VOLUME, 0);
sound/soc/codecs/wm8350.c
1521
wm8350_set_bits(wm8350, WM8350_LOUT1_VOLUME,
sound/soc/codecs/wm8350.c
1523
wm8350_set_bits(wm8350, WM8350_LOUT2_VOLUME,
sound/soc/codecs/wm8350.c
1525
wm8350_set_bits(wm8350, WM8350_ROUT1_VOLUME,
sound/soc/codecs/wm8350.c
1527
wm8350_set_bits(wm8350, WM8350_ROUT2_VOLUME,
sound/soc/codecs/wm8350.c
1531
wm8350_clear_bits(wm8350, WM8350_AI_FORMATING, WM8350_AIF_TRI);
sound/soc/codecs/wm8350.c
1534
wm8350_clear_bits(wm8350, WM8350_ADC_DAC_COMP,
sound/soc/codecs/wm8350.c
1538
wm8350_clear_bits(wm8350, WM8350_JACK_DETECT,
sound/soc/codecs/wm8350.c
1541
ret = wm8350_register_irq(wm8350, WM8350_IRQ_CODEC_JCK_DET_L,
sound/soc/codecs/wm8350.c
1547
ret = wm8350_register_irq(wm8350, WM8350_IRQ_CODEC_JCK_DET_R,
sound/soc/codecs/wm8350.c
155
wm8350_reg_write(wm8350, WM8350_LOUT2_VOLUME,
sound/soc/codecs/wm8350.c
1553
ret = wm8350_register_irq(wm8350, WM8350_IRQ_CODEC_MICSCD,
sound/soc/codecs/wm8350.c
1558
ret = wm8350_register_irq(wm8350, WM8350_IRQ_CODEC_MICD,
sound/soc/codecs/wm8350.c
1566
wm8350_free_irq(wm8350, WM8350_IRQ_CODEC_MICSCD, priv);
sound/soc/codecs/wm8350.c
1568
wm8350_free_irq(wm8350, WM8350_IRQ_CODEC_JCK_DET_R, priv);
sound/soc/codecs/wm8350.c
1570
wm8350_free_irq(wm8350, WM8350_IRQ_CODEC_JCK_DET_L, priv);
sound/soc/codecs/wm8350.c
1578
struct wm8350 *wm8350 = dev_get_platdata(component->dev);
sound/soc/codecs/wm8350.c
1580
wm8350_clear_bits(wm8350, WM8350_JACK_DETECT,
sound/soc/codecs/wm8350.c
1582
wm8350_clear_bits(wm8350, WM8350_POWER_MGMT_4, WM8350_TOCLK_ENA);
sound/soc/codecs/wm8350.c
1584
wm8350_free_irq(wm8350, WM8350_IRQ_CODEC_MICD, priv);
sound/soc/codecs/wm8350.c
1585
wm8350_free_irq(wm8350, WM8350_IRQ_CODEC_MICSCD, priv);
sound/soc/codecs/wm8350.c
1586
wm8350_free_irq(wm8350, WM8350_IRQ_CODEC_JCK_DET_L, priv);
sound/soc/codecs/wm8350.c
1587
wm8350_free_irq(wm8350, WM8350_IRQ_CODEC_JCK_DET_R, priv);
sound/soc/codecs/wm8350.c
1600
wm8350_clear_bits(wm8350, WM8350_POWER_MGMT_5, WM8350_CODEC_ENA);
sound/soc/codecs/wm8350.c
164
wm8350_reg_write(wm8350, WM8350_LOUT2_VOLUME,
sound/soc/codecs/wm8350.c
172
reg = wm8350_reg_read(wm8350, WM8350_ROUT2_VOLUME);
sound/soc/codecs/wm8350.c
179
wm8350_reg_write(wm8350, WM8350_ROUT2_VOLUME,
sound/soc/codecs/wm8350.c
188
wm8350_reg_write(wm8350, WM8350_ROUT2_VOLUME,
sound/soc/codecs/wm8350.c
196
wm8350_set_bits(wm8350, WM8350_LOUT2_VOLUME, WM8350_OUT2_VU);
sound/soc/codecs/wm8350.c
60
struct wm8350 *wm8350;
sound/soc/codecs/wm8350.c
756
struct wm8350 *wm8350 = wm8350_data->wm8350;
sound/soc/codecs/wm8350.c
761
wm8350_clear_bits(wm8350, WM8350_CLOCK_CONTROL_1,
sound/soc/codecs/wm8350.c
768
wm8350_set_bits(wm8350, WM8350_CLOCK_CONTROL_1,
sound/soc/codecs/wm8350.c
778
wm8350_set_bits(wm8350, WM8350_CLOCK_CONTROL_2,
sound/soc/codecs/wm8350.c
78
struct wm8350 *wm8350 = wm8350_data->wm8350;
sound/soc/codecs/wm8350.c
781
wm8350_clear_bits(wm8350, WM8350_CLOCK_CONTROL_2,
sound/soc/codecs/wm8350.c
83
reg = wm8350_reg_read(wm8350, WM8350_LOUT1_VOLUME);
sound/soc/codecs/wm8350.c
91
wm8350_reg_write(wm8350, WM8350_LOUT1_VOLUME,
sound/soc/codecs/wm8350.c
910
struct wm8350 *wm8350 = wm8350_data->wm8350;
sound/soc/codecs/wm8350.c
936
wm8350_set_bits(wm8350, WM8350_DAC_MUTE_VOLUME,
sound/soc/codecs/wm8350.c
939
wm8350_clear_bits(wm8350, WM8350_DAC_MUTE_VOLUME,