Lines Matching refs:isink
35 struct wm831x_isink *isink = rdev_get_drvdata(rdev); in wm831x_isink_enable() local
36 struct wm831x *wm831x = isink->wm831x; in wm831x_isink_enable()
40 ret = wm831x_set_bits(wm831x, isink->reg, WM831X_CS1_ENA, in wm831x_isink_enable()
46 ret = wm831x_set_bits(wm831x, isink->reg, WM831X_CS1_DRIVE, in wm831x_isink_enable()
49 wm831x_set_bits(wm831x, isink->reg, WM831X_CS1_ENA, 0); in wm831x_isink_enable()
57 struct wm831x_isink *isink = rdev_get_drvdata(rdev); in wm831x_isink_disable() local
58 struct wm831x *wm831x = isink->wm831x; in wm831x_isink_disable()
61 ret = wm831x_set_bits(wm831x, isink->reg, WM831X_CS1_DRIVE, 0); in wm831x_isink_disable()
65 ret = wm831x_set_bits(wm831x, isink->reg, WM831X_CS1_ENA, 0); in wm831x_isink_disable()
75 struct wm831x_isink *isink = rdev_get_drvdata(rdev); in wm831x_isink_is_enabled() local
76 struct wm831x *wm831x = isink->wm831x; in wm831x_isink_is_enabled()
79 ret = wm831x_reg_read(wm831x, isink->reg); in wm831x_isink_is_enabled()
100 struct wm831x_isink *isink = data; in wm831x_isink_irq() local
102 regulator_lock(isink->regulator); in wm831x_isink_irq()
103 regulator_notifier_call_chain(isink->regulator, in wm831x_isink_irq()
106 regulator_unlock(isink->regulator); in wm831x_isink_irq()
116 struct wm831x_isink *isink; in wm831x_isink_probe() local
117 int id = pdev->id % ARRAY_SIZE(pdata->isink); in wm831x_isink_probe()
124 if (pdata == NULL || pdata->isink[id] == NULL) in wm831x_isink_probe()
127 isink = devm_kzalloc(&pdev->dev, sizeof(struct wm831x_isink), in wm831x_isink_probe()
129 if (!isink) in wm831x_isink_probe()
132 isink->wm831x = wm831x; in wm831x_isink_probe()
140 isink->reg = res->start; in wm831x_isink_probe()
145 snprintf(isink->name, sizeof(isink->name), "ISINK%d", id + 1); in wm831x_isink_probe()
146 isink->desc.name = isink->name; in wm831x_isink_probe()
147 isink->desc.id = id; in wm831x_isink_probe()
148 isink->desc.ops = &wm831x_isink_ops; in wm831x_isink_probe()
149 isink->desc.type = REGULATOR_CURRENT; in wm831x_isink_probe()
150 isink->desc.owner = THIS_MODULE; in wm831x_isink_probe()
151 isink->desc.curr_table = wm831x_isinkv_values, in wm831x_isink_probe()
152 isink->desc.n_current_limits = ARRAY_SIZE(wm831x_isinkv_values), in wm831x_isink_probe()
153 isink->desc.csel_reg = isink->reg, in wm831x_isink_probe()
154 isink->desc.csel_mask = WM831X_CS1_ISEL_MASK, in wm831x_isink_probe()
157 config.init_data = pdata->isink[id]; in wm831x_isink_probe()
158 config.driver_data = isink; in wm831x_isink_probe()
161 isink->regulator = devm_regulator_register(&pdev->dev, &isink->desc, in wm831x_isink_probe()
163 if (IS_ERR(isink->regulator)) { in wm831x_isink_probe()
164 ret = PTR_ERR(isink->regulator); in wm831x_isink_probe()
174 isink->name, in wm831x_isink_probe()
175 isink); in wm831x_isink_probe()
182 platform_set_drvdata(pdev, isink); in wm831x_isink_probe()