/Linux-v4.19/drivers/mfd/ |
D | wm831x-auxadc.c | 36 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 …]
|
D | wm831x-irq.c | 329 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 …]
|
D | wm831x-i2c.c | 34 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 …]
|
D | wm831x-spi.c | 31 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 …]
|
D | wm831x-core.c | 96 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 …]
|
D | wm831x-otp.c | 30 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 …]
|
D | Makefile | 60 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/ |
D | clk-wm831x.c | 23 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/ |
D | gpio-wm831x.c | 29 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/ |
D | wm831x_wdt.c | 30 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/ |
D | wm831x_power.c | 24 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 …]
|
D | wm831x_backup.c | 23 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/ |
D | wm831x-dcdc.c | 56 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 …]
|
D | wm831x-ldo.c | 42 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 …]
|
D | wm831x-isink.c | 34 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/ |
D | core.h | 360 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 …]
|
D | pdata.h | 18 struct wm831x; 116 int (*pre_init)(struct wm831x *wm831x); 118 int (*post_init)(struct wm831x *wm831x);
|
D | otp.h | 18 int wm831x_otp_init(struct wm831x *wm831x); 19 void wm831x_otp_exit(struct wm831x *wm831x);
|
D | auxadc.h | 18 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/ |
D | wm831x-ts.c | 65 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/ |
D | rtc-wm831x.c | 94 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/ |
D | wm831x_bl.c | 24 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/ |
D | wm831x-on.c | 33 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/ |
D | wm831x-hwmon.c | 45 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/ |
D | leds-wm831x-status.c | 25 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()
|