wm8350 415 arch/arm/mach-imx/mach-mx31ads.c static int mx31_wm8350_init(struct wm8350 *wm8350) wm8350 417 arch/arm/mach-imx/mach-mx31ads.c wm8350_gpio_config(wm8350, 0, WM8350_GPIO_DIR_IN, wm8350 422 arch/arm/mach-imx/mach-mx31ads.c wm8350_gpio_config(wm8350, 3, WM8350_GPIO_DIR_IN, wm8350 427 arch/arm/mach-imx/mach-mx31ads.c wm8350_gpio_config(wm8350, 4, WM8350_GPIO_DIR_IN, wm8350 432 arch/arm/mach-imx/mach-mx31ads.c wm8350_gpio_config(wm8350, 7, WM8350_GPIO_DIR_IN, wm8350 437 arch/arm/mach-imx/mach-mx31ads.c wm8350_gpio_config(wm8350, 6, WM8350_GPIO_DIR_OUT, wm8350 442 arch/arm/mach-imx/mach-mx31ads.c wm8350_gpio_config(wm8350, 8, WM8350_GPIO_DIR_OUT, wm8350 447 arch/arm/mach-imx/mach-mx31ads.c wm8350_gpio_config(wm8350, 9, WM8350_GPIO_DIR_OUT, wm8350 452 arch/arm/mach-imx/mach-mx31ads.c wm8350_register_regulator(wm8350, WM8350_DCDC_1, &sw1a_data); wm8350 453 arch/arm/mach-imx/mach-mx31ads.c wm8350_register_regulator(wm8350, WM8350_DCDC_3, &viohi_data); wm8350 454 arch/arm/mach-imx/mach-mx31ads.c wm8350_register_regulator(wm8350, WM8350_DCDC_4, &violo_data); wm8350 455 arch/arm/mach-imx/mach-mx31ads.c wm8350_register_regulator(wm8350, WM8350_DCDC_6, &sw2a_data); wm8350 456 arch/arm/mach-imx/mach-mx31ads.c wm8350_register_regulator(wm8350, WM8350_LDO_1, &ldo1_data); wm8350 457 arch/arm/mach-imx/mach-mx31ads.c wm8350_register_regulator(wm8350, WM8350_LDO_2, &ldo2_data); wm8350 458 arch/arm/mach-imx/mach-mx31ads.c wm8350_register_regulator(wm8350, WM8350_LDO_3, &vdig_data); wm8350 459 arch/arm/mach-imx/mach-mx31ads.c wm8350_register_regulator(wm8350, WM8350_LDO_4, &ldo4_data); wm8350 462 arch/arm/mach-imx/mach-mx31ads.c wm8350_dcdc_set_slot(wm8350, WM8350_DCDC_5, 1, 1, wm8350 464 arch/arm/mach-imx/mach-mx31ads.c wm8350_isink_set_flash(wm8350, WM8350_ISINK_A, wm8350 471 arch/arm/mach-imx/mach-mx31ads.c wm8350_dcdc25_set_mode(wm8350, WM8350_DCDC_5, wm8350 476 arch/arm/mach-imx/mach-mx31ads.c wm8350_register_led(wm8350, 0, WM8350_DCDC_5, WM8350_ISINK_A, wm8350 479 arch/arm/mach-imx/mach-mx31ads.c wm8350->codec.platform_data = &imx32ads_wm8350_setup; wm8350 469 arch/arm/mach-s3c64xx/mach-smdk6410.c static int __init smdk6410_wm8350_init(struct wm8350 *wm8350) wm8350 478 arch/arm/mach-s3c64xx/mach-smdk6410.c wm8350_register_regulator(wm8350, wm8350 23 drivers/gpio/gpio-wm8350.c struct wm8350 *wm8350; wm8350 30 drivers/gpio/gpio-wm8350.c struct wm8350 *wm8350 = wm8350_gpio->wm8350; wm8350 32 drivers/gpio/gpio-wm8350.c return wm8350_set_bits(wm8350, WM8350_GPIO_CONFIGURATION_I_O, wm8350 39 drivers/gpio/gpio-wm8350.c struct wm8350 *wm8350 = wm8350_gpio->wm8350; wm8350 42 drivers/gpio/gpio-wm8350.c ret = wm8350_reg_read(wm8350, WM8350_GPIO_LEVEL); wm8350 55 drivers/gpio/gpio-wm8350.c struct wm8350 *wm8350 = wm8350_gpio->wm8350; wm8350 58 drivers/gpio/gpio-wm8350.c wm8350_set_bits(wm8350, WM8350_GPIO_LEVEL, 1 << offset); wm8350 60 drivers/gpio/gpio-wm8350.c wm8350_clear_bits(wm8350, WM8350_GPIO_LEVEL, 1 << offset); wm8350 67 drivers/gpio/gpio-wm8350.c struct wm8350 *wm8350 = wm8350_gpio->wm8350; wm8350 70 drivers/gpio/gpio-wm8350.c ret = wm8350_clear_bits(wm8350, WM8350_GPIO_CONFIGURATION_I_O, wm8350 84 drivers/gpio/gpio-wm8350.c struct wm8350 *wm8350 = wm8350_gpio->wm8350; wm8350 86 drivers/gpio/gpio-wm8350.c if (!wm8350->irq_base) wm8350 89 drivers/gpio/gpio-wm8350.c return wm8350->irq_base + WM8350_IRQ_GPIO(offset); wm8350 105 drivers/gpio/gpio-wm8350.c struct wm8350 *wm8350 = dev_get_drvdata(pdev->dev.parent); wm8350 106 drivers/gpio/gpio-wm8350.c struct wm8350_platform_data *pdata = dev_get_platdata(wm8350->dev); wm8350 115 drivers/gpio/gpio-wm8350.c wm8350_gpio->wm8350 = wm8350; wm8350 28 drivers/hwmon/wm8350-hwmon.c struct wm8350 *wm8350 = dev_get_drvdata(dev); wm8350 32 drivers/hwmon/wm8350-hwmon.c val = wm8350_read_auxadc(wm8350, channel, 0, 0) * WM8350_AUX_COEFF; wm8350 67 drivers/hwmon/wm8350-hwmon.c ATTRIBUTE_GROUPS(wm8350); wm8350 71 drivers/hwmon/wm8350-hwmon.c struct wm8350 *wm8350 = platform_get_drvdata(pdev); wm8350 75 drivers/hwmon/wm8350-hwmon.c wm8350, wm8350 63 drivers/mfd/wm8350-core.c int wm8350_clear_bits(struct wm8350 *wm8350, u16 reg, u16 mask) wm8350 65 drivers/mfd/wm8350-core.c return regmap_update_bits(wm8350->regmap, reg, mask, 0); wm8350 69 drivers/mfd/wm8350-core.c int wm8350_set_bits(struct wm8350 *wm8350, u16 reg, u16 mask) wm8350 71 drivers/mfd/wm8350-core.c return regmap_update_bits(wm8350->regmap, reg, mask, mask); wm8350 75 drivers/mfd/wm8350-core.c u16 wm8350_reg_read(struct wm8350 *wm8350, int reg) wm8350 80 drivers/mfd/wm8350-core.c err = regmap_read(wm8350->regmap, reg, &data); wm8350 82 drivers/mfd/wm8350-core.c dev_err(wm8350->dev, "read from reg R%d failed\n", reg); wm8350 88 drivers/mfd/wm8350-core.c int wm8350_reg_write(struct wm8350 *wm8350, int reg, u16 val) wm8350 92 drivers/mfd/wm8350-core.c ret = regmap_write(wm8350->regmap, reg, val); wm8350 95 drivers/mfd/wm8350-core.c dev_err(wm8350->dev, "write to reg R%d failed\n", reg); wm8350 100 drivers/mfd/wm8350-core.c int wm8350_block_read(struct wm8350 *wm8350, int start_reg, int regs, wm8350 105 drivers/mfd/wm8350-core.c err = regmap_bulk_read(wm8350->regmap, start_reg, dest, regs); wm8350 107 drivers/mfd/wm8350-core.c dev_err(wm8350->dev, "block read starting from R%d failed\n", wm8350 114 drivers/mfd/wm8350-core.c int wm8350_block_write(struct wm8350 *wm8350, int start_reg, int regs, wm8350 119 drivers/mfd/wm8350-core.c ret = regmap_bulk_write(wm8350->regmap, start_reg, src, regs); wm8350 121 drivers/mfd/wm8350-core.c dev_err(wm8350->dev, "block write starting at R%d failed\n", wm8350 135 drivers/mfd/wm8350-core.c int wm8350_reg_lock(struct wm8350 *wm8350) wm8350 143 drivers/mfd/wm8350-core.c ret = wm8350_reg_write(wm8350, WM8350_SECURITY, WM8350_LOCK_KEY); wm8350 145 drivers/mfd/wm8350-core.c dev_err(wm8350->dev, "lock failed\n"); wm8350 147 drivers/mfd/wm8350-core.c wm8350->unlocked = false; wm8350 164 drivers/mfd/wm8350-core.c int wm8350_reg_unlock(struct wm8350 *wm8350) wm8350 172 drivers/mfd/wm8350-core.c ret = wm8350_reg_write(wm8350, WM8350_SECURITY, WM8350_UNLOCK_KEY); wm8350 174 drivers/mfd/wm8350-core.c dev_err(wm8350->dev, "unlock failed\n"); wm8350 176 drivers/mfd/wm8350-core.c wm8350->unlocked = true; wm8350 184 drivers/mfd/wm8350-core.c int wm8350_read_auxadc(struct wm8350 *wm8350, int channel, int scale, int vref) wm8350 194 drivers/mfd/wm8350-core.c mutex_lock(&wm8350->auxadc_mutex); wm8350 197 drivers/mfd/wm8350-core.c reg = wm8350_reg_read(wm8350, WM8350_POWER_MGMT_5); wm8350 198 drivers/mfd/wm8350-core.c wm8350_reg_write(wm8350, WM8350_POWER_MGMT_5, reg | WM8350_AUXADC_ENA); wm8350 203 drivers/mfd/wm8350-core.c wm8350_reg_write(wm8350, WM8350_AUX1_READBACK + channel, reg); wm8350 206 drivers/mfd/wm8350-core.c reg = wm8350_reg_read(wm8350, WM8350_DIGITISER_CONTROL_1); wm8350 208 drivers/mfd/wm8350-core.c wm8350_reg_write(wm8350, WM8350_DIGITISER_CONTROL_1, reg); wm8350 212 drivers/mfd/wm8350-core.c try_wait_for_completion(&wm8350->auxadc_done); wm8350 217 drivers/mfd/wm8350-core.c wait_for_completion_timeout(&wm8350->auxadc_done, msecs_to_jiffies(5)); wm8350 219 drivers/mfd/wm8350-core.c reg = wm8350_reg_read(wm8350, WM8350_DIGITISER_CONTROL_1); wm8350 221 drivers/mfd/wm8350-core.c dev_err(wm8350->dev, "adc chn %d read timeout\n", channel); wm8350 223 drivers/mfd/wm8350-core.c result = wm8350_reg_read(wm8350, wm8350 227 drivers/mfd/wm8350-core.c reg = wm8350_reg_read(wm8350, WM8350_POWER_MGMT_5); wm8350 228 drivers/mfd/wm8350-core.c wm8350_reg_write(wm8350, WM8350_POWER_MGMT_5, wm8350 231 drivers/mfd/wm8350-core.c mutex_unlock(&wm8350->auxadc_mutex); wm8350 239 drivers/mfd/wm8350-core.c struct wm8350 *wm8350 = irq_data; wm8350 241 drivers/mfd/wm8350-core.c complete(&wm8350->auxadc_done); wm8350 250 drivers/mfd/wm8350-core.c static void wm8350_client_dev_register(struct wm8350 *wm8350, wm8350 258 drivers/mfd/wm8350-core.c dev_err(wm8350->dev, "Failed to allocate %s\n", name); wm8350 262 drivers/mfd/wm8350-core.c (*pdev)->dev.parent = wm8350->dev; wm8350 263 drivers/mfd/wm8350-core.c platform_set_drvdata(*pdev, wm8350); wm8350 266 drivers/mfd/wm8350-core.c dev_err(wm8350->dev, "Failed to register %s: %d\n", name, ret); wm8350 272 drivers/mfd/wm8350-core.c int wm8350_device_init(struct wm8350 *wm8350, int irq, wm8350 279 drivers/mfd/wm8350-core.c dev_set_drvdata(wm8350->dev, wm8350); wm8350 282 drivers/mfd/wm8350-core.c ret = regmap_read(wm8350->regmap, WM8350_RESET_ID, &id1); wm8350 284 drivers/mfd/wm8350-core.c dev_err(wm8350->dev, "Failed to read ID: %d\n", ret); wm8350 288 drivers/mfd/wm8350-core.c ret = regmap_read(wm8350->regmap, WM8350_ID, &id2); wm8350 290 drivers/mfd/wm8350-core.c dev_err(wm8350->dev, "Failed to read ID: %d\n", ret); wm8350 294 drivers/mfd/wm8350-core.c ret = regmap_read(wm8350->regmap, WM8350_REVISION, &mask_rev); wm8350 296 drivers/mfd/wm8350-core.c dev_err(wm8350->dev, "Failed to read revision: %d\n", ret); wm8350 301 drivers/mfd/wm8350-core.c dev_err(wm8350->dev, wm8350 310 drivers/mfd/wm8350-core.c dev_info(wm8350->dev, wm8350 315 drivers/mfd/wm8350-core.c dev_err(wm8350->dev, "Unsupported CUST_ID\n"); wm8350 322 drivers/mfd/wm8350-core.c wm8350->pmic.max_dcdc = WM8350_DCDC_6; wm8350 323 drivers/mfd/wm8350-core.c wm8350->pmic.max_isink = WM8350_ISINK_B; wm8350 327 drivers/mfd/wm8350-core.c dev_info(wm8350->dev, "WM8350 Rev E\n"); wm8350 330 drivers/mfd/wm8350-core.c dev_info(wm8350->dev, "WM8350 Rev F\n"); wm8350 333 drivers/mfd/wm8350-core.c dev_info(wm8350->dev, "WM8350 Rev G\n"); wm8350 334 drivers/mfd/wm8350-core.c wm8350->power.rev_g_coeff = 1; wm8350 337 drivers/mfd/wm8350-core.c dev_info(wm8350->dev, "WM8350 Rev H\n"); wm8350 338 drivers/mfd/wm8350-core.c wm8350->power.rev_g_coeff = 1; wm8350 342 drivers/mfd/wm8350-core.c dev_err(wm8350->dev, "Unknown WM8350 CHIP_REV\n"); wm8350 349 drivers/mfd/wm8350-core.c wm8350->pmic.max_dcdc = WM8350_DCDC_4; wm8350 350 drivers/mfd/wm8350-core.c wm8350->pmic.max_isink = WM8350_ISINK_A; wm8350 354 drivers/mfd/wm8350-core.c dev_info(wm8350->dev, "WM8351 Rev A\n"); wm8350 355 drivers/mfd/wm8350-core.c wm8350->power.rev_g_coeff = 1; wm8350 359 drivers/mfd/wm8350-core.c dev_info(wm8350->dev, "WM8351 Rev B\n"); wm8350 360 drivers/mfd/wm8350-core.c wm8350->power.rev_g_coeff = 1; wm8350 364 drivers/mfd/wm8350-core.c dev_err(wm8350->dev, "Unknown WM8351 CHIP_REV\n"); wm8350 371 drivers/mfd/wm8350-core.c wm8350->pmic.max_dcdc = WM8350_DCDC_6; wm8350 372 drivers/mfd/wm8350-core.c wm8350->pmic.max_isink = WM8350_ISINK_B; wm8350 376 drivers/mfd/wm8350-core.c dev_info(wm8350->dev, "WM8352 Rev A\n"); wm8350 377 drivers/mfd/wm8350-core.c wm8350->power.rev_g_coeff = 1; wm8350 381 drivers/mfd/wm8350-core.c dev_err(wm8350->dev, "Unknown WM8352 CHIP_REV\n"); wm8350 388 drivers/mfd/wm8350-core.c dev_err(wm8350->dev, "Unknown MASK_REV\n"); wm8350 393 drivers/mfd/wm8350-core.c mutex_init(&wm8350->auxadc_mutex); wm8350 394 drivers/mfd/wm8350-core.c init_completion(&wm8350->auxadc_done); wm8350 396 drivers/mfd/wm8350-core.c ret = wm8350_irq_init(wm8350, irq, pdata); wm8350 400 drivers/mfd/wm8350-core.c if (wm8350->irq_base) { wm8350 401 drivers/mfd/wm8350-core.c ret = request_threaded_irq(wm8350->irq_base + wm8350 405 drivers/mfd/wm8350-core.c "auxadc", wm8350); wm8350 407 drivers/mfd/wm8350-core.c dev_warn(wm8350->dev, wm8350 412 drivers/mfd/wm8350-core.c ret = pdata->init(wm8350); wm8350 414 drivers/mfd/wm8350-core.c dev_err(wm8350->dev, "Platform init() failed: %d\n", wm8350 420 drivers/mfd/wm8350-core.c wm8350_reg_write(wm8350, WM8350_SYSTEM_INTERRUPTS_MASK, 0x0); wm8350 422 drivers/mfd/wm8350-core.c wm8350_client_dev_register(wm8350, "wm8350-codec", wm8350 423 drivers/mfd/wm8350-core.c &(wm8350->codec.pdev)); wm8350 424 drivers/mfd/wm8350-core.c wm8350_client_dev_register(wm8350, "wm8350-gpio", wm8350 425 drivers/mfd/wm8350-core.c &(wm8350->gpio.pdev)); wm8350 426 drivers/mfd/wm8350-core.c wm8350_client_dev_register(wm8350, "wm8350-hwmon", wm8350 427 drivers/mfd/wm8350-core.c &(wm8350->hwmon.pdev)); wm8350 428 drivers/mfd/wm8350-core.c wm8350_client_dev_register(wm8350, "wm8350-power", wm8350 429 drivers/mfd/wm8350-core.c &(wm8350->power.pdev)); wm8350 430 drivers/mfd/wm8350-core.c wm8350_client_dev_register(wm8350, "wm8350-rtc", &(wm8350->rtc.pdev)); wm8350 431 drivers/mfd/wm8350-core.c wm8350_client_dev_register(wm8350, "wm8350-wdt", &(wm8350->wdt.pdev)); wm8350 436 drivers/mfd/wm8350-core.c wm8350_irq_exit(wm8350); wm8350 18 drivers/mfd/wm8350-gpio.c static int gpio_set_dir(struct wm8350 *wm8350, int gpio, int dir) wm8350 22 drivers/mfd/wm8350-gpio.c wm8350_reg_unlock(wm8350); wm8350 24 drivers/mfd/wm8350-gpio.c ret = wm8350_clear_bits(wm8350, wm8350 28 drivers/mfd/wm8350-gpio.c ret = wm8350_set_bits(wm8350, wm8350 31 drivers/mfd/wm8350-gpio.c wm8350_reg_lock(wm8350); wm8350 35 drivers/mfd/wm8350-gpio.c static int wm8350_gpio_set_debounce(struct wm8350 *wm8350, int gpio, int db) wm8350 38 drivers/mfd/wm8350-gpio.c return wm8350_set_bits(wm8350, WM8350_GPIO_DEBOUNCE, wm8350 41 drivers/mfd/wm8350-gpio.c return wm8350_clear_bits(wm8350, wm8350 45 drivers/mfd/wm8350-gpio.c static int gpio_set_func(struct wm8350 *wm8350, int gpio, int func) wm8350 49 drivers/mfd/wm8350-gpio.c wm8350_reg_unlock(wm8350); wm8350 52 drivers/mfd/wm8350-gpio.c reg = wm8350_reg_read(wm8350, WM8350_GPIO_FUNCTION_SELECT_1) wm8350 54 drivers/mfd/wm8350-gpio.c wm8350_reg_write(wm8350, WM8350_GPIO_FUNCTION_SELECT_1, wm8350 58 drivers/mfd/wm8350-gpio.c reg = wm8350_reg_read(wm8350, WM8350_GPIO_FUNCTION_SELECT_1) wm8350 60 drivers/mfd/wm8350-gpio.c wm8350_reg_write(wm8350, WM8350_GPIO_FUNCTION_SELECT_1, wm8350 64 drivers/mfd/wm8350-gpio.c reg = wm8350_reg_read(wm8350, WM8350_GPIO_FUNCTION_SELECT_1) wm8350 66 drivers/mfd/wm8350-gpio.c wm8350_reg_write(wm8350, WM8350_GPIO_FUNCTION_SELECT_1, wm8350 70 drivers/mfd/wm8350-gpio.c reg = wm8350_reg_read(wm8350, WM8350_GPIO_FUNCTION_SELECT_1) wm8350 72 drivers/mfd/wm8350-gpio.c wm8350_reg_write(wm8350, WM8350_GPIO_FUNCTION_SELECT_1, wm8350 76 drivers/mfd/wm8350-gpio.c reg = wm8350_reg_read(wm8350, WM8350_GPIO_FUNCTION_SELECT_2) wm8350 78 drivers/mfd/wm8350-gpio.c wm8350_reg_write(wm8350, WM8350_GPIO_FUNCTION_SELECT_2, wm8350 82 drivers/mfd/wm8350-gpio.c reg = wm8350_reg_read(wm8350, WM8350_GPIO_FUNCTION_SELECT_2) wm8350 84 drivers/mfd/wm8350-gpio.c wm8350_reg_write(wm8350, WM8350_GPIO_FUNCTION_SELECT_2, wm8350 88 drivers/mfd/wm8350-gpio.c reg = wm8350_reg_read(wm8350, WM8350_GPIO_FUNCTION_SELECT_2) wm8350 90 drivers/mfd/wm8350-gpio.c wm8350_reg_write(wm8350, WM8350_GPIO_FUNCTION_SELECT_2, wm8350 94 drivers/mfd/wm8350-gpio.c reg = wm8350_reg_read(wm8350, WM8350_GPIO_FUNCTION_SELECT_2) wm8350 96 drivers/mfd/wm8350-gpio.c wm8350_reg_write(wm8350, WM8350_GPIO_FUNCTION_SELECT_2, wm8350 100 drivers/mfd/wm8350-gpio.c reg = wm8350_reg_read(wm8350, WM8350_GPIO_FUNCTION_SELECT_3) wm8350 102 drivers/mfd/wm8350-gpio.c wm8350_reg_write(wm8350, WM8350_GPIO_FUNCTION_SELECT_3, wm8350 106 drivers/mfd/wm8350-gpio.c reg = wm8350_reg_read(wm8350, WM8350_GPIO_FUNCTION_SELECT_3) wm8350 108 drivers/mfd/wm8350-gpio.c wm8350_reg_write(wm8350, WM8350_GPIO_FUNCTION_SELECT_3, wm8350 112 drivers/mfd/wm8350-gpio.c reg = wm8350_reg_read(wm8350, WM8350_GPIO_FUNCTION_SELECT_3) wm8350 114 drivers/mfd/wm8350-gpio.c wm8350_reg_write(wm8350, WM8350_GPIO_FUNCTION_SELECT_3, wm8350 118 drivers/mfd/wm8350-gpio.c reg = wm8350_reg_read(wm8350, WM8350_GPIO_FUNCTION_SELECT_3) wm8350 120 drivers/mfd/wm8350-gpio.c wm8350_reg_write(wm8350, WM8350_GPIO_FUNCTION_SELECT_3, wm8350 124 drivers/mfd/wm8350-gpio.c reg = wm8350_reg_read(wm8350, WM8350_GPIO_FUNCTION_SELECT_4) wm8350 126 drivers/mfd/wm8350-gpio.c wm8350_reg_write(wm8350, WM8350_GPIO_FUNCTION_SELECT_4, wm8350 130 drivers/mfd/wm8350-gpio.c wm8350_reg_lock(wm8350); wm8350 134 drivers/mfd/wm8350-gpio.c wm8350_reg_lock(wm8350); wm8350 138 drivers/mfd/wm8350-gpio.c static int gpio_set_pull_up(struct wm8350 *wm8350, int gpio, int up) wm8350 141 drivers/mfd/wm8350-gpio.c return wm8350_set_bits(wm8350, wm8350 145 drivers/mfd/wm8350-gpio.c return wm8350_clear_bits(wm8350, wm8350 150 drivers/mfd/wm8350-gpio.c static int gpio_set_pull_down(struct wm8350 *wm8350, int gpio, int down) wm8350 153 drivers/mfd/wm8350-gpio.c return wm8350_set_bits(wm8350, wm8350 157 drivers/mfd/wm8350-gpio.c return wm8350_clear_bits(wm8350, wm8350 162 drivers/mfd/wm8350-gpio.c static int gpio_set_polarity(struct wm8350 *wm8350, int gpio, int pol) wm8350 165 drivers/mfd/wm8350-gpio.c return wm8350_set_bits(wm8350, wm8350 169 drivers/mfd/wm8350-gpio.c return wm8350_clear_bits(wm8350, wm8350 174 drivers/mfd/wm8350-gpio.c static int gpio_set_invert(struct wm8350 *wm8350, int gpio, int invert) wm8350 177 drivers/mfd/wm8350-gpio.c return wm8350_set_bits(wm8350, WM8350_GPIO_INT_MODE, 1 << gpio); wm8350 179 drivers/mfd/wm8350-gpio.c return wm8350_clear_bits(wm8350, wm8350 183 drivers/mfd/wm8350-gpio.c int wm8350_gpio_config(struct wm8350 *wm8350, int gpio, int dir, int func, wm8350 188 drivers/mfd/wm8350-gpio.c if (gpio_set_pull_up(wm8350, gpio, 0)) wm8350 190 drivers/mfd/wm8350-gpio.c if (gpio_set_pull_down(wm8350, gpio, 0)) wm8350 193 drivers/mfd/wm8350-gpio.c if (gpio_set_pull_down(wm8350, gpio, 0)) wm8350 195 drivers/mfd/wm8350-gpio.c if (gpio_set_pull_up(wm8350, gpio, 1)) wm8350 198 drivers/mfd/wm8350-gpio.c if (gpio_set_pull_up(wm8350, gpio, 0)) wm8350 200 drivers/mfd/wm8350-gpio.c if (gpio_set_pull_down(wm8350, gpio, 1)) wm8350 204 drivers/mfd/wm8350-gpio.c if (gpio_set_invert(wm8350, gpio, invert)) wm8350 206 drivers/mfd/wm8350-gpio.c if (gpio_set_polarity(wm8350, gpio, pol)) wm8350 208 drivers/mfd/wm8350-gpio.c if (wm8350_gpio_set_debounce(wm8350, gpio, debounce)) wm8350 210 drivers/mfd/wm8350-gpio.c if (gpio_set_dir(wm8350, gpio, dir)) wm8350 212 drivers/mfd/wm8350-gpio.c return gpio_set_func(wm8350, gpio, func); wm8350 22 drivers/mfd/wm8350-i2c.c struct wm8350 *wm8350; wm8350 26 drivers/mfd/wm8350-i2c.c wm8350 = devm_kzalloc(&i2c->dev, sizeof(struct wm8350), GFP_KERNEL); wm8350 27 drivers/mfd/wm8350-i2c.c if (wm8350 == NULL) wm8350 30 drivers/mfd/wm8350-i2c.c wm8350->regmap = devm_regmap_init_i2c(i2c, &wm8350_regmap); wm8350 31 drivers/mfd/wm8350-i2c.c if (IS_ERR(wm8350->regmap)) { wm8350 32 drivers/mfd/wm8350-i2c.c ret = PTR_ERR(wm8350->regmap); wm8350 38 drivers/mfd/wm8350-i2c.c i2c_set_clientdata(i2c, wm8350); wm8350 39 drivers/mfd/wm8350-i2c.c wm8350->dev = &i2c->dev; wm8350 41 drivers/mfd/wm8350-i2c.c return wm8350_device_init(wm8350, i2c->irq, pdata); wm8350 361 drivers/mfd/wm8350-irq.c static inline struct wm8350_irq_data *irq_to_wm8350_irq(struct wm8350 *wm8350, wm8350 364 drivers/mfd/wm8350-irq.c return &wm8350_irqs[irq - wm8350->irq_base]; wm8350 378 drivers/mfd/wm8350-irq.c struct wm8350 *wm8350 = irq_data; wm8350 385 drivers/mfd/wm8350-irq.c level_one = wm8350_reg_read(wm8350, WM8350_SYSTEM_INTERRUPTS) wm8350 386 drivers/mfd/wm8350-irq.c & ~wm8350_reg_read(wm8350, WM8350_SYSTEM_INTERRUPTS_MASK); wm8350 401 drivers/mfd/wm8350-irq.c wm8350_reg_read(wm8350, WM8350_INT_STATUS_1 + wm8350 403 drivers/mfd/wm8350-irq.c sub_reg[data->reg] &= ~wm8350->irq_masks[data->reg]; wm8350 408 drivers/mfd/wm8350-irq.c handle_nested_irq(wm8350->irq_base + i); wm8350 416 drivers/mfd/wm8350-irq.c struct wm8350 *wm8350 = irq_data_get_irq_chip_data(data); wm8350 418 drivers/mfd/wm8350-irq.c mutex_lock(&wm8350->irq_lock); wm8350 423 drivers/mfd/wm8350-irq.c struct wm8350 *wm8350 = irq_data_get_irq_chip_data(data); wm8350 426 drivers/mfd/wm8350-irq.c for (i = 0; i < ARRAY_SIZE(wm8350->irq_masks); i++) { wm8350 429 drivers/mfd/wm8350-irq.c WARN_ON(regmap_update_bits(wm8350->regmap, wm8350 431 drivers/mfd/wm8350-irq.c 0xffff, wm8350->irq_masks[i])); wm8350 434 drivers/mfd/wm8350-irq.c mutex_unlock(&wm8350->irq_lock); wm8350 439 drivers/mfd/wm8350-irq.c struct wm8350 *wm8350 = irq_data_get_irq_chip_data(data); wm8350 440 drivers/mfd/wm8350-irq.c struct wm8350_irq_data *irq_data = irq_to_wm8350_irq(wm8350, wm8350 443 drivers/mfd/wm8350-irq.c wm8350->irq_masks[irq_data->reg] &= ~irq_data->mask; wm8350 448 drivers/mfd/wm8350-irq.c struct wm8350 *wm8350 = irq_data_get_irq_chip_data(data); wm8350 449 drivers/mfd/wm8350-irq.c struct wm8350_irq_data *irq_data = irq_to_wm8350_irq(wm8350, wm8350 452 drivers/mfd/wm8350-irq.c wm8350->irq_masks[irq_data->reg] |= irq_data->mask; wm8350 463 drivers/mfd/wm8350-irq.c int wm8350_irq_init(struct wm8350 *wm8350, int irq, wm8350 471 drivers/mfd/wm8350-irq.c dev_warn(wm8350->dev, "No interrupt support, no core IRQ\n"); wm8350 476 drivers/mfd/wm8350-irq.c wm8350_reg_write(wm8350, WM8350_SYSTEM_INTERRUPTS_MASK, 0xFFFF); wm8350 481 drivers/mfd/wm8350-irq.c for (i = 0; i < ARRAY_SIZE(wm8350->irq_masks); i++) { wm8350 482 drivers/mfd/wm8350-irq.c wm8350_reg_write(wm8350, WM8350_INT_STATUS_1_MASK + i, wm8350 484 drivers/mfd/wm8350-irq.c wm8350->irq_masks[i] = wm8350 485 drivers/mfd/wm8350-irq.c wm8350_reg_read(wm8350, wm8350 489 drivers/mfd/wm8350-irq.c mutex_init(&wm8350->irq_lock); wm8350 490 drivers/mfd/wm8350-irq.c wm8350->chip_irq = irq; wm8350 495 drivers/mfd/wm8350-irq.c wm8350->irq_base = wm8350 497 drivers/mfd/wm8350-irq.c if (wm8350->irq_base < 0) { wm8350 498 drivers/mfd/wm8350-irq.c dev_warn(wm8350->dev, "Allocating irqs failed with %d\n", wm8350 499 drivers/mfd/wm8350-irq.c wm8350->irq_base); wm8350 506 drivers/mfd/wm8350-irq.c wm8350_set_bits(wm8350, WM8350_SYSTEM_CONTROL_1, wm8350 511 drivers/mfd/wm8350-irq.c wm8350_clear_bits(wm8350, WM8350_SYSTEM_CONTROL_1, wm8350 516 drivers/mfd/wm8350-irq.c for (cur_irq = wm8350->irq_base; wm8350 517 drivers/mfd/wm8350-irq.c cur_irq < ARRAY_SIZE(wm8350_irqs) + wm8350->irq_base; wm8350 519 drivers/mfd/wm8350-irq.c irq_set_chip_data(cur_irq, wm8350); wm8350 528 drivers/mfd/wm8350-irq.c "wm8350", wm8350); wm8350 530 drivers/mfd/wm8350-irq.c dev_err(wm8350->dev, "Failed to request IRQ: %d\n", ret); wm8350 533 drivers/mfd/wm8350-irq.c wm8350_reg_write(wm8350, WM8350_SYSTEM_INTERRUPTS_MASK, 0); wm8350 538 drivers/mfd/wm8350-irq.c int wm8350_irq_exit(struct wm8350 *wm8350) wm8350 540 drivers/mfd/wm8350-irq.c free_irq(wm8350->chip_irq, wm8350); wm8350 288 drivers/mfd/wm8350-regmap.c struct wm8350 *wm8350 = dev_get_drvdata(dev); wm8350 290 drivers/mfd/wm8350-regmap.c if (!wm8350->unlocked) { wm8350 20 drivers/power/supply/wm8350_power.c static int wm8350_read_battery_uvolts(struct wm8350 *wm8350) wm8350 22 drivers/power/supply/wm8350_power.c return wm8350_read_auxadc(wm8350, WM8350_AUXADC_BATT, 0, 0) wm8350 26 drivers/power/supply/wm8350_power.c static int wm8350_read_line_uvolts(struct wm8350 *wm8350) wm8350 28 drivers/power/supply/wm8350_power.c return wm8350_read_auxadc(wm8350, WM8350_AUXADC_LINE, 0, 0) wm8350 32 drivers/power/supply/wm8350_power.c static int wm8350_read_usb_uvolts(struct wm8350 *wm8350) wm8350 34 drivers/power/supply/wm8350_power.c return wm8350_read_auxadc(wm8350, WM8350_AUXADC_USB, 0, 0) wm8350 42 drivers/power/supply/wm8350_power.c static inline int wm8350_charge_time_min(struct wm8350 *wm8350, int min) wm8350 44 drivers/power/supply/wm8350_power.c if (!wm8350->power.rev_g_coeff) wm8350 50 drivers/power/supply/wm8350_power.c static int wm8350_get_supplies(struct wm8350 *wm8350) wm8350 55 drivers/power/supply/wm8350_power.c sm = wm8350_reg_read(wm8350, WM8350_STATE_MACHINE_STATUS); wm8350 56 drivers/power/supply/wm8350_power.c ov = wm8350_reg_read(wm8350, WM8350_MISC_OVERRIDES); wm8350 57 drivers/power/supply/wm8350_power.c co = wm8350_reg_read(wm8350, WM8350_COMPARATOR_OVERRIDES); wm8350 58 drivers/power/supply/wm8350_power.c chrg = wm8350_reg_read(wm8350, WM8350_BATTERY_CHARGER_CONTROL_2); wm8350 86 drivers/power/supply/wm8350_power.c static int wm8350_charger_config(struct wm8350 *wm8350, wm8350 92 drivers/power/supply/wm8350_power.c dev_warn(wm8350->dev, wm8350 99 drivers/power/supply/wm8350_power.c dev_err(wm8350->dev, "USB fast charge > 500mA\n"); wm8350 105 drivers/power/supply/wm8350_power.c wm8350_reg_unlock(wm8350); wm8350 107 drivers/power/supply/wm8350_power.c reg = wm8350_reg_read(wm8350, WM8350_BATTERY_CHARGER_CONTROL_1) wm8350 109 drivers/power/supply/wm8350_power.c wm8350_reg_write(wm8350, WM8350_BATTERY_CHARGER_CONTROL_1, wm8350 115 drivers/power/supply/wm8350_power.c if (wm8350_get_supplies(wm8350) & WM8350_USB_SUPPLY) { wm8350 118 drivers/power/supply/wm8350_power.c wm8350_reg_write(wm8350, WM8350_BATTERY_CHARGER_CONTROL_2, wm8350 120 drivers/power/supply/wm8350_power.c fast_limit_mA | wm8350_charge_time_min(wm8350, wm8350 126 drivers/power/supply/wm8350_power.c wm8350_reg_write(wm8350, WM8350_BATTERY_CHARGER_CONTROL_2, wm8350 128 drivers/power/supply/wm8350_power.c fast_limit_mA | wm8350_charge_time_min(wm8350, wm8350 132 drivers/power/supply/wm8350_power.c wm8350_reg_lock(wm8350); wm8350 136 drivers/power/supply/wm8350_power.c static int wm8350_batt_status(struct wm8350 *wm8350) wm8350 140 drivers/power/supply/wm8350_power.c state = wm8350_reg_read(wm8350, WM8350_BATTERY_CHARGER_CONTROL_2); wm8350 159 drivers/power/supply/wm8350_power.c struct wm8350 *wm8350 = dev_get_drvdata(dev); wm8350 163 drivers/power/supply/wm8350_power.c state = wm8350_reg_read(wm8350, WM8350_BATTERY_CHARGER_CONTROL_2) & wm8350 186 drivers/power/supply/wm8350_power.c struct wm8350 *wm8350 = data; wm8350 187 drivers/power/supply/wm8350_power.c struct wm8350_power *power = &wm8350->power; wm8350 190 drivers/power/supply/wm8350_power.c switch (irq - wm8350->irq_base) { wm8350 192 drivers/power/supply/wm8350_power.c dev_err(wm8350->dev, "battery failed\n"); wm8350 195 drivers/power/supply/wm8350_power.c dev_err(wm8350->dev, "charger timeout\n"); wm8350 207 drivers/power/supply/wm8350_power.c dev_dbg(wm8350->dev, "fast charger ready\n"); wm8350 208 drivers/power/supply/wm8350_power.c wm8350_charger_config(wm8350, policy); wm8350 209 drivers/power/supply/wm8350_power.c wm8350_reg_unlock(wm8350); wm8350 210 drivers/power/supply/wm8350_power.c wm8350_set_bits(wm8350, WM8350_BATTERY_CHARGER_CONTROL_1, wm8350 212 drivers/power/supply/wm8350_power.c wm8350_reg_lock(wm8350); wm8350 216 drivers/power/supply/wm8350_power.c dev_warn(wm8350->dev, "battery < 3.9V\n"); wm8350 219 drivers/power/supply/wm8350_power.c dev_warn(wm8350->dev, "battery < 3.1V\n"); wm8350 222 drivers/power/supply/wm8350_power.c dev_warn(wm8350->dev, "battery < 2.85V\n"); wm8350 229 drivers/power/supply/wm8350_power.c wm8350_charger_config(wm8350, policy); wm8350 238 drivers/power/supply/wm8350_power.c dev_err(wm8350->dev, "Unknown interrupt %d\n", irq); wm8350 251 drivers/power/supply/wm8350_power.c struct wm8350 *wm8350 = dev_get_drvdata(psy->dev.parent); wm8350 256 drivers/power/supply/wm8350_power.c val->intval = !!(wm8350_get_supplies(wm8350) & wm8350 260 drivers/power/supply/wm8350_power.c val->intval = wm8350_read_line_uvolts(wm8350); wm8350 281 drivers/power/supply/wm8350_power.c struct wm8350 *wm8350 = dev_get_drvdata(psy->dev.parent); wm8350 286 drivers/power/supply/wm8350_power.c val->intval = !!(wm8350_get_supplies(wm8350) & wm8350 290 drivers/power/supply/wm8350_power.c val->intval = wm8350_read_usb_uvolts(wm8350); wm8350 308 drivers/power/supply/wm8350_power.c static int wm8350_bat_check_health(struct wm8350 *wm8350) wm8350 312 drivers/power/supply/wm8350_power.c if (wm8350_read_battery_uvolts(wm8350) < 2850000) wm8350 315 drivers/power/supply/wm8350_power.c reg = wm8350_reg_read(wm8350, WM8350_CHARGER_OVERRIDES); wm8350 325 drivers/power/supply/wm8350_power.c static int wm8350_bat_get_charge_type(struct wm8350 *wm8350) wm8350 329 drivers/power/supply/wm8350_power.c state = wm8350_reg_read(wm8350, WM8350_BATTERY_CHARGER_CONTROL_2) & wm8350 347 drivers/power/supply/wm8350_power.c struct wm8350 *wm8350 = dev_get_drvdata(psy->dev.parent); wm8350 352 drivers/power/supply/wm8350_power.c val->intval = wm8350_batt_status(wm8350); wm8350 355 drivers/power/supply/wm8350_power.c val->intval = !!(wm8350_get_supplies(wm8350) & wm8350 359 drivers/power/supply/wm8350_power.c val->intval = wm8350_read_battery_uvolts(wm8350); wm8350 362 drivers/power/supply/wm8350_power.c val->intval = wm8350_bat_check_health(wm8350); wm8350 365 drivers/power/supply/wm8350_power.c val->intval = wm8350_bat_get_charge_type(wm8350); wm8350 411 drivers/power/supply/wm8350_power.c static void wm8350_init_charger(struct wm8350 *wm8350) wm8350 414 drivers/power/supply/wm8350_power.c wm8350_register_irq(wm8350, WM8350_IRQ_CHG_BAT_HOT, wm8350 415 drivers/power/supply/wm8350_power.c wm8350_charger_handler, 0, "Battery hot", wm8350); wm8350 416 drivers/power/supply/wm8350_power.c wm8350_register_irq(wm8350, WM8350_IRQ_CHG_BAT_COLD, wm8350 417 drivers/power/supply/wm8350_power.c wm8350_charger_handler, 0, "Battery cold", wm8350); wm8350 418 drivers/power/supply/wm8350_power.c wm8350_register_irq(wm8350, WM8350_IRQ_CHG_BAT_FAIL, wm8350 419 drivers/power/supply/wm8350_power.c wm8350_charger_handler, 0, "Battery fail", wm8350); wm8350 420 drivers/power/supply/wm8350_power.c wm8350_register_irq(wm8350, WM8350_IRQ_CHG_TO, wm8350 422 drivers/power/supply/wm8350_power.c "Charger timeout", wm8350); wm8350 423 drivers/power/supply/wm8350_power.c wm8350_register_irq(wm8350, WM8350_IRQ_CHG_END, wm8350 425 drivers/power/supply/wm8350_power.c "Charge end", wm8350); wm8350 426 drivers/power/supply/wm8350_power.c wm8350_register_irq(wm8350, WM8350_IRQ_CHG_START, wm8350 428 drivers/power/supply/wm8350_power.c "Charge start", wm8350); wm8350 429 drivers/power/supply/wm8350_power.c wm8350_register_irq(wm8350, WM8350_IRQ_CHG_FAST_RDY, wm8350 431 drivers/power/supply/wm8350_power.c "Fast charge ready", wm8350); wm8350 432 drivers/power/supply/wm8350_power.c wm8350_register_irq(wm8350, WM8350_IRQ_CHG_VBATT_LT_3P9, wm8350 434 drivers/power/supply/wm8350_power.c "Battery <3.9V", wm8350); wm8350 435 drivers/power/supply/wm8350_power.c wm8350_register_irq(wm8350, WM8350_IRQ_CHG_VBATT_LT_3P1, wm8350 437 drivers/power/supply/wm8350_power.c "Battery <3.1V", wm8350); wm8350 438 drivers/power/supply/wm8350_power.c wm8350_register_irq(wm8350, WM8350_IRQ_CHG_VBATT_LT_2P85, wm8350 440 drivers/power/supply/wm8350_power.c "Battery <2.85V", wm8350); wm8350 443 drivers/power/supply/wm8350_power.c wm8350_register_irq(wm8350, WM8350_IRQ_EXT_USB_FB, wm8350 444 drivers/power/supply/wm8350_power.c wm8350_charger_handler, 0, "USB", wm8350); wm8350 445 drivers/power/supply/wm8350_power.c wm8350_register_irq(wm8350, WM8350_IRQ_EXT_WALL_FB, wm8350 446 drivers/power/supply/wm8350_power.c wm8350_charger_handler, 0, "Wall", wm8350); wm8350 447 drivers/power/supply/wm8350_power.c wm8350_register_irq(wm8350, WM8350_IRQ_EXT_BAT_FB, wm8350 448 drivers/power/supply/wm8350_power.c wm8350_charger_handler, 0, "Battery", wm8350); wm8350 451 drivers/power/supply/wm8350_power.c static void free_charger_irq(struct wm8350 *wm8350) wm8350 453 drivers/power/supply/wm8350_power.c wm8350_free_irq(wm8350, WM8350_IRQ_CHG_BAT_HOT, wm8350); wm8350 454 drivers/power/supply/wm8350_power.c wm8350_free_irq(wm8350, WM8350_IRQ_CHG_BAT_COLD, wm8350); wm8350 455 drivers/power/supply/wm8350_power.c wm8350_free_irq(wm8350, WM8350_IRQ_CHG_BAT_FAIL, wm8350); wm8350 456 drivers/power/supply/wm8350_power.c wm8350_free_irq(wm8350, WM8350_IRQ_CHG_TO, wm8350); wm8350 457 drivers/power/supply/wm8350_power.c wm8350_free_irq(wm8350, WM8350_IRQ_CHG_END, wm8350); wm8350 458 drivers/power/supply/wm8350_power.c wm8350_free_irq(wm8350, WM8350_IRQ_CHG_START, wm8350); wm8350 459 drivers/power/supply/wm8350_power.c wm8350_free_irq(wm8350, WM8350_IRQ_CHG_VBATT_LT_3P9, wm8350); wm8350 460 drivers/power/supply/wm8350_power.c wm8350_free_irq(wm8350, WM8350_IRQ_CHG_VBATT_LT_3P1, wm8350); wm8350 461 drivers/power/supply/wm8350_power.c wm8350_free_irq(wm8350, WM8350_IRQ_CHG_VBATT_LT_2P85, wm8350); wm8350 462 drivers/power/supply/wm8350_power.c wm8350_free_irq(wm8350, WM8350_IRQ_EXT_USB_FB, wm8350); wm8350 463 drivers/power/supply/wm8350_power.c wm8350_free_irq(wm8350, WM8350_IRQ_EXT_WALL_FB, wm8350); wm8350 464 drivers/power/supply/wm8350_power.c wm8350_free_irq(wm8350, WM8350_IRQ_EXT_BAT_FB, wm8350); wm8350 469 drivers/power/supply/wm8350_power.c struct wm8350 *wm8350 = platform_get_drvdata(pdev); wm8350 470 drivers/power/supply/wm8350_power.c struct wm8350_power *power = &wm8350->power; wm8350 493 drivers/power/supply/wm8350_power.c dev_warn(wm8350->dev, "failed to add charge sysfs: %d\n", ret); wm8350 496 drivers/power/supply/wm8350_power.c wm8350_init_charger(wm8350); wm8350 497 drivers/power/supply/wm8350_power.c if (wm8350_charger_config(wm8350, policy) == 0) { wm8350 498 drivers/power/supply/wm8350_power.c wm8350_reg_unlock(wm8350); wm8350 499 drivers/power/supply/wm8350_power.c wm8350_set_bits(wm8350, WM8350_POWER_MGMT_5, WM8350_CHG_ENA); wm8350 500 drivers/power/supply/wm8350_power.c wm8350_reg_lock(wm8350); wm8350 515 drivers/power/supply/wm8350_power.c struct wm8350 *wm8350 = platform_get_drvdata(pdev); wm8350 516 drivers/power/supply/wm8350_power.c struct wm8350_power *power = &wm8350->power; wm8350 518 drivers/power/supply/wm8350_power.c free_charger_irq(wm8350); wm8350 96 drivers/regulator/wm8350-regulator.c struct wm8350 *wm8350 = rdev_get_drvdata(rdev); wm8350 101 drivers/regulator/wm8350-regulator.c switch (wm8350->pmic.isink_A_dcdc) { wm8350 104 drivers/regulator/wm8350-regulator.c wm8350_set_bits(wm8350, WM8350_POWER_MGMT_7, wm8350 106 drivers/regulator/wm8350-regulator.c wm8350_set_bits(wm8350, WM8350_CSA_FLASH_CONTROL, wm8350 108 drivers/regulator/wm8350-regulator.c wm8350_set_bits(wm8350, WM8350_DCDC_LDO_REQUESTED, wm8350 109 drivers/regulator/wm8350-regulator.c 1 << (wm8350->pmic.isink_A_dcdc - wm8350 117 drivers/regulator/wm8350-regulator.c switch (wm8350->pmic.isink_B_dcdc) { wm8350 120 drivers/regulator/wm8350-regulator.c wm8350_set_bits(wm8350, WM8350_POWER_MGMT_7, wm8350 122 drivers/regulator/wm8350-regulator.c wm8350_set_bits(wm8350, WM8350_CSB_FLASH_CONTROL, wm8350 124 drivers/regulator/wm8350-regulator.c wm8350_set_bits(wm8350, WM8350_DCDC_LDO_REQUESTED, wm8350 125 drivers/regulator/wm8350-regulator.c 1 << (wm8350->pmic.isink_B_dcdc - wm8350 140 drivers/regulator/wm8350-regulator.c struct wm8350 *wm8350 = rdev_get_drvdata(rdev); wm8350 145 drivers/regulator/wm8350-regulator.c switch (wm8350->pmic.isink_A_dcdc) { wm8350 148 drivers/regulator/wm8350-regulator.c wm8350_clear_bits(wm8350, WM8350_DCDC_LDO_REQUESTED, wm8350 149 drivers/regulator/wm8350-regulator.c 1 << (wm8350->pmic.isink_A_dcdc - wm8350 151 drivers/regulator/wm8350-regulator.c wm8350_clear_bits(wm8350, WM8350_POWER_MGMT_7, wm8350 159 drivers/regulator/wm8350-regulator.c switch (wm8350->pmic.isink_B_dcdc) { wm8350 162 drivers/regulator/wm8350-regulator.c wm8350_clear_bits(wm8350, WM8350_DCDC_LDO_REQUESTED, wm8350 163 drivers/regulator/wm8350-regulator.c 1 << (wm8350->pmic.isink_B_dcdc - wm8350 165 drivers/regulator/wm8350-regulator.c wm8350_clear_bits(wm8350, WM8350_POWER_MGMT_7, wm8350 180 drivers/regulator/wm8350-regulator.c struct wm8350 *wm8350 = rdev_get_drvdata(rdev); wm8350 185 drivers/regulator/wm8350-regulator.c return wm8350_reg_read(wm8350, WM8350_CURRENT_SINK_DRIVER_A) & wm8350 188 drivers/regulator/wm8350-regulator.c return wm8350_reg_read(wm8350, WM8350_CURRENT_SINK_DRIVER_B) & wm8350 196 drivers/regulator/wm8350-regulator.c struct wm8350 *wm8350 = rdev_get_drvdata(rdev); wm8350 202 drivers/regulator/wm8350-regulator.c reg = wm8350_reg_read(wm8350, WM8350_CSA_FLASH_CONTROL); wm8350 205 drivers/regulator/wm8350-regulator.c reg = wm8350_reg_read(wm8350, WM8350_CSB_FLASH_CONTROL); wm8350 239 drivers/regulator/wm8350-regulator.c int wm8350_isink_set_flash(struct wm8350 *wm8350, int isink, u16 mode, wm8350 245 drivers/regulator/wm8350-regulator.c wm8350_reg_write(wm8350, WM8350_CSA_FLASH_CONTROL, wm8350 251 drivers/regulator/wm8350-regulator.c wm8350_reg_write(wm8350, WM8350_CSB_FLASH_CONTROL, wm8350 265 drivers/regulator/wm8350-regulator.c struct wm8350 *wm8350 = rdev_get_drvdata(rdev); wm8350 269 drivers/regulator/wm8350-regulator.c dev_dbg(wm8350->dev, "%s %d mV %d\n", __func__, dcdc, uV / 1000); wm8350 295 drivers/regulator/wm8350-regulator.c val = wm8350_reg_read(wm8350, volt_reg) & ~WM8350_DC1_VSEL_MASK; wm8350 296 drivers/regulator/wm8350-regulator.c wm8350_reg_write(wm8350, volt_reg, val | sel); wm8350 302 drivers/regulator/wm8350-regulator.c struct wm8350 *wm8350 = rdev_get_drvdata(rdev); wm8350 308 drivers/regulator/wm8350-regulator.c val = wm8350_reg_read(wm8350, WM8350_DCDC1_LOW_POWER) wm8350 310 drivers/regulator/wm8350-regulator.c wm8350_reg_write(wm8350, WM8350_DCDC1_LOW_POWER, wm8350 311 drivers/regulator/wm8350-regulator.c val | wm8350->pmic.dcdc1_hib_mode); wm8350 314 drivers/regulator/wm8350-regulator.c val = wm8350_reg_read(wm8350, WM8350_DCDC3_LOW_POWER) wm8350 316 drivers/regulator/wm8350-regulator.c wm8350_reg_write(wm8350, WM8350_DCDC3_LOW_POWER, wm8350 317 drivers/regulator/wm8350-regulator.c val | wm8350->pmic.dcdc3_hib_mode); wm8350 320 drivers/regulator/wm8350-regulator.c val = wm8350_reg_read(wm8350, WM8350_DCDC4_LOW_POWER) wm8350 322 drivers/regulator/wm8350-regulator.c wm8350_reg_write(wm8350, WM8350_DCDC4_LOW_POWER, wm8350 323 drivers/regulator/wm8350-regulator.c val | wm8350->pmic.dcdc4_hib_mode); wm8350 326 drivers/regulator/wm8350-regulator.c val = wm8350_reg_read(wm8350, WM8350_DCDC6_LOW_POWER) wm8350 328 drivers/regulator/wm8350-regulator.c wm8350_reg_write(wm8350, WM8350_DCDC6_LOW_POWER, wm8350 329 drivers/regulator/wm8350-regulator.c val | wm8350->pmic.dcdc6_hib_mode); wm8350 342 drivers/regulator/wm8350-regulator.c struct wm8350 *wm8350 = rdev_get_drvdata(rdev); wm8350 348 drivers/regulator/wm8350-regulator.c val = wm8350_reg_read(wm8350, WM8350_DCDC1_LOW_POWER); wm8350 349 drivers/regulator/wm8350-regulator.c wm8350->pmic.dcdc1_hib_mode = val & WM8350_DCDC_HIB_MODE_MASK; wm8350 350 drivers/regulator/wm8350-regulator.c wm8350_reg_write(wm8350, WM8350_DCDC1_LOW_POWER, wm8350 354 drivers/regulator/wm8350-regulator.c val = wm8350_reg_read(wm8350, WM8350_DCDC3_LOW_POWER); wm8350 355 drivers/regulator/wm8350-regulator.c wm8350->pmic.dcdc3_hib_mode = val & WM8350_DCDC_HIB_MODE_MASK; wm8350 356 drivers/regulator/wm8350-regulator.c wm8350_reg_write(wm8350, WM8350_DCDC3_LOW_POWER, wm8350 360 drivers/regulator/wm8350-regulator.c val = wm8350_reg_read(wm8350, WM8350_DCDC4_LOW_POWER); wm8350 361 drivers/regulator/wm8350-regulator.c wm8350->pmic.dcdc4_hib_mode = val & WM8350_DCDC_HIB_MODE_MASK; wm8350 362 drivers/regulator/wm8350-regulator.c wm8350_reg_write(wm8350, WM8350_DCDC4_LOW_POWER, wm8350 366 drivers/regulator/wm8350-regulator.c val = wm8350_reg_read(wm8350, WM8350_DCDC6_LOW_POWER); wm8350 367 drivers/regulator/wm8350-regulator.c wm8350->pmic.dcdc6_hib_mode = val & WM8350_DCDC_HIB_MODE_MASK; wm8350 368 drivers/regulator/wm8350-regulator.c wm8350_reg_write(wm8350, WM8350_DCDC6_LOW_POWER, wm8350 382 drivers/regulator/wm8350-regulator.c struct wm8350 *wm8350 = rdev_get_drvdata(rdev); wm8350 388 drivers/regulator/wm8350-regulator.c val = wm8350_reg_read(wm8350, WM8350_DCDC2_CONTROL) wm8350 390 drivers/regulator/wm8350-regulator.c wm8350_reg_write(wm8350, WM8350_DCDC2_CONTROL, val | wm8350 394 drivers/regulator/wm8350-regulator.c val = wm8350_reg_read(wm8350, WM8350_DCDC5_CONTROL) wm8350 396 drivers/regulator/wm8350-regulator.c wm8350_reg_write(wm8350, WM8350_DCDC5_CONTROL, val | wm8350 407 drivers/regulator/wm8350-regulator.c struct wm8350 *wm8350 = rdev_get_drvdata(rdev); wm8350 413 drivers/regulator/wm8350-regulator.c val = wm8350_reg_read(wm8350, WM8350_DCDC2_CONTROL) wm8350 415 drivers/regulator/wm8350-regulator.c wm8350_reg_write(wm8350, WM8350_DCDC2_CONTROL, val | wm8350 419 drivers/regulator/wm8350-regulator.c val = wm8350_reg_read(wm8350, WM8350_DCDC5_CONTROL) wm8350 421 drivers/regulator/wm8350-regulator.c wm8350_reg_write(wm8350, WM8350_DCDC5_CONTROL, val | wm8350 433 drivers/regulator/wm8350-regulator.c struct wm8350 *wm8350 = rdev_get_drvdata(rdev); wm8350 439 drivers/regulator/wm8350-regulator.c hib_mode = &wm8350->pmic.dcdc1_hib_mode; wm8350 442 drivers/regulator/wm8350-regulator.c hib_mode = &wm8350->pmic.dcdc3_hib_mode; wm8350 445 drivers/regulator/wm8350-regulator.c hib_mode = &wm8350->pmic.dcdc4_hib_mode; wm8350 448 drivers/regulator/wm8350-regulator.c hib_mode = &wm8350->pmic.dcdc6_hib_mode; wm8350 480 drivers/regulator/wm8350-regulator.c struct wm8350 *wm8350 = rdev_get_drvdata(rdev); wm8350 484 drivers/regulator/wm8350-regulator.c dev_dbg(wm8350->dev, "%s %d mV %d\n", __func__, ldo, uV / 1000); wm8350 508 drivers/regulator/wm8350-regulator.c val = wm8350_reg_read(wm8350, volt_reg) & ~WM8350_LDO1_VSEL_MASK; wm8350 509 drivers/regulator/wm8350-regulator.c wm8350_reg_write(wm8350, volt_reg, val | sel); wm8350 515 drivers/regulator/wm8350-regulator.c struct wm8350 *wm8350 = rdev_get_drvdata(rdev); wm8350 537 drivers/regulator/wm8350-regulator.c val = wm8350_reg_read(wm8350, volt_reg) & ~WM8350_LDO1_HIB_MODE_MASK; wm8350 538 drivers/regulator/wm8350-regulator.c wm8350_reg_write(wm8350, volt_reg, val); wm8350 544 drivers/regulator/wm8350-regulator.c struct wm8350 *wm8350 = rdev_get_drvdata(rdev); wm8350 566 drivers/regulator/wm8350-regulator.c val = wm8350_reg_read(wm8350, volt_reg) & ~WM8350_LDO1_HIB_MODE_MASK; wm8350 567 drivers/regulator/wm8350-regulator.c wm8350_reg_write(wm8350, volt_reg, val | WM8350_LDO1_HIB_MODE_DIS); wm8350 571 drivers/regulator/wm8350-regulator.c int wm8350_dcdc_set_slot(struct wm8350 *wm8350, int dcdc, u16 start, wm8350 577 drivers/regulator/wm8350-regulator.c dev_dbg(wm8350->dev, "%s %d start %d stop %d\n", wm8350 607 drivers/regulator/wm8350-regulator.c val = wm8350_reg_read(wm8350, slot_reg) & wm8350 610 drivers/regulator/wm8350-regulator.c wm8350_reg_write(wm8350, slot_reg, wm8350 619 drivers/regulator/wm8350-regulator.c int wm8350_ldo_set_slot(struct wm8350 *wm8350, int ldo, u16 start, u16 stop) wm8350 624 drivers/regulator/wm8350-regulator.c dev_dbg(wm8350->dev, "%s %d start %d stop %d\n", wm8350 648 drivers/regulator/wm8350-regulator.c val = wm8350_reg_read(wm8350, slot_reg) & ~WM8350_LDO1_SDSLOT_MASK; wm8350 649 drivers/regulator/wm8350-regulator.c wm8350_reg_write(wm8350, slot_reg, val | ((start << 10) | (stop << 6))); wm8350 654 drivers/regulator/wm8350-regulator.c int wm8350_dcdc25_set_mode(struct wm8350 *wm8350, int dcdc, u16 mode, wm8350 659 drivers/regulator/wm8350-regulator.c dev_dbg(wm8350->dev, "%s %d mode: %s %s\n", __func__, dcdc, wm8350 664 drivers/regulator/wm8350-regulator.c val = wm8350_reg_read(wm8350, WM8350_DCDC2_CONTROL) wm8350 667 drivers/regulator/wm8350-regulator.c wm8350_reg_write(wm8350, WM8350_DCDC2_CONTROL, val | wm8350 674 drivers/regulator/wm8350-regulator.c val = wm8350_reg_read(wm8350, WM8350_DCDC5_CONTROL) wm8350 677 drivers/regulator/wm8350-regulator.c wm8350_reg_write(wm8350, WM8350_DCDC5_CONTROL, val | wm8350 691 drivers/regulator/wm8350-regulator.c static int force_continuous_enable(struct wm8350 *wm8350, int dcdc, int enable) wm8350 713 drivers/regulator/wm8350-regulator.c ret = wm8350_set_bits(wm8350, reg, wm8350 716 drivers/regulator/wm8350-regulator.c ret = wm8350_clear_bits(wm8350, reg, wm8350 723 drivers/regulator/wm8350-regulator.c struct wm8350 *wm8350 = rdev_get_drvdata(rdev); wm8350 738 drivers/regulator/wm8350-regulator.c wm8350_set_bits(wm8350, WM8350_DCDC_ACTIVE_OPTIONS, val); wm8350 739 drivers/regulator/wm8350-regulator.c wm8350_clear_bits(wm8350, WM8350_DCDC_SLEEP_OPTIONS, val); wm8350 740 drivers/regulator/wm8350-regulator.c force_continuous_enable(wm8350, dcdc, 1); wm8350 744 drivers/regulator/wm8350-regulator.c wm8350_set_bits(wm8350, WM8350_DCDC_ACTIVE_OPTIONS, val); wm8350 745 drivers/regulator/wm8350-regulator.c wm8350_clear_bits(wm8350, WM8350_DCDC_SLEEP_OPTIONS, val); wm8350 746 drivers/regulator/wm8350-regulator.c force_continuous_enable(wm8350, dcdc, 0); wm8350 750 drivers/regulator/wm8350-regulator.c force_continuous_enable(wm8350, dcdc, 0); wm8350 751 drivers/regulator/wm8350-regulator.c wm8350_clear_bits(wm8350, WM8350_DCDC_SLEEP_OPTIONS, val); wm8350 752 drivers/regulator/wm8350-regulator.c wm8350_clear_bits(wm8350, WM8350_DCDC_ACTIVE_OPTIONS, val); wm8350 756 drivers/regulator/wm8350-regulator.c force_continuous_enable(wm8350, dcdc, 0); wm8350 757 drivers/regulator/wm8350-regulator.c wm8350_set_bits(wm8350, WM8350_DCDC_SLEEP_OPTIONS, val); wm8350 766 drivers/regulator/wm8350-regulator.c struct wm8350 *wm8350 = rdev_get_drvdata(rdev); wm8350 790 drivers/regulator/wm8350-regulator.c active = wm8350_reg_read(wm8350, WM8350_DCDC_ACTIVE_OPTIONS) & mask; wm8350 791 drivers/regulator/wm8350-regulator.c force = wm8350_reg_read(wm8350, reg) & WM8350_DCDC1_FORCE_PWM_ENA; wm8350 792 drivers/regulator/wm8350-regulator.c sleep = wm8350_reg_read(wm8350, WM8350_DCDC_SLEEP_OPTIONS) & mask; wm8350 794 drivers/regulator/wm8350-regulator.c dev_dbg(wm8350->dev, "mask %x active %x sleep %x force %x", wm8350 1108 drivers/regulator/wm8350-regulator.c struct wm8350 *wm8350 = dev_get_drvdata(&pdev->dev); wm8350 1120 drivers/regulator/wm8350-regulator.c val = wm8350_reg_read(wm8350, WM8350_DCDC1_LOW_POWER); wm8350 1121 drivers/regulator/wm8350-regulator.c wm8350->pmic.dcdc1_hib_mode = val & WM8350_DCDC_HIB_MODE_MASK; wm8350 1124 drivers/regulator/wm8350-regulator.c val = wm8350_reg_read(wm8350, WM8350_DCDC3_LOW_POWER); wm8350 1125 drivers/regulator/wm8350-regulator.c wm8350->pmic.dcdc3_hib_mode = val & WM8350_DCDC_HIB_MODE_MASK; wm8350 1128 drivers/regulator/wm8350-regulator.c val = wm8350_reg_read(wm8350, WM8350_DCDC4_LOW_POWER); wm8350 1129 drivers/regulator/wm8350-regulator.c wm8350->pmic.dcdc4_hib_mode = val & WM8350_DCDC_HIB_MODE_MASK; wm8350 1132 drivers/regulator/wm8350-regulator.c val = wm8350_reg_read(wm8350, WM8350_DCDC6_LOW_POWER); wm8350 1133 drivers/regulator/wm8350-regulator.c wm8350->pmic.dcdc6_hib_mode = val & WM8350_DCDC_HIB_MODE_MASK; wm8350 1140 drivers/regulator/wm8350-regulator.c config.regmap = wm8350->regmap; wm8350 1152 drivers/regulator/wm8350-regulator.c ret = wm8350_register_irq(wm8350, wm8350_reg[pdev->id].irq, wm8350 1166 drivers/regulator/wm8350-regulator.c struct wm8350 *wm8350 = rdev_get_drvdata(rdev); wm8350 1168 drivers/regulator/wm8350-regulator.c wm8350_free_irq(wm8350, wm8350_reg[pdev->id].irq, rdev); wm8350 1173 drivers/regulator/wm8350-regulator.c int wm8350_register_regulator(struct wm8350 *wm8350, int reg, wm8350 1181 drivers/regulator/wm8350-regulator.c if (wm8350->pmic.pdev[reg]) wm8350 1185 drivers/regulator/wm8350-regulator.c reg > wm8350->pmic.max_dcdc) wm8350 1188 drivers/regulator/wm8350-regulator.c reg > wm8350->pmic.max_isink) wm8350 1195 drivers/regulator/wm8350-regulator.c wm8350->pmic.pdev[reg] = pdev; wm8350 1197 drivers/regulator/wm8350-regulator.c initdata->driver_data = wm8350; wm8350 1200 drivers/regulator/wm8350-regulator.c pdev->dev.parent = wm8350->dev; wm8350 1201 drivers/regulator/wm8350-regulator.c platform_set_drvdata(pdev, wm8350); wm8350 1206 drivers/regulator/wm8350-regulator.c dev_err(wm8350->dev, "Failed to register regulator %d: %d\n", wm8350 1209 drivers/regulator/wm8350-regulator.c wm8350->pmic.pdev[reg] = NULL; wm8350 1232 drivers/regulator/wm8350-regulator.c int wm8350_register_led(struct wm8350 *wm8350, int lednum, int dcdc, int isink, wm8350 1239 drivers/regulator/wm8350-regulator.c if (lednum >= ARRAY_SIZE(wm8350->pmic.led) || lednum < 0) { wm8350 1240 drivers/regulator/wm8350-regulator.c dev_err(wm8350->dev, "Invalid LED index %d\n", lednum); wm8350 1244 drivers/regulator/wm8350-regulator.c led = &wm8350->pmic.led[lednum]; wm8350 1247 drivers/regulator/wm8350-regulator.c dev_err(wm8350->dev, "LED %d already allocated\n", lednum); wm8350 1253 drivers/regulator/wm8350-regulator.c dev_err(wm8350->dev, "Failed to allocate LED %d\n", lednum); wm8350 1266 drivers/regulator/wm8350-regulator.c ret = wm8350_register_regulator(wm8350, isink, &led->isink_init); wm8350 1278 drivers/regulator/wm8350-regulator.c ret = wm8350_register_regulator(wm8350, dcdc, &led->dcdc_init); wm8350 1286 drivers/regulator/wm8350-regulator.c wm8350->pmic.isink_A_dcdc = dcdc; wm8350 1289 drivers/regulator/wm8350-regulator.c wm8350->pmic.isink_B_dcdc = dcdc; wm8350 1294 drivers/regulator/wm8350-regulator.c pdev->dev.parent = wm8350->dev; wm8350 1297 drivers/regulator/wm8350-regulator.c dev_err(wm8350->dev, "Failed to register LED %d: %d\n", wm8350 33 drivers/rtc/rtc-wm8350.c struct wm8350 *wm8350 = dev_get_drvdata(dev); wm8350 42 drivers/rtc/rtc-wm8350.c ret = wm8350_block_read(wm8350, WM8350_RTC_SECONDS_MINUTES, wm8350 46 drivers/rtc/rtc-wm8350.c ret = wm8350_block_read(wm8350, WM8350_RTC_SECONDS_MINUTES, wm8350 92 drivers/rtc/rtc-wm8350.c struct wm8350 *wm8350 = dev_get_drvdata(dev); wm8350 110 drivers/rtc/rtc-wm8350.c ret = wm8350_set_bits(wm8350, WM8350_RTC_TIME_CONTROL, WM8350_RTC_SET); wm8350 116 drivers/rtc/rtc-wm8350.c rtc_ctrl = wm8350_reg_read(wm8350, WM8350_RTC_TIME_CONTROL); wm8350 126 drivers/rtc/rtc-wm8350.c ret = wm8350_block_write(wm8350, WM8350_RTC_SECONDS_MINUTES, 4, time); wm8350 131 drivers/rtc/rtc-wm8350.c ret = wm8350_clear_bits(wm8350, WM8350_RTC_TIME_CONTROL, wm8350 141 drivers/rtc/rtc-wm8350.c struct wm8350 *wm8350 = dev_get_drvdata(dev); wm8350 146 drivers/rtc/rtc-wm8350.c ret = wm8350_block_read(wm8350, WM8350_ALARM_SECONDS_MINUTES, 4, time); wm8350 185 drivers/rtc/rtc-wm8350.c static int wm8350_rtc_stop_alarm(struct wm8350 *wm8350) wm8350 192 drivers/rtc/rtc-wm8350.c ret = wm8350_set_bits(wm8350, WM8350_RTC_TIME_CONTROL, wm8350 199 drivers/rtc/rtc-wm8350.c rtc_ctrl = wm8350_reg_read(wm8350, WM8350_RTC_TIME_CONTROL); wm8350 209 drivers/rtc/rtc-wm8350.c static int wm8350_rtc_start_alarm(struct wm8350 *wm8350) wm8350 215 drivers/rtc/rtc-wm8350.c ret = wm8350_clear_bits(wm8350, WM8350_RTC_TIME_CONTROL, wm8350 222 drivers/rtc/rtc-wm8350.c rtc_ctrl = wm8350_reg_read(wm8350, WM8350_RTC_TIME_CONTROL); wm8350 235 drivers/rtc/rtc-wm8350.c struct wm8350 *wm8350 = dev_get_drvdata(dev); wm8350 238 drivers/rtc/rtc-wm8350.c return wm8350_rtc_start_alarm(wm8350); wm8350 240 drivers/rtc/rtc-wm8350.c return wm8350_rtc_stop_alarm(wm8350); wm8350 245 drivers/rtc/rtc-wm8350.c struct wm8350 *wm8350 = dev_get_drvdata(dev); wm8350 282 drivers/rtc/rtc-wm8350.c ret = wm8350_rtc_stop_alarm(wm8350); wm8350 287 drivers/rtc/rtc-wm8350.c ret = wm8350_block_write(wm8350, WM8350_ALARM_SECONDS_MINUTES, wm8350 293 drivers/rtc/rtc-wm8350.c ret = wm8350_rtc_start_alarm(wm8350); wm8350 300 drivers/rtc/rtc-wm8350.c struct wm8350 *wm8350 = data; wm8350 301 drivers/rtc/rtc-wm8350.c struct rtc_device *rtc = wm8350->rtc.rtc; wm8350 307 drivers/rtc/rtc-wm8350.c ret = wm8350_set_bits(wm8350, WM8350_RTC_TIME_CONTROL, wm8350 310 drivers/rtc/rtc-wm8350.c dev_err(&(wm8350->rtc.pdev->dev), wm8350 319 drivers/rtc/rtc-wm8350.c struct wm8350 *wm8350 = data; wm8350 320 drivers/rtc/rtc-wm8350.c struct rtc_device *rtc = wm8350->rtc.rtc; wm8350 338 drivers/rtc/rtc-wm8350.c struct wm8350 *wm8350 = dev_get_drvdata(dev); wm8350 342 drivers/rtc/rtc-wm8350.c reg = wm8350_reg_read(wm8350, WM8350_RTC_TIME_CONTROL); wm8350 344 drivers/rtc/rtc-wm8350.c if (device_may_wakeup(&wm8350->rtc.pdev->dev) && wm8350 346 drivers/rtc/rtc-wm8350.c ret = wm8350_rtc_stop_alarm(wm8350); wm8350 356 drivers/rtc/rtc-wm8350.c struct wm8350 *wm8350 = dev_get_drvdata(dev); wm8350 359 drivers/rtc/rtc-wm8350.c if (wm8350->rtc.alarm_enabled) { wm8350 360 drivers/rtc/rtc-wm8350.c ret = wm8350_rtc_start_alarm(wm8350); wm8350 371 drivers/rtc/rtc-wm8350.c struct wm8350 *wm8350 = platform_get_drvdata(pdev); wm8350 372 drivers/rtc/rtc-wm8350.c struct wm8350_rtc *wm_rtc = &wm8350->rtc; wm8350 376 drivers/rtc/rtc-wm8350.c timectl = wm8350_reg_read(wm8350, WM8350_RTC_TIME_CONTROL); wm8350 387 drivers/rtc/rtc-wm8350.c power5 = wm8350_reg_read(wm8350, WM8350_POWER_MGMT_5); wm8350 389 drivers/rtc/rtc-wm8350.c dev_info(wm8350->dev, "Starting RTC\n"); wm8350 391 drivers/rtc/rtc-wm8350.c wm8350_reg_unlock(wm8350); wm8350 393 drivers/rtc/rtc-wm8350.c ret = wm8350_set_bits(wm8350, WM8350_POWER_MGMT_5, wm8350 400 drivers/rtc/rtc-wm8350.c wm8350_reg_lock(wm8350); wm8350 406 drivers/rtc/rtc-wm8350.c ret = wm8350_clear_bits(wm8350, WM8350_RTC_TIME_CONTROL, wm8350 415 drivers/rtc/rtc-wm8350.c timectl = wm8350_reg_read(wm8350, wm8350 435 drivers/rtc/rtc-wm8350.c wm8350_register_irq(wm8350, WM8350_IRQ_RTC_SEC, wm8350 437 drivers/rtc/rtc-wm8350.c "RTC Seconds", wm8350); wm8350 438 drivers/rtc/rtc-wm8350.c wm8350_mask_irq(wm8350, WM8350_IRQ_RTC_SEC); wm8350 440 drivers/rtc/rtc-wm8350.c wm8350_register_irq(wm8350, WM8350_IRQ_RTC_ALM, wm8350 442 drivers/rtc/rtc-wm8350.c "RTC Alarm", wm8350); wm8350 449 drivers/rtc/rtc-wm8350.c struct wm8350 *wm8350 = platform_get_drvdata(pdev); wm8350 451 drivers/rtc/rtc-wm8350.c wm8350_free_irq(wm8350, WM8350_IRQ_RTC_SEC, wm8350); wm8350 452 drivers/rtc/rtc-wm8350.c wm8350_free_irq(wm8350, WM8350_IRQ_RTC_ALM, wm8350); wm8350 39 drivers/watchdog/wm8350_wdt.c struct wm8350 *wm8350 = watchdog_get_drvdata(wdt_dev); wm8350 50 drivers/watchdog/wm8350_wdt.c wm8350_reg_unlock(wm8350); wm8350 52 drivers/watchdog/wm8350_wdt.c reg = wm8350_reg_read(wm8350, WM8350_SYSTEM_CONTROL_2); wm8350 55 drivers/watchdog/wm8350_wdt.c ret = wm8350_reg_write(wm8350, WM8350_SYSTEM_CONTROL_2, reg); wm8350 57 drivers/watchdog/wm8350_wdt.c wm8350_reg_lock(wm8350); wm8350 66 drivers/watchdog/wm8350_wdt.c struct wm8350 *wm8350 = watchdog_get_drvdata(wdt_dev); wm8350 71 drivers/watchdog/wm8350_wdt.c wm8350_reg_unlock(wm8350); wm8350 73 drivers/watchdog/wm8350_wdt.c reg = wm8350_reg_read(wm8350, WM8350_SYSTEM_CONTROL_2); wm8350 76 drivers/watchdog/wm8350_wdt.c ret = wm8350_reg_write(wm8350, WM8350_SYSTEM_CONTROL_2, reg); wm8350 78 drivers/watchdog/wm8350_wdt.c wm8350_reg_lock(wm8350); wm8350 86 drivers/watchdog/wm8350_wdt.c struct wm8350 *wm8350 = watchdog_get_drvdata(wdt_dev); wm8350 91 drivers/watchdog/wm8350_wdt.c wm8350_reg_unlock(wm8350); wm8350 93 drivers/watchdog/wm8350_wdt.c reg = wm8350_reg_read(wm8350, WM8350_SYSTEM_CONTROL_2); wm8350 95 drivers/watchdog/wm8350_wdt.c ret = wm8350_reg_write(wm8350, WM8350_SYSTEM_CONTROL_2, reg); wm8350 97 drivers/watchdog/wm8350_wdt.c wm8350_reg_lock(wm8350); wm8350 105 drivers/watchdog/wm8350_wdt.c struct wm8350 *wm8350 = watchdog_get_drvdata(wdt_dev); wm8350 111 drivers/watchdog/wm8350_wdt.c reg = wm8350_reg_read(wm8350, WM8350_SYSTEM_CONTROL_2); wm8350 112 drivers/watchdog/wm8350_wdt.c ret = wm8350_reg_write(wm8350, WM8350_SYSTEM_CONTROL_2, reg); wm8350 142 drivers/watchdog/wm8350_wdt.c struct wm8350 *wm8350 = platform_get_drvdata(pdev); wm8350 144 drivers/watchdog/wm8350_wdt.c if (!wm8350) { wm8350 150 drivers/watchdog/wm8350_wdt.c watchdog_set_drvdata(&wm8350_wdt, wm8350); wm8350 163 include/linux/mfd/wm8350/comparator.h struct wm8350; wm8350 168 include/linux/mfd/wm8350/comparator.h int wm8350_read_auxadc(struct wm8350 *wm8350, int channel, int scale, wm8350 586 include/linux/mfd/wm8350/core.h struct wm8350; wm8350 629 include/linux/mfd/wm8350/core.h int (*init)(struct wm8350 *wm8350); wm8350 639 include/linux/mfd/wm8350/core.h int wm8350_device_init(struct wm8350 *wm8350, int irq, wm8350 645 include/linux/mfd/wm8350/core.h int wm8350_clear_bits(struct wm8350 *wm8350, u16 reg, u16 mask); wm8350 646 include/linux/mfd/wm8350/core.h int wm8350_set_bits(struct wm8350 *wm8350, u16 reg, u16 mask); wm8350 647 include/linux/mfd/wm8350/core.h u16 wm8350_reg_read(struct wm8350 *wm8350, int reg); wm8350 648 include/linux/mfd/wm8350/core.h int wm8350_reg_write(struct wm8350 *wm8350, int reg, u16 val); wm8350 649 include/linux/mfd/wm8350/core.h int wm8350_reg_lock(struct wm8350 *wm8350); wm8350 650 include/linux/mfd/wm8350/core.h int wm8350_reg_unlock(struct wm8350 *wm8350); wm8350 651 include/linux/mfd/wm8350/core.h int wm8350_block_read(struct wm8350 *wm8350, int reg, int size, u16 *dest); wm8350 652 include/linux/mfd/wm8350/core.h int wm8350_block_write(struct wm8350 *wm8350, int reg, int size, u16 *src); wm8350 657 include/linux/mfd/wm8350/core.h static inline int wm8350_register_irq(struct wm8350 *wm8350, int irq, wm8350 662 include/linux/mfd/wm8350/core.h if (!wm8350->irq_base) wm8350 665 include/linux/mfd/wm8350/core.h return request_threaded_irq(irq + wm8350->irq_base, NULL, wm8350 669 include/linux/mfd/wm8350/core.h static inline void wm8350_free_irq(struct wm8350 *wm8350, int irq, void *data) wm8350 671 include/linux/mfd/wm8350/core.h free_irq(irq + wm8350->irq_base, data); wm8350 674 include/linux/mfd/wm8350/core.h static inline void wm8350_mask_irq(struct wm8350 *wm8350, int irq) wm8350 676 include/linux/mfd/wm8350/core.h disable_irq(irq + wm8350->irq_base); wm8350 679 include/linux/mfd/wm8350/core.h static inline void wm8350_unmask_irq(struct wm8350 *wm8350, int irq) wm8350 681 include/linux/mfd/wm8350/core.h enable_irq(irq + wm8350->irq_base); wm8350 684 include/linux/mfd/wm8350/core.h int wm8350_irq_init(struct wm8350 *wm8350, int irq, wm8350 686 include/linux/mfd/wm8350/core.h int wm8350_irq_exit(struct wm8350 *wm8350); wm8350 342 include/linux/mfd/wm8350/gpio.h struct wm8350; wm8350 344 include/linux/mfd/wm8350/gpio.h int wm8350_gpio_config(struct wm8350 *wm8350, int gpio, int dir, int func, wm8350 698 include/linux/mfd/wm8350/pmic.h struct wm8350; wm8350 750 include/linux/mfd/wm8350/pmic.h int wm8350_register_regulator(struct wm8350 *wm8350, int reg, wm8350 752 include/linux/mfd/wm8350/pmic.h int wm8350_register_led(struct wm8350 *wm8350, int lednum, int dcdc, int isink, wm8350 758 include/linux/mfd/wm8350/pmic.h int wm8350_dcdc_set_slot(struct wm8350 *wm8350, int dcdc, u16 start, wm8350 760 include/linux/mfd/wm8350/pmic.h int wm8350_dcdc25_set_mode(struct wm8350 *wm8350, int dcdc, u16 mode, wm8350 766 include/linux/mfd/wm8350/pmic.h int wm8350_ldo_set_slot(struct wm8350 *wm8350, int ldo, u16 start, u16 stop); wm8350 771 include/linux/mfd/wm8350/pmic.h int wm8350_isink_set_flash(struct wm8350 *wm8350, int isink, u16 mode, wm8350 60 sound/soc/codecs/wm8350.c struct wm8350 *wm8350; wm8350 78 sound/soc/codecs/wm8350.c struct wm8350 *wm8350 = wm8350_data->wm8350; wm8350 83 sound/soc/codecs/wm8350.c reg = wm8350_reg_read(wm8350, WM8350_LOUT1_VOLUME); wm8350 91 sound/soc/codecs/wm8350.c wm8350_reg_write(wm8350, WM8350_LOUT1_VOLUME, wm8350 100 sound/soc/codecs/wm8350.c wm8350_reg_write(wm8350, WM8350_LOUT1_VOLUME, wm8350 108 sound/soc/codecs/wm8350.c reg = wm8350_reg_read(wm8350, WM8350_ROUT1_VOLUME); wm8350 115 sound/soc/codecs/wm8350.c wm8350_reg_write(wm8350, WM8350_ROUT1_VOLUME, wm8350 124 sound/soc/codecs/wm8350.c wm8350_reg_write(wm8350, WM8350_ROUT1_VOLUME, wm8350 132 sound/soc/codecs/wm8350.c wm8350_set_bits(wm8350, WM8350_LOUT1_VOLUME, WM8350_OUT1_VU); wm8350 143 sound/soc/codecs/wm8350.c struct wm8350 *wm8350 = wm8350_data->wm8350; wm8350 148 sound/soc/codecs/wm8350.c reg = wm8350_reg_read(wm8350, WM8350_LOUT2_VOLUME); wm8350 155 sound/soc/codecs/wm8350.c wm8350_reg_write(wm8350, WM8350_LOUT2_VOLUME, wm8350 164 sound/soc/codecs/wm8350.c wm8350_reg_write(wm8350, WM8350_LOUT2_VOLUME, wm8350 172 sound/soc/codecs/wm8350.c reg = wm8350_reg_read(wm8350, WM8350_ROUT2_VOLUME); wm8350 179 sound/soc/codecs/wm8350.c wm8350_reg_write(wm8350, WM8350_ROUT2_VOLUME, wm8350 188 sound/soc/codecs/wm8350.c wm8350_reg_write(wm8350, WM8350_ROUT2_VOLUME, wm8350 196 sound/soc/codecs/wm8350.c wm8350_set_bits(wm8350, WM8350_LOUT2_VOLUME, WM8350_OUT2_VU); wm8350 755 sound/soc/codecs/wm8350.c struct wm8350 *wm8350 = wm8350_data->wm8350; wm8350 760 sound/soc/codecs/wm8350.c wm8350_clear_bits(wm8350, WM8350_CLOCK_CONTROL_1, wm8350 767 sound/soc/codecs/wm8350.c wm8350_set_bits(wm8350, WM8350_CLOCK_CONTROL_1, wm8350 777 sound/soc/codecs/wm8350.c wm8350_set_bits(wm8350, WM8350_CLOCK_CONTROL_2, wm8350 780 sound/soc/codecs/wm8350.c wm8350_clear_bits(wm8350, WM8350_CLOCK_CONTROL_2, wm8350 909 sound/soc/codecs/wm8350.c struct wm8350 *wm8350 = wm8350_data->wm8350; wm8350 935 sound/soc/codecs/wm8350.c wm8350_set_bits(wm8350, WM8350_DAC_MUTE_VOLUME, wm8350 938 sound/soc/codecs/wm8350.c wm8350_clear_bits(wm8350, WM8350_DAC_MUTE_VOLUME, wm8350 1026 sound/soc/codecs/wm8350.c struct wm8350 *wm8350 = priv->wm8350; wm8350 1035 sound/soc/codecs/wm8350.c wm8350_clear_bits(wm8350, WM8350_POWER_MGMT_4, wm8350 1044 sound/soc/codecs/wm8350.c dev_dbg(wm8350->dev, wm8350 1065 sound/soc/codecs/wm8350.c wm8350_set_bits(wm8350, WM8350_POWER_MGMT_4, WM8350_FLL_OSC_ENA); wm8350 1066 sound/soc/codecs/wm8350.c wm8350_set_bits(wm8350, WM8350_POWER_MGMT_4, WM8350_FLL_ENA); wm8350 1078 sound/soc/codecs/wm8350.c struct wm8350 *wm8350 = priv->wm8350; wm8350 1080 sound/soc/codecs/wm8350.c wm8350->codec.platform_data; wm8350 1086 sound/soc/codecs/wm8350.c pm1 = wm8350_reg_read(wm8350, WM8350_POWER_MGMT_1) & wm8350 1088 sound/soc/codecs/wm8350.c wm8350_reg_write(wm8350, WM8350_POWER_MGMT_1, wm8350 1094 sound/soc/codecs/wm8350.c pm1 = wm8350_reg_read(wm8350, WM8350_POWER_MGMT_1); wm8350 1096 sound/soc/codecs/wm8350.c wm8350_reg_write(wm8350, WM8350_POWER_MGMT_1, wm8350 1108 sound/soc/codecs/wm8350.c wm8350_set_bits(wm8350, WM8350_POWER_MGMT_4, wm8350 1112 sound/soc/codecs/wm8350.c wm8350_set_bits(wm8350, WM8350_DAC_MUTE, wm8350 1116 sound/soc/codecs/wm8350.c wm8350_reg_write(wm8350, WM8350_ANTI_POP_CONTROL, wm8350 1128 sound/soc/codecs/wm8350.c wm8350_reg_write(wm8350, WM8350_ANTI_POP_CONTROL, wm8350 1132 sound/soc/codecs/wm8350.c wm8350_reg_write(wm8350, WM8350_POWER_MGMT_1, wm8350 1144 sound/soc/codecs/wm8350.c pm1 = wm8350_reg_read(wm8350, WM8350_POWER_MGMT_1) & wm8350 1148 sound/soc/codecs/wm8350.c wm8350_reg_write(wm8350, WM8350_POWER_MGMT_1, wm8350 1154 sound/soc/codecs/wm8350.c wm8350_reg_write(wm8350, WM8350_POWER_MGMT_1, pm1); wm8350 1157 sound/soc/codecs/wm8350.c wm8350_reg_write(wm8350, WM8350_ANTI_POP_CONTROL, 0); wm8350 1161 sound/soc/codecs/wm8350.c pm1 = wm8350_reg_read(wm8350, WM8350_POWER_MGMT_1) & wm8350 1163 sound/soc/codecs/wm8350.c wm8350_reg_write(wm8350, WM8350_POWER_MGMT_1, wm8350 1174 sound/soc/codecs/wm8350.c wm8350_set_bits(wm8350, WM8350_DAC_MUTE, WM8350_DAC_MUTE_ENA); wm8350 1176 sound/soc/codecs/wm8350.c wm8350_set_bits(wm8350, WM8350_POWER_MGMT_3, wm8350 1181 sound/soc/codecs/wm8350.c wm8350_reg_write(wm8350, WM8350_ANTI_POP_CONTROL, wm8350 1185 sound/soc/codecs/wm8350.c pm1 = wm8350_reg_read(wm8350, WM8350_POWER_MGMT_1) & wm8350 1187 sound/soc/codecs/wm8350.c wm8350_reg_write(wm8350, WM8350_POWER_MGMT_1, pm1); wm8350 1194 sound/soc/codecs/wm8350.c wm8350_reg_write(wm8350, WM8350_ANTI_POP_CONTROL, wm8350 1202 sound/soc/codecs/wm8350.c pm1 = wm8350_reg_read(wm8350, WM8350_POWER_MGMT_1) & wm8350 1204 sound/soc/codecs/wm8350.c wm8350_reg_write(wm8350, WM8350_POWER_MGMT_1, wm8350 1212 sound/soc/codecs/wm8350.c wm8350_reg_write(wm8350, WM8350_POWER_MGMT_1, pm1); wm8350 1215 sound/soc/codecs/wm8350.c wm8350_reg_write(wm8350, WM8350_ANTI_POP_CONTROL, 0); wm8350 1217 sound/soc/codecs/wm8350.c wm8350_clear_bits(wm8350, WM8350_LOUT1_VOLUME, wm8350 1219 sound/soc/codecs/wm8350.c wm8350_clear_bits(wm8350, WM8350_ROUT1_VOLUME, wm8350 1221 sound/soc/codecs/wm8350.c wm8350_clear_bits(wm8350, WM8350_LOUT2_VOLUME, wm8350 1223 sound/soc/codecs/wm8350.c wm8350_clear_bits(wm8350, WM8350_ROUT2_VOLUME, wm8350 1227 sound/soc/codecs/wm8350.c wm8350_clear_bits(wm8350, WM8350_POWER_MGMT_4, wm8350 1241 sound/soc/codecs/wm8350.c struct wm8350 *wm8350 = priv->wm8350; wm8350 1245 sound/soc/codecs/wm8350.c reg = wm8350_reg_read(wm8350, WM8350_JACK_PIN_STATUS); wm8350 1274 sound/soc/codecs/wm8350.c struct wm8350 *wm8350 = priv->wm8350; wm8350 1280 sound/soc/codecs/wm8350.c if (device_may_wakeup(wm8350->dev)) wm8350 1281 sound/soc/codecs/wm8350.c pm_wakeup_event(wm8350->dev, 250); wm8350 1292 sound/soc/codecs/wm8350.c struct wm8350 *wm8350 = priv->wm8350; wm8350 1298 sound/soc/codecs/wm8350.c if (device_may_wakeup(wm8350->dev)) wm8350 1299 sound/soc/codecs/wm8350.c pm_wakeup_event(wm8350->dev, 250); wm8350 1322 sound/soc/codecs/wm8350.c struct wm8350 *wm8350 = priv->wm8350; wm8350 1343 sound/soc/codecs/wm8350.c wm8350_set_bits(wm8350, WM8350_POWER_MGMT_4, WM8350_TOCLK_ENA); wm8350 1344 sound/soc/codecs/wm8350.c wm8350_set_bits(wm8350, WM8350_JACK_DETECT, ena); wm8350 1346 sound/soc/codecs/wm8350.c wm8350_clear_bits(wm8350, WM8350_JACK_DETECT, ena); wm8350 1366 sound/soc/codecs/wm8350.c struct wm8350 *wm8350 = priv->wm8350; wm8350 1374 sound/soc/codecs/wm8350.c reg = wm8350_reg_read(wm8350, WM8350_JACK_PIN_STATUS); wm8350 1402 sound/soc/codecs/wm8350.c struct wm8350 *wm8350 = priv->wm8350; wm8350 1409 sound/soc/codecs/wm8350.c wm8350_set_bits(wm8350, WM8350_POWER_MGMT_4, WM8350_TOCLK_ENA); wm8350 1410 sound/soc/codecs/wm8350.c wm8350_set_bits(wm8350, WM8350_POWER_MGMT_1, wm8350 1413 sound/soc/codecs/wm8350.c wm8350_clear_bits(wm8350, WM8350_POWER_MGMT_1, wm8350 1457 sound/soc/codecs/wm8350.c struct wm8350 *wm8350 = dev_get_platdata(component->dev); wm8350 1463 sound/soc/codecs/wm8350.c if (wm8350->codec.platform_data == NULL) { wm8350 1473 sound/soc/codecs/wm8350.c snd_soc_component_init_regmap(component, wm8350->regmap); wm8350 1476 sound/soc/codecs/wm8350.c priv->wm8350 = wm8350; wm8350 1481 sound/soc/codecs/wm8350.c ret = devm_regulator_bulk_get(wm8350->dev, ARRAY_SIZE(priv->supplies), wm8350 1487 sound/soc/codecs/wm8350.c wm8350_clear_bits(wm8350, WM8350_POWER_MGMT_5, WM8350_CODEC_ENA); wm8350 1494 sound/soc/codecs/wm8350.c wm8350_set_bits(wm8350, WM8350_POWER_MGMT_5, WM8350_CODEC_ENA); wm8350 1504 sound/soc/codecs/wm8350.c out1->left_vol = (wm8350_reg_read(wm8350, WM8350_LOUT1_VOLUME) & wm8350 1506 sound/soc/codecs/wm8350.c out1->right_vol = (wm8350_reg_read(wm8350, WM8350_ROUT1_VOLUME) & wm8350 1508 sound/soc/codecs/wm8350.c out2->left_vol = (wm8350_reg_read(wm8350, WM8350_LOUT2_VOLUME) & wm8350 1510 sound/soc/codecs/wm8350.c out2->right_vol = (wm8350_reg_read(wm8350, WM8350_ROUT2_VOLUME) & wm8350 1512 sound/soc/codecs/wm8350.c wm8350_reg_write(wm8350, WM8350_LOUT1_VOLUME, 0); wm8350 1513 sound/soc/codecs/wm8350.c wm8350_reg_write(wm8350, WM8350_ROUT1_VOLUME, 0); wm8350 1514 sound/soc/codecs/wm8350.c wm8350_reg_write(wm8350, WM8350_LOUT2_VOLUME, 0); wm8350 1515 sound/soc/codecs/wm8350.c wm8350_reg_write(wm8350, WM8350_ROUT2_VOLUME, 0); wm8350 1518 sound/soc/codecs/wm8350.c wm8350_set_bits(wm8350, WM8350_LOUT1_VOLUME, wm8350 1520 sound/soc/codecs/wm8350.c wm8350_set_bits(wm8350, WM8350_LOUT2_VOLUME, wm8350 1522 sound/soc/codecs/wm8350.c wm8350_set_bits(wm8350, WM8350_ROUT1_VOLUME, wm8350 1524 sound/soc/codecs/wm8350.c wm8350_set_bits(wm8350, WM8350_ROUT2_VOLUME, wm8350 1528 sound/soc/codecs/wm8350.c wm8350_clear_bits(wm8350, WM8350_AI_FORMATING, WM8350_AIF_TRI); wm8350 1531 sound/soc/codecs/wm8350.c wm8350_clear_bits(wm8350, WM8350_ADC_DAC_COMP, wm8350 1535 sound/soc/codecs/wm8350.c wm8350_clear_bits(wm8350, WM8350_JACK_DETECT, wm8350 1538 sound/soc/codecs/wm8350.c wm8350_register_irq(wm8350, WM8350_IRQ_CODEC_JCK_DET_L, wm8350 1541 sound/soc/codecs/wm8350.c wm8350_register_irq(wm8350, WM8350_IRQ_CODEC_JCK_DET_R, wm8350 1544 sound/soc/codecs/wm8350.c wm8350_register_irq(wm8350, WM8350_IRQ_CODEC_MICSCD, wm8350 1546 sound/soc/codecs/wm8350.c wm8350_register_irq(wm8350, WM8350_IRQ_CODEC_MICD, wm8350 1555 sound/soc/codecs/wm8350.c struct wm8350 *wm8350 = dev_get_platdata(component->dev); wm8350 1557 sound/soc/codecs/wm8350.c wm8350_clear_bits(wm8350, WM8350_JACK_DETECT, wm8350 1559 sound/soc/codecs/wm8350.c wm8350_clear_bits(wm8350, WM8350_POWER_MGMT_4, WM8350_TOCLK_ENA); wm8350 1561 sound/soc/codecs/wm8350.c wm8350_free_irq(wm8350, WM8350_IRQ_CODEC_MICD, priv); wm8350 1562 sound/soc/codecs/wm8350.c wm8350_free_irq(wm8350, WM8350_IRQ_CODEC_MICSCD, priv); wm8350 1563 sound/soc/codecs/wm8350.c wm8350_free_irq(wm8350, WM8350_IRQ_CODEC_JCK_DET_L, priv); wm8350 1564 sound/soc/codecs/wm8350.c wm8350_free_irq(wm8350, WM8350_IRQ_CODEC_JCK_DET_R, priv); wm8350 1577 sound/soc/codecs/wm8350.c wm8350_clear_bits(wm8350, WM8350_POWER_MGMT_5, WM8350_CODEC_ENA);