Home
last modified time | relevance | path

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

12

/Linux-v4.19/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.c34 struct wm831x *wm831x; in wm831x_i2c_probe() local
49 wm831x = devm_kzalloc(&i2c->dev, sizeof(struct wm831x), GFP_KERNEL); in wm831x_i2c_probe()
50 if (wm831x == NULL) in wm831x_i2c_probe()
53 i2c_set_clientdata(i2c, wm831x); in wm831x_i2c_probe()
54 wm831x->dev = &i2c->dev; in wm831x_i2c_probe()
55 wm831x->type = type; in wm831x_i2c_probe()
57 wm831x->regmap = devm_regmap_init_i2c(i2c, &wm831x_regmap_config); in wm831x_i2c_probe()
58 if (IS_ERR(wm831x->regmap)) { in wm831x_i2c_probe()
59 ret = PTR_ERR(wm831x->regmap); in wm831x_i2c_probe()
60 dev_err(wm831x->dev, "Failed to allocate register map: %d\n", in wm831x_i2c_probe()
[all …]
Dwm831x-spi.c31 struct wm831x *wm831x; in wm831x_spi_probe() local
46 wm831x = devm_kzalloc(&spi->dev, sizeof(struct wm831x), GFP_KERNEL); in wm831x_spi_probe()
47 if (wm831x == NULL) in wm831x_spi_probe()
52 spi_set_drvdata(spi, wm831x); in wm831x_spi_probe()
53 wm831x->dev = &spi->dev; in wm831x_spi_probe()
54 wm831x->type = type; in wm831x_spi_probe()
56 wm831x->regmap = devm_regmap_init_spi(spi, &wm831x_regmap_config); in wm831x_spi_probe()
57 if (IS_ERR(wm831x->regmap)) { in wm831x_spi_probe()
58 ret = PTR_ERR(wm831x->regmap); in wm831x_spi_probe()
59 dev_err(wm831x->dev, "Failed to allocate register map: %d\n", in wm831x_spi_probe()
[all …]
Dwm831x-core.c96 static int wm831x_reg_locked(struct wm831x *wm831x, unsigned short reg) in wm831x_reg_locked() argument
98 if (!wm831x->locked) in wm831x_reg_locked()
122 void wm831x_reg_lock(struct wm831x *wm831x) in wm831x_reg_lock() argument
126 ret = wm831x_reg_write(wm831x, WM831X_SECURITY_KEY, 0); in wm831x_reg_lock()
128 dev_vdbg(wm831x->dev, "Registers locked\n"); in wm831x_reg_lock()
130 mutex_lock(&wm831x->io_lock); in wm831x_reg_lock()
131 WARN_ON(wm831x->locked); in wm831x_reg_lock()
132 wm831x->locked = 1; in wm831x_reg_lock()
133 mutex_unlock(&wm831x->io_lock); in wm831x_reg_lock()
135 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
53 rval = wm831x_unique_id_read(wm831x, id); in wm831x_unique_id_show()
62 int wm831x_otp_init(struct wm831x *wm831x) in wm831x_otp_init() argument
67 ret = device_create_file(wm831x->dev, &dev_attr_unique_id); in wm831x_otp_init()
69 dev_err(wm831x->dev, "Unique ID attribute not created: %d\n", in wm831x_otp_init()
72 ret = wm831x_unique_id_read(wm831x, uuid); in wm831x_otp_init()
76 dev_err(wm831x->dev, "Failed to read UUID: %d\n", ret); in wm831x_otp_init()
81 void wm831x_otp_exit(struct wm831x *wm831x) in wm831x_otp_exit() argument
[all …]
DMakefile60 wm831x-objs := wm831x-core.o wm831x-irq.o wm831x-otp.o
61 wm831x-objs += wm831x-auxadc.o
62 obj-$(CONFIG_MFD_WM831X) += wm831x.o
63 obj-$(CONFIG_MFD_WM831X_I2C) += wm831x-i2c.o
64 obj-$(CONFIG_MFD_WM831X_SPI) += wm831x-spi.o
/Linux-v4.19/drivers/clk/
Dclk-wm831x.c23 struct wm831x *wm831x; member
75 struct wm831x *wm831x = clkdata->wm831x; in wm831x_fll_is_prepared() local
78 ret = wm831x_reg_read(wm831x, WM831X_FLL_CONTROL_1); in wm831x_fll_is_prepared()
80 dev_err(wm831x->dev, "Unable to read FLL_CONTROL_1: %d\n", in wm831x_fll_is_prepared()
92 struct wm831x *wm831x = clkdata->wm831x; in wm831x_fll_prepare() local
95 ret = wm831x_set_bits(wm831x, WM831X_FLL_CONTROL_1, in wm831x_fll_prepare()
98 dev_crit(wm831x->dev, "Failed to enable FLL: %d\n", ret); in wm831x_fll_prepare()
110 struct wm831x *wm831x = clkdata->wm831x; in wm831x_fll_unprepare() local
113 ret = wm831x_set_bits(wm831x, WM831X_FLL_CONTROL_1, WM831X_FLL_ENA, 0); in wm831x_fll_unprepare()
115 dev_crit(wm831x->dev, "Failed to disable FLL: %d\n", ret); in wm831x_fll_unprepare()
[all …]
/Linux-v4.19/drivers/gpio/
Dgpio-wm831x.c29 struct wm831x *wm831x; member
36 struct wm831x *wm831x = wm831x_gpio->wm831x; in wm831x_gpio_direction_in() local
39 if (wm831x->has_gpio_ena) in wm831x_gpio_direction_in()
42 return wm831x_set_bits(wm831x, WM831X_GPIO1_CONTROL + offset, in wm831x_gpio_direction_in()
50 struct wm831x *wm831x = wm831x_gpio->wm831x; in wm831x_gpio_get() local
53 ret = wm831x_reg_read(wm831x, WM831X_GPIO_LEVEL); in wm831x_gpio_get()
66 struct wm831x *wm831x = wm831x_gpio->wm831x; in wm831x_gpio_set() local
68 wm831x_set_bits(wm831x, WM831X_GPIO_LEVEL, 1 << offset, in wm831x_gpio_set()
76 struct wm831x *wm831x = wm831x_gpio->wm831x; in wm831x_gpio_direction_out() local
80 if (wm831x->has_gpio_ena) in wm831x_gpio_direction_out()
[all …]
/Linux-v4.19/drivers/watchdog/
Dwm831x_wdt.c30 struct wm831x *wm831x; member
54 struct wm831x *wm831x = driver_data->wm831x; in wm831x_wdt_start() local
59 ret = wm831x_reg_unlock(wm831x); in wm831x_wdt_start()
61 ret = wm831x_set_bits(wm831x, WM831X_WATCHDOG, in wm831x_wdt_start()
63 wm831x_reg_lock(wm831x); in wm831x_wdt_start()
65 dev_err(wm831x->dev, "Failed to unlock security key: %d\n", in wm831x_wdt_start()
77 struct wm831x *wm831x = driver_data->wm831x; in wm831x_wdt_stop() local
82 ret = wm831x_reg_unlock(wm831x); in wm831x_wdt_stop()
84 ret = wm831x_set_bits(wm831x, WM831X_WATCHDOG, in wm831x_wdt_stop()
86 wm831x_reg_lock(wm831x); in wm831x_wdt_stop()
[all …]
/Linux-v4.19/drivers/power/supply/
Dwm831x_power.c24 struct wm831x *wm831x; member
39 static int wm831x_power_check_online(struct wm831x *wm831x, int supply, in wm831x_power_check_online() argument
44 ret = wm831x_reg_read(wm831x, WM831X_SYSTEM_STATUS); in wm831x_power_check_online()
56 static int wm831x_power_read_voltage(struct wm831x *wm831x, in wm831x_power_read_voltage() argument
62 ret = wm831x_auxadc_read_uv(wm831x, src); in wm831x_power_read_voltage()
77 struct wm831x *wm831x = wm831x_power->wm831x; in wm831x_wall_get_prop() local
82 ret = wm831x_power_check_online(wm831x, WM831X_PWR_WALL, val); in wm831x_wall_get_prop()
85 ret = wm831x_power_read_voltage(wm831x, WM831X_AUX_WALL, val); in wm831x_wall_get_prop()
108 struct wm831x *wm831x = wm831x_power->wm831x; in wm831x_usb_get_prop() local
113 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-v4.19/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-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 …]
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 …]
/Linux-v4.19/include/linux/mfd/wm831x/
Dcore.h360 struct wm831x;
362 typedef int (*wm831x_auxadc_read_fn)(struct wm831x *wm831x,
365 struct wm831x { struct
410 int wm831x_reg_read(struct wm831x *wm831x, unsigned short reg); argument
411 int wm831x_reg_write(struct wm831x *wm831x, unsigned short reg,
413 void wm831x_reg_lock(struct wm831x *wm831x);
414 int wm831x_reg_unlock(struct wm831x *wm831x);
415 int wm831x_set_bits(struct wm831x *wm831x, unsigned short reg,
417 int wm831x_bulk_read(struct wm831x *wm831x, unsigned short reg,
420 int wm831x_device_init(struct wm831x *wm831x, 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-v4.19/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 …]
/Linux-v4.19/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 …]
/Linux-v4.19/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-v4.19/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()
/Linux-v4.19/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()
/Linux-v4.19/drivers/leds/
Dleds-wm831x-status.c25 struct wm831x *wm831x; member
65 wm831x_reg_write(led->wm831x, led->reg, led->reg_val); in wm831x_status_set()
214 struct wm831x *wm831x = dev_get_drvdata(pdev->dev.parent); in wm831x_status_probe() local
233 drvdata->wm831x = wm831x; in wm831x_status_probe()
236 if (dev_get_platdata(wm831x->dev)) in wm831x_status_probe()
237 chip_pdata = dev_get_platdata(wm831x->dev); in wm831x_status_probe()
252 drvdata->reg_val = wm831x_reg_read(wm831x, drvdata->reg); in wm831x_status_probe()
276 ret = devm_led_classdev_register(wm831x->dev, &drvdata->cdev); in wm831x_status_probe()

12