Home
last modified time | relevance | path

Searched refs:wm831x (Results 1 – 39 of 39) sorted by relevance

/linux-4.4.14/drivers/mfd/
Dwm831x-auxadc.c36 static int wm831x_auxadc_read_irq(struct wm831x *wm831x, in wm831x_auxadc_read_irq() argument
51 mutex_lock(&wm831x->auxadc_lock); in wm831x_auxadc_read_irq()
54 list_add(&req->list, &wm831x->auxadc_pending); in wm831x_auxadc_read_irq()
56 ena = !wm831x->auxadc_active; in wm831x_auxadc_read_irq()
59 ret = wm831x_set_bits(wm831x, WM831X_AUXADC_CONTROL, in wm831x_auxadc_read_irq()
62 dev_err(wm831x->dev, "Failed to enable AUXADC: %d\n", in wm831x_auxadc_read_irq()
69 if (!(wm831x->auxadc_active & (1 << input))) { in wm831x_auxadc_read_irq()
70 ret = wm831x_set_bits(wm831x, WM831X_AUXADC_SOURCE, in wm831x_auxadc_read_irq()
73 dev_err(wm831x->dev, in wm831x_auxadc_read_irq()
78 wm831x->auxadc_active |= 1 << input; in wm831x_auxadc_read_irq()
[all …]
Dwm831x-irq.c329 static inline struct wm831x_irq_data *irq_to_wm831x_irq(struct wm831x *wm831x, in irq_to_wm831x_irq() argument
337 struct wm831x *wm831x = irq_data_get_irq_chip_data(data); in wm831x_irq_lock() local
339 mutex_lock(&wm831x->irq_lock); in wm831x_irq_lock()
344 struct wm831x *wm831x = irq_data_get_irq_chip_data(data); in wm831x_irq_sync_unlock() local
347 for (i = 0; i < ARRAY_SIZE(wm831x->gpio_update); i++) { in wm831x_irq_sync_unlock()
348 if (wm831x->gpio_update[i]) { in wm831x_irq_sync_unlock()
349 wm831x_set_bits(wm831x, WM831X_GPIO1_CONTROL + i, in wm831x_irq_sync_unlock()
351 wm831x->gpio_update[i]); in wm831x_irq_sync_unlock()
352 wm831x->gpio_update[i] = 0; in wm831x_irq_sync_unlock()
356 for (i = 0; i < ARRAY_SIZE(wm831x->irq_masks_cur); i++) { in wm831x_irq_sync_unlock()
[all …]
Dwm831x-i2c.c30 struct wm831x *wm831x; in wm831x_i2c_probe() local
33 wm831x = devm_kzalloc(&i2c->dev, sizeof(struct wm831x), GFP_KERNEL); in wm831x_i2c_probe()
34 if (wm831x == NULL) in wm831x_i2c_probe()
37 i2c_set_clientdata(i2c, wm831x); in wm831x_i2c_probe()
38 wm831x->dev = &i2c->dev; in wm831x_i2c_probe()
40 wm831x->regmap = devm_regmap_init_i2c(i2c, &wm831x_regmap_config); in wm831x_i2c_probe()
41 if (IS_ERR(wm831x->regmap)) { in wm831x_i2c_probe()
42 ret = PTR_ERR(wm831x->regmap); in wm831x_i2c_probe()
43 dev_err(wm831x->dev, "Failed to allocate register map: %d\n", in wm831x_i2c_probe()
48 return wm831x_device_init(wm831x, id->driver_data, i2c->irq); in wm831x_i2c_probe()
[all …]
Dwm831x-spi.c27 struct wm831x *wm831x; in wm831x_spi_probe() local
33 wm831x = devm_kzalloc(&spi->dev, sizeof(struct wm831x), GFP_KERNEL); in wm831x_spi_probe()
34 if (wm831x == NULL) in wm831x_spi_probe()
39 spi_set_drvdata(spi, wm831x); in wm831x_spi_probe()
40 wm831x->dev = &spi->dev; in wm831x_spi_probe()
42 wm831x->regmap = devm_regmap_init_spi(spi, &wm831x_regmap_config); in wm831x_spi_probe()
43 if (IS_ERR(wm831x->regmap)) { in wm831x_spi_probe()
44 ret = PTR_ERR(wm831x->regmap); in wm831x_spi_probe()
45 dev_err(wm831x->dev, "Failed to allocate register map: %d\n", in wm831x_spi_probe()
50 return wm831x_device_init(wm831x, type, spi->irq); in wm831x_spi_probe()
[all …]
Dwm831x-core.c94 static int wm831x_reg_locked(struct wm831x *wm831x, unsigned short reg) in wm831x_reg_locked() argument
96 if (!wm831x->locked) in wm831x_reg_locked()
120 void wm831x_reg_lock(struct wm831x *wm831x) in wm831x_reg_lock() argument
124 ret = wm831x_reg_write(wm831x, WM831X_SECURITY_KEY, 0); in wm831x_reg_lock()
126 dev_vdbg(wm831x->dev, "Registers locked\n"); in wm831x_reg_lock()
128 mutex_lock(&wm831x->io_lock); in wm831x_reg_lock()
129 WARN_ON(wm831x->locked); in wm831x_reg_lock()
130 wm831x->locked = 1; in wm831x_reg_lock()
131 mutex_unlock(&wm831x->io_lock); in wm831x_reg_lock()
133 dev_err(wm831x->dev, "Failed to lock registers: %d\n", ret); in wm831x_reg_lock()
[all …]
Dwm831x-otp.c30 static int wm831x_unique_id_read(struct wm831x *wm831x, char *id) in wm831x_unique_id_read() argument
35 val = wm831x_reg_read(wm831x, WM831X_UNIQUE_ID_1 + i); in wm831x_unique_id_read()
49 struct wm831x *wm831x = dev_get_drvdata(dev); in wm831x_unique_id_show() local
54 rval = wm831x_unique_id_read(wm831x, id); in wm831x_unique_id_show()
68 int wm831x_otp_init(struct wm831x *wm831x) in wm831x_otp_init() argument
73 ret = device_create_file(wm831x->dev, &dev_attr_unique_id); in wm831x_otp_init()
75 dev_err(wm831x->dev, "Unique ID attribute not created: %d\n", in wm831x_otp_init()
78 ret = wm831x_unique_id_read(wm831x, uuid); in wm831x_otp_init()
82 dev_err(wm831x->dev, "Failed to read UUID: %d\n", ret); in wm831x_otp_init()
87 void wm831x_otp_exit(struct wm831x *wm831x) in wm831x_otp_exit() argument
[all …]
DMakefile55 wm831x-objs := wm831x-core.o wm831x-irq.o wm831x-otp.o
56 wm831x-objs += wm831x-auxadc.o
57 obj-$(CONFIG_MFD_WM831X) += wm831x.o
58 obj-$(CONFIG_MFD_WM831X_I2C) += wm831x-i2c.o
59 obj-$(CONFIG_MFD_WM831X_SPI) += wm831x-spi.o
/linux-4.4.14/drivers/clk/
Dclk-wm831x.c23 struct wm831x *wm831x; member
79 struct wm831x *wm831x = clkdata->wm831x; in wm831x_fll_is_prepared() local
82 ret = wm831x_reg_read(wm831x, WM831X_FLL_CONTROL_1); in wm831x_fll_is_prepared()
84 dev_err(wm831x->dev, "Unable to read FLL_CONTROL_1: %d\n", in wm831x_fll_is_prepared()
96 struct wm831x *wm831x = clkdata->wm831x; in wm831x_fll_prepare() local
99 ret = wm831x_set_bits(wm831x, WM831X_FLL_CONTROL_1, in wm831x_fll_prepare()
102 dev_crit(wm831x->dev, "Failed to enable FLL: %d\n", ret); in wm831x_fll_prepare()
113 struct wm831x *wm831x = clkdata->wm831x; in wm831x_fll_unprepare() local
116 ret = wm831x_set_bits(wm831x, WM831X_FLL_CONTROL_1, WM831X_FLL_ENA, 0); in wm831x_fll_unprepare()
118 dev_crit(wm831x->dev, "Failed to disable FLL: %d\n", ret); in wm831x_fll_unprepare()
[all …]
DMakefile48 obj-$(CONFIG_COMMON_CLK_WM831X) += clk-wm831x.o
/linux-4.4.14/drivers/power/
Dwm831x_power.c23 struct wm831x *wm831x; member
36 static int wm831x_power_check_online(struct wm831x *wm831x, int supply, in wm831x_power_check_online() argument
41 ret = wm831x_reg_read(wm831x, WM831X_SYSTEM_STATUS); in wm831x_power_check_online()
53 static int wm831x_power_read_voltage(struct wm831x *wm831x, in wm831x_power_read_voltage() argument
59 ret = wm831x_auxadc_read_uv(wm831x, src); in wm831x_power_read_voltage()
74 struct wm831x *wm831x = wm831x_power->wm831x; in wm831x_wall_get_prop() local
79 ret = wm831x_power_check_online(wm831x, WM831X_PWR_WALL, val); in wm831x_wall_get_prop()
82 ret = wm831x_power_read_voltage(wm831x, WM831X_AUX_WALL, val); in wm831x_wall_get_prop()
105 struct wm831x *wm831x = wm831x_power->wm831x; in wm831x_usb_get_prop() local
110 ret = wm831x_power_check_online(wm831x, WM831X_PWR_USB, val); in wm831x_usb_get_prop()
[all …]
Dwm831x_backup.c23 struct wm831x *wm831x; member
29 static int wm831x_backup_read_voltage(struct wm831x *wm831x, in wm831x_backup_read_voltage() argument
35 ret = wm831x_auxadc_read_uv(wm831x, src); in wm831x_backup_read_voltage()
46 static void wm831x_config_backup(struct wm831x *wm831x) in wm831x_config_backup() argument
48 struct wm831x_pdata *wm831x_pdata = wm831x->dev->platform_data; in wm831x_config_backup()
53 dev_warn(wm831x->dev, in wm831x_config_backup()
74 dev_err(wm831x->dev, "Invalid backup voltage limit %dmV\n", in wm831x_config_backup()
91 dev_err(wm831x->dev, "Invalid backup current limit %duA\n", in wm831x_config_backup()
95 ret = wm831x_reg_unlock(wm831x); in wm831x_config_backup()
97 dev_err(wm831x->dev, "Failed to unlock registers: %d\n", ret); in wm831x_config_backup()
[all …]
/linux-4.4.14/drivers/watchdog/
Dwm831x_wdt.c33 struct wm831x *wm831x; member
57 struct wm831x *wm831x = driver_data->wm831x; in wm831x_wdt_start() local
62 ret = wm831x_reg_unlock(wm831x); in wm831x_wdt_start()
64 ret = wm831x_set_bits(wm831x, WM831X_WATCHDOG, in wm831x_wdt_start()
66 wm831x_reg_lock(wm831x); in wm831x_wdt_start()
68 dev_err(wm831x->dev, "Failed to unlock security key: %d\n", in wm831x_wdt_start()
80 struct wm831x *wm831x = driver_data->wm831x; in wm831x_wdt_stop() local
85 ret = wm831x_reg_unlock(wm831x); in wm831x_wdt_stop()
87 ret = wm831x_set_bits(wm831x, WM831X_WATCHDOG, in wm831x_wdt_stop()
89 wm831x_reg_lock(wm831x); in wm831x_wdt_stop()
[all …]
/linux-4.4.14/drivers/gpio/
Dgpio-wm831x.c29 struct wm831x *wm831x; member
41 struct wm831x *wm831x = wm831x_gpio->wm831x; in wm831x_gpio_direction_in() local
44 if (wm831x->has_gpio_ena) in wm831x_gpio_direction_in()
47 return wm831x_set_bits(wm831x, WM831X_GPIO1_CONTROL + offset, in wm831x_gpio_direction_in()
55 struct wm831x *wm831x = wm831x_gpio->wm831x; in wm831x_gpio_get() local
58 ret = wm831x_reg_read(wm831x, WM831X_GPIO_LEVEL); in wm831x_gpio_get()
71 struct wm831x *wm831x = wm831x_gpio->wm831x; in wm831x_gpio_set() local
73 wm831x_set_bits(wm831x, WM831X_GPIO_LEVEL, 1 << offset, in wm831x_gpio_set()
81 struct wm831x *wm831x = wm831x_gpio->wm831x; in wm831x_gpio_direction_out() local
85 if (wm831x->has_gpio_ena) in wm831x_gpio_direction_out()
[all …]
DMakefile111 obj-$(CONFIG_GPIO_WM831X) += gpio-wm831x.o
/linux-4.4.14/drivers/regulator/
Dwm831x-dcdc.c56 struct wm831x *wm831x; member
68 struct wm831x *wm831x = dcdc->wm831x; in wm831x_dcdc_get_mode() local
72 val = wm831x_reg_read(wm831x, reg); in wm831x_dcdc_get_mode()
93 static int wm831x_dcdc_set_mode_int(struct wm831x *wm831x, int reg, in wm831x_dcdc_set_mode_int() argument
115 return wm831x_set_bits(wm831x, reg, WM831X_DC1_ON_MODE_MASK, in wm831x_dcdc_set_mode_int()
122 struct wm831x *wm831x = dcdc->wm831x; in wm831x_dcdc_set_mode() local
125 return wm831x_dcdc_set_mode_int(wm831x, reg, mode); in wm831x_dcdc_set_mode()
132 struct wm831x *wm831x = dcdc->wm831x; in wm831x_dcdc_set_suspend_mode() local
135 return wm831x_dcdc_set_mode_int(wm831x, reg, mode); in wm831x_dcdc_set_suspend_mode()
141 struct wm831x *wm831x = dcdc->wm831x; in wm831x_dcdc_get_status() local
[all …]
Dwm831x-isink.c34 struct wm831x *wm831x; member
41 struct wm831x *wm831x = isink->wm831x; in wm831x_isink_enable() local
45 ret = wm831x_set_bits(wm831x, isink->reg, WM831X_CS1_ENA, in wm831x_isink_enable()
51 ret = wm831x_set_bits(wm831x, isink->reg, WM831X_CS1_DRIVE, in wm831x_isink_enable()
54 wm831x_set_bits(wm831x, isink->reg, WM831X_CS1_ENA, 0); in wm831x_isink_enable()
63 struct wm831x *wm831x = isink->wm831x; in wm831x_isink_disable() local
66 ret = wm831x_set_bits(wm831x, isink->reg, WM831X_CS1_DRIVE, 0); in wm831x_isink_disable()
70 ret = wm831x_set_bits(wm831x, isink->reg, WM831X_CS1_ENA, 0); in wm831x_isink_disable()
81 struct wm831x *wm831x = isink->wm831x; in wm831x_isink_is_enabled() local
84 ret = wm831x_reg_read(wm831x, isink->reg); in wm831x_isink_is_enabled()
[all …]
Dwm831x-ldo.c42 struct wm831x *wm831x; member
74 struct wm831x *wm831x = ldo->wm831x; in wm831x_gp_ldo_set_suspend_voltage() local
81 return wm831x_set_bits(wm831x, reg, WM831X_LDO1_ON_VSEL_MASK, sel); in wm831x_gp_ldo_set_suspend_voltage()
87 struct wm831x *wm831x = ldo->wm831x; in wm831x_gp_ldo_get_mode() local
92 ret = wm831x_reg_read(wm831x, on_reg); in wm831x_gp_ldo_get_mode()
99 ret = wm831x_reg_read(wm831x, ctrl_reg); in wm831x_gp_ldo_get_mode()
113 struct wm831x *wm831x = ldo->wm831x; in wm831x_gp_ldo_set_mode() local
121 ret = wm831x_set_bits(wm831x, on_reg, in wm831x_gp_ldo_set_mode()
128 ret = wm831x_set_bits(wm831x, ctrl_reg, in wm831x_gp_ldo_set_mode()
133 ret = wm831x_set_bits(wm831x, on_reg, in wm831x_gp_ldo_set_mode()
[all …]
DMakefile98 obj-$(CONFIG_REGULATOR_WM831X) += wm831x-dcdc.o
99 obj-$(CONFIG_REGULATOR_WM831X) += wm831x-isink.o
100 obj-$(CONFIG_REGULATOR_WM831X) += wm831x-ldo.o
/linux-4.4.14/include/linux/mfd/wm831x/
Dcore.h358 struct wm831x;
360 typedef int (*wm831x_auxadc_read_fn)(struct wm831x *wm831x,
363 struct wm831x { struct
405 int wm831x_reg_read(struct wm831x *wm831x, unsigned short reg); argument
406 int wm831x_reg_write(struct wm831x *wm831x, unsigned short reg,
408 void wm831x_reg_lock(struct wm831x *wm831x);
409 int wm831x_reg_unlock(struct wm831x *wm831x);
410 int wm831x_set_bits(struct wm831x *wm831x, unsigned short reg,
412 int wm831x_bulk_read(struct wm831x *wm831x, unsigned short reg,
415 int wm831x_device_init(struct wm831x *wm831x, unsigned long id, int irq);
[all …]
Dpdata.h18 struct wm831x;
116 int (*pre_init)(struct wm831x *wm831x);
118 int (*post_init)(struct wm831x *wm831x);
Dotp.h18 int wm831x_otp_init(struct wm831x *wm831x);
19 void wm831x_otp_exit(struct wm831x *wm831x);
Dauxadc.h18 struct wm831x;
215 int wm831x_auxadc_read(struct wm831x *wm831x, enum wm831x_auxadc input);
216 int wm831x_auxadc_read_uv(struct wm831x *wm831x, enum wm831x_auxadc input);
/linux-4.4.14/drivers/input/touchscreen/
Dwm831x-ts.c65 struct wm831x *wm831x; member
80 dev_dbg(wm831x_ts->wm831x->dev, "IRQ PD->DATA done\n"); in wm831x_pd_data_work()
83 dev_dbg(wm831x_ts->wm831x->dev, "IRQ DATA->PD done\n"); in wm831x_pd_data_work()
90 struct wm831x *wm831x = wm831x_ts->wm831x; in wm831x_ts_data_irq() local
101 wm831x_set_bits(wm831x, WM831X_INTERRUPT_STATUS_1, in wm831x_ts_data_irq()
104 ret = wm831x_bulk_read(wm831x, WM831X_TOUCH_DATA_X, count, in wm831x_ts_data_irq()
107 dev_err(wm831x->dev, "Failed to read touch data: %d\n", in wm831x_ts_data_irq()
128 dev_dbg(wm831x->dev, "IRQ DATA->PD\n"); in wm831x_ts_data_irq()
133 wm831x_set_bits(wm831x, WM831X_TOUCH_CONTROL_1, in wm831x_ts_data_irq()
138 wm831x_set_bits(wm831x, WM831X_INTERRUPT_STATUS_1, in wm831x_ts_data_irq()
[all …]
DMakefile80 obj-$(CONFIG_TOUCHSCREEN_WM831X) += wm831x-ts.o
DKconfig706 module will be called wm831x-ts.
/linux-4.4.14/drivers/rtc/
Drtc-wm831x.c94 struct wm831x *wm831x; member
99 static void wm831x_rtc_add_randomness(struct wm831x *wm831x) in wm831x_rtc_add_randomness() argument
109 ret = wm831x_reg_read(wm831x, WM831X_RTC_WRITE_COUNTER); in wm831x_rtc_add_randomness()
114 dev_warn(wm831x->dev, "Failed to read RTC write counter: %d\n", in wm831x_rtc_add_randomness()
125 struct wm831x *wm831x = wm831x_rtc->wm831x; in wm831x_rtc_readtime() local
131 ret = wm831x_reg_read(wm831x, WM831X_RTC_CONTROL); in wm831x_rtc_readtime()
145 ret = wm831x_bulk_read(wm831x, WM831X_RTC_TIME_1, in wm831x_rtc_readtime()
150 ret = wm831x_bulk_read(wm831x, WM831X_RTC_TIME_1, in wm831x_rtc_readtime()
175 struct wm831x *wm831x = wm831x_rtc->wm831x; in wm831x_rtc_set_mmss() local
181 ret = wm831x_reg_write(wm831x, WM831X_RTC_TIME_1, in wm831x_rtc_set_mmss()
[all …]
DMakefile159 obj-$(CONFIG_RTC_DRV_WM831X) += rtc-wm831x.o
DKconfig1066 will be called "rtc-wm831x".
/linux-4.4.14/drivers/video/backlight/
Dwm831x_bl.c24 struct wm831x *wm831x; member
32 struct wm831x *wm831x = data->wm831x; in wm831x_backlight_set() local
39 ret = wm831x_set_bits(wm831x, data->isink_reg, in wm831x_backlight_set()
45 ret = wm831x_set_bits(wm831x, WM831X_DCDC_ENABLE, in wm831x_backlight_set()
53 ret = wm831x_set_bits(wm831x, WM831X_DCDC_ENABLE, in wm831x_backlight_set()
59 ret = wm831x_set_bits(wm831x, data->isink_reg, in wm831x_backlight_set()
66 ret = wm831x_set_bits(wm831x, data->isink_reg, in wm831x_backlight_set()
73 ret = wm831x_set_bits(wm831x, data->isink_reg, in wm831x_backlight_set()
88 wm831x_set_bits(wm831x, WM831X_DCDC_ENABLE, WM831X_DC4_ENA, 0); in wm831x_backlight_set()
89 wm831x_set_bits(wm831x, data->isink_reg, WM831X_CS1_ENA, 0); in wm831x_backlight_set()
[all …]
/linux-4.4.14/drivers/input/misc/
Dwm831x-on.c33 struct wm831x *wm831x; member
44 struct wm831x *wm831x = wm831x_on->wm831x; in wm831x_poll_on() local
47 ret = wm831x_reg_read(wm831x, WM831X_ON_PIN_CONTROL); in wm831x_poll_on()
54 dev_err(wm831x->dev, "Failed to read ON status: %d\n", ret); in wm831x_poll_on()
73 struct wm831x *wm831x = dev_get_drvdata(pdev->dev.parent); in wm831x_on_probe() local
75 int irq = wm831x_irq(wm831x, platform_get_irq(pdev, 0)); in wm831x_on_probe()
85 wm831x_on->wm831x = wm831x; in wm831x_on_probe()
DMakefile74 obj-$(CONFIG_INPUT_WM831X_ON) += wm831x-on.o
/linux-4.4.14/drivers/hwmon/
Dwm831x-hwmon.c45 struct wm831x *wm831x = dev_get_drvdata(dev); in show_voltage() local
49 ret = wm831x_auxadc_read_uv(wm831x, channel); in show_voltage()
59 struct wm831x *wm831x = dev_get_drvdata(dev); in show_chip_temp() local
63 ret = wm831x_auxadc_read(wm831x, channel); in show_chip_temp()
140 ATTRIBUTE_GROUPS(wm831x);
144 struct wm831x *wm831x = dev_get_drvdata(pdev->dev.parent); in wm831x_hwmon_probe() local
148 wm831x, in wm831x_hwmon_probe()
DMakefile161 obj-$(CONFIG_SENSORS_WM831X) += wm831x-hwmon.o
DKconfig1741 will be called wm831x-hwmon.
/linux-4.4.14/drivers/leds/
Dleds-wm831x-status.c25 struct wm831x *wm831x; member
68 wm831x_reg_write(led->wm831x, led->reg, led->reg_val); in wm831x_status_work()
230 struct wm831x *wm831x = dev_get_drvdata(pdev->dev.parent); in wm831x_status_probe() local
250 drvdata->wm831x = wm831x; in wm831x_status_probe()
253 if (dev_get_platdata(wm831x->dev)) in wm831x_status_probe()
254 chip_pdata = dev_get_platdata(wm831x->dev); in wm831x_status_probe()
270 drvdata->reg_val = wm831x_reg_read(wm831x, drvdata->reg); in wm831x_status_probe()
294 ret = led_classdev_register(wm831x->dev, &drvdata->cdev); in wm831x_status_probe()
DMakefile47 obj-$(CONFIG_LEDS_WM831X_STATUS) += leds-wm831x-status.o
/linux-4.4.14/Documentation/hwmon/
Dwm831x1 Kernel driver wm831x-hwmon
6 Prefix: 'wm831x'
/linux-4.4.14/arch/arm/mach-s3c64xx/
Dmach-smdk6410.c521 static int wm1192_pre_init(struct wm831x *wm831x) in wm1192_pre_init() argument
530 dev_err(wm831x->dev, "Failed to add PMIC LED: %d\n", ret); in wm1192_pre_init()
/linux-4.4.14/
DMAINTAINERS11691 F: drivers/input/misc/wm831x-on.c
11692 F: drivers/input/touchscreen/wm831x-ts.c
11702 F: include/linux/mfd/wm831x/