Lines Matching refs:rk628
289 static int rk628_irq_init(struct rk628 *rk628, int irq) in rk628_irq_init() argument
291 struct device *dev = rk628->dev; in rk628_irq_init()
292 struct rk628_irq_chip_data *d = rk628->irq_data; in rk628_irq_init()
293 struct regmap *map = rk628->grf; in rk628_irq_init()
353 static void rk628_irq_exit(struct rk628 *rk628) in rk628_irq_exit() argument
355 struct rk628_irq_chip_data *d = rk628->irq_data; in rk628_irq_exit()
381 struct rk628 *rk628; in rk628_i2c_probe() local
384 rk628 = devm_kzalloc(dev, sizeof(*rk628), GFP_KERNEL); in rk628_i2c_probe()
385 if (!rk628) in rk628_i2c_probe()
388 rk628->dev = dev; in rk628_i2c_probe()
389 rk628->client = client; in rk628_i2c_probe()
390 rk628->irq_data = &rk628_irq_chip_data; in rk628_i2c_probe()
391 i2c_set_clientdata(client, rk628); in rk628_i2c_probe()
393 rk628->enable_gpio = devm_gpiod_get_optional(dev, "enable", in rk628_i2c_probe()
395 if (IS_ERR(rk628->enable_gpio)) { in rk628_i2c_probe()
396 ret = PTR_ERR(rk628->enable_gpio); in rk628_i2c_probe()
401 rk628->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_LOW); in rk628_i2c_probe()
402 if (IS_ERR(rk628->reset_gpio)) { in rk628_i2c_probe()
403 ret = PTR_ERR(rk628->reset_gpio); in rk628_i2c_probe()
408 gpiod_set_value(rk628->enable_gpio, 1); in rk628_i2c_probe()
410 gpiod_set_value(rk628->reset_gpio, 0); in rk628_i2c_probe()
412 gpiod_set_value(rk628->reset_gpio, 1); in rk628_i2c_probe()
414 gpiod_set_value(rk628->reset_gpio, 0); in rk628_i2c_probe()
417 rk628->grf = devm_regmap_init_i2c(client, &rk628_grf_regmap_config); in rk628_i2c_probe()
418 if (IS_ERR(rk628->grf)) { in rk628_i2c_probe()
419 ret = PTR_ERR(rk628->grf); in rk628_i2c_probe()
425 ret = regmap_write(rk628->grf, GRF_GPIO3AB_SEL_CON, 0x30002000); in rk628_i2c_probe()
431 ret = rk628_irq_init(rk628, client->irq); in rk628_i2c_probe()
439 NULL, 0, rk628->irq_data->domain); in rk628_i2c_probe()
441 rk628_irq_exit(rk628); in rk628_i2c_probe()
451 struct rk628 *rk628 = i2c_get_clientdata(client); in rk628_i2c_remove() local
453 mfd_remove_devices(rk628->dev); in rk628_i2c_remove()
454 rk628_irq_exit(rk628); in rk628_i2c_remove()