Lines Matching refs:rk803
86 static int rk803_power_on(struct rk803_data *rk803) in rk803_power_on() argument
89 struct device *dev = &rk803->client->dev; in rk803_power_on()
91 ret = regulator_bulk_enable(RK803_NUM_SUPPLIES, rk803->supplies); in rk803_power_on()
102 static void rk803_power_off(struct rk803_data *rk803) in rk803_power_off() argument
104 regulator_bulk_disable(RK803_NUM_SUPPLIES, rk803->supplies); in rk803_power_off()
108 rk803_i2c_write_reg(struct rk803_data *rk803, uint8_t reg, uint8_t val) in rk803_i2c_write_reg() argument
115 regmap = rk803->regmap; in rk803_i2c_write_reg()
116 client = rk803->client; in rk803_i2c_write_reg()
142 struct rk803_data *rk803 = in rk803_dev_ioctl() local
149 gpiod_set_value(rk803->gpio_encc1, val); in rk803_dev_ioctl()
155 gpiod_set_value(rk803->gpio_encc2, val); in rk803_dev_ioctl()
161 rk803->current1 = val; in rk803_dev_ioctl()
162 rk803_i2c_write_reg(rk803, 0, rk803->current1); in rk803_dev_ioctl()
168 rk803->current2 = val; in rk803_dev_ioctl()
169 rk803_i2c_write_reg(rk803, 1, rk803->current2); in rk803_dev_ioctl()
187 static int rk803_configure_regulators(struct rk803_data *rk803) in rk803_configure_regulators() argument
192 rk803->supplies[i].supply = rk803_supply_names[i]; in rk803_configure_regulators()
194 return devm_regulator_bulk_get(&rk803->client->dev, in rk803_configure_regulators()
196 rk803->supplies); in rk803_configure_regulators()
206 struct rk803_data *rk803; in rk803_probe() local
212 rk803 = devm_kzalloc(dev, sizeof(*rk803), GFP_KERNEL); in rk803_probe()
213 if (!rk803) in rk803_probe()
216 rk803->client = client; in rk803_probe()
218 ret = rk803_configure_regulators(rk803); in rk803_probe()
224 rk803_power_on(rk803); in rk803_probe()
268 rk803->chip_id = chipid; in rk803_probe()
269 rk803->regmap = regmap; in rk803_probe()
270 rk803->current1 = IR_LED_DEFAULT_CURRENT; in rk803_probe()
271 rk803->current2 = PRO_LED_DEFAULT_CURRENT; in rk803_probe()
273 rk803->gpio_encc1 = devm_gpiod_get(dev, "gpio-encc1", GPIOD_OUT_LOW); in rk803_probe()
274 if (IS_ERR(rk803->gpio_encc1)) { in rk803_probe()
276 ret = PTR_ERR(rk803->gpio_encc1); in rk803_probe()
279 rk803->gpio_encc2 = devm_gpiod_get(dev, "gpio-encc2", GPIOD_OUT_LOW); in rk803_probe()
280 if (IS_ERR(rk803->gpio_encc2)) { in rk803_probe()
282 ret = PTR_ERR(rk803->gpio_encc2); in rk803_probe()
287 rk803_i2c_write_reg(rk803, 4, 1); in rk803_probe()
290 rk803_i2c_write_reg(rk803, 2, 0xe3); in rk803_probe()
293 rk803_i2c_write_reg(rk803, 3, 0xa7); in rk803_probe()
296 rk803_i2c_write_reg(rk803, 0, PRO_LED_DEFAULT_CURRENT); in rk803_probe()
299 rk803_i2c_write_reg(rk803, 1, IR_LED_DEFAULT_CURRENT); in rk803_probe()
301 i2c_set_clientdata(client, rk803); in rk803_probe()
303 rk803->misc.minor = MISC_DYNAMIC_MINOR; in rk803_probe()
304 rk803->misc.name = "rk803"; in rk803_probe()
305 rk803->misc.fops = &rk803_fops; in rk803_probe()
307 ret = misc_register(&rk803->misc); in rk803_probe()
318 rk803_power_off(rk803); in rk803_probe()
324 struct rk803_data *rk803; in rk803_remove() local
326 rk803 = i2c_get_clientdata(client); in rk803_remove()
327 misc_deregister(&rk803->misc); in rk803_remove()
329 rk803_power_off(rk803); in rk803_remove()