Lines Matching refs:wm831x

3  * PMU driver for Wolfson Microelectronics wm831x PMICs
15 #include <linux/mfd/wm831x/core.h>
16 #include <linux/mfd/wm831x/auxadc.h>
17 #include <linux/mfd/wm831x/pmu.h>
18 #include <linux/mfd/wm831x/pdata.h>
21 struct wm831x *wm831x;
36 static int wm831x_power_check_online(struct wm831x *wm831x, int supply,
41 ret = wm831x_reg_read(wm831x, WM831X_SYSTEM_STATUS);
53 static int wm831x_power_read_voltage(struct wm831x *wm831x,
59 ret = wm831x_auxadc_read_uv(wm831x, src);
74 struct wm831x *wm831x = wm831x_power->wm831x;
79 ret = wm831x_power_check_online(wm831x, WM831X_PWR_WALL, val);
82 ret = wm831x_power_read_voltage(wm831x, WM831X_AUX_WALL, val);
105 struct wm831x *wm831x = wm831x_power->wm831x;
110 ret = wm831x_power_check_online(wm831x, WM831X_PWR_USB, val);
113 ret = wm831x_power_read_voltage(wm831x, WM831X_AUX_USB, val);
156 dev_dbg(wm831x_power->wm831x->dev,
159 wm831x_set_bits(wm831x_power->wm831x, WM831X_POWER_STATE,
237 static void wm831x_battery_apply_config(struct wm831x *wm831x,
248 dev_err(wm831x->dev, "Invalid %s %d%s\n",
252 dev_dbg(wm831x->dev, "Set %s of %d%s\n", name, val, units);
256 static void wm831x_config_battery(struct wm831x *wm831x)
258 struct wm831x_pdata *wm831x_pdata = wm831x->dev->platform_data;
263 dev_warn(wm831x->dev,
274 dev_info(wm831x->dev, "Battery charger disabled\n");
284 wm831x_battery_apply_config(wm831x, trickle_ilims,
289 wm831x_battery_apply_config(wm831x, vsels, ARRAY_SIZE(vsels),
293 wm831x_battery_apply_config(wm831x, fast_ilims, ARRAY_SIZE(fast_ilims),
297 wm831x_battery_apply_config(wm831x, eoc_iterms, ARRAY_SIZE(eoc_iterms),
301 wm831x_battery_apply_config(wm831x, chg_times, ARRAY_SIZE(chg_times),
305 ret = wm831x_reg_unlock(wm831x);
307 dev_err(wm831x->dev, "Failed to unlock registers: %d\n", ret);
311 ret = wm831x_set_bits(wm831x, WM831X_CHARGER_CONTROL_1,
317 dev_err(wm831x->dev, "Failed to set charger control 1: %d\n",
320 ret = wm831x_set_bits(wm831x, WM831X_CHARGER_CONTROL_2,
328 dev_err(wm831x->dev, "Failed to set charger control 2: %d\n",
331 wm831x_reg_lock(wm831x);
334 static int wm831x_bat_check_status(struct wm831x *wm831x, int *status)
338 ret = wm831x_reg_read(wm831x, WM831X_SYSTEM_STATUS);
347 ret = wm831x_reg_read(wm831x, WM831X_CHARGER_STATUS);
368 static int wm831x_bat_check_type(struct wm831x *wm831x, int *type)
372 ret = wm831x_reg_read(wm831x, WM831X_CHARGER_STATUS);
393 static int wm831x_bat_check_health(struct wm831x *wm831x, int *health)
397 ret = wm831x_reg_read(wm831x, WM831X_CHARGER_STATUS);
437 struct wm831x *wm831x = wm831x_power->wm831x;
442 ret = wm831x_bat_check_status(wm831x, &val->intval);
445 ret = wm831x_power_check_online(wm831x, WM831X_PWR_SRC_BATT,
449 ret = wm831x_power_read_voltage(wm831x, WM831X_AUX_BATT, val);
452 ret = wm831x_bat_check_health(wm831x, &val->intval);
455 ret = wm831x_bat_check_type(wm831x, &val->intval);
487 struct wm831x *wm831x = wm831x_power->wm831x;
489 dev_dbg(wm831x->dev, "Battery status changed: %d\n", irq);
507 struct wm831x *wm831x = wm831x_power->wm831x;
511 dev_crit(wm831x->dev, "SYSVDD under voltage\n");
519 struct wm831x *wm831x = wm831x_power->wm831x;
521 dev_dbg(wm831x->dev, "Power source changed\n");
534 struct wm831x *wm831x = dev_get_drvdata(pdev->dev.parent);
535 struct wm831x_pdata *wm831x_pdata = wm831x->dev->platform_data;
544 power->wm831x = wm831x;
549 "wm831x-wall.%d", wm831x_pdata->wm831x_num);
551 "wm831x-battery.%d", wm831x_pdata->wm831x_num);
553 "wm831x-usb.%d", wm831x_pdata->wm831x_num);
556 "wm831x-wall");
558 "wm831x-battery");
560 "wm831x-usb");
566 wm831x_config_battery(wm831x);
591 ret = wm831x_reg_read(wm831x, WM831X_CHARGER_CONTROL_1);
611 irq = wm831x_irq(wm831x, platform_get_irq_byname(pdev, "SYSLO"));
621 irq = wm831x_irq(wm831x, platform_get_irq_byname(pdev, "PWR SRC"));
632 irq = wm831x_irq(wm831x,
681 irq = wm831x_irq(wm831x, platform_get_irq_byname(pdev, "PWR SRC"));
684 irq = wm831x_irq(wm831x, platform_get_irq_byname(pdev, "SYSLO"));
700 struct wm831x *wm831x = wm831x_power->wm831x;
709 irq = wm831x_irq(wm831x,
715 irq = wm831x_irq(wm831x, platform_get_irq_byname(pdev, "PWR SRC"));
718 irq = wm831x_irq(wm831x, platform_get_irq_byname(pdev, "SYSLO"));
732 .name = "wm831x-power",
741 MODULE_ALIAS("platform:wm831x-power");