Lines Matching defs:i2c
12 #include <linux/i2c.h>
4844 static void rt5677_init_gpio(struct i2c_client *i2c)
4846 struct rt5677_priv *rt5677 = i2c_get_clientdata(i2c);
4851 rt5677->gpio_chip.parent = &i2c->dev;
4856 dev_err(&i2c->dev, "Failed to add GPIOs: %d\n", ret);
4859 static void rt5677_free_gpio(struct i2c_client *i2c)
4861 struct rt5677_priv *rt5677 = i2c_get_clientdata(i2c);
4871 static void rt5677_init_gpio(struct i2c_client *i2c)
4875 static void rt5677_free_gpio(struct i2c_client *i2c)
5310 * Loop to handle interrupts until the last i2c read shows no pending
5462 static int rt5677_init_irq(struct i2c_client *i2c)
5465 struct rt5677_priv *rt5677 = i2c_get_clientdata(i2c);
5473 if (!i2c->irq) {
5474 dev_err(&i2c->dev, "No interrupt specified\n");
5512 rt5677->domain = irq_domain_create_linear(dev_fwnode(&i2c->dev),
5515 dev_err(&i2c->dev, "Failed to create IRQ domain\n");
5519 ret = devm_request_threaded_irq(&i2c->dev, i2c->irq, NULL, rt5677_irq,
5523 dev_err(&i2c->dev, "Failed to request IRQ: %d\n", ret);
5525 rt5677->irq = i2c->irq;
5530 static int rt5677_i2c_probe(struct i2c_client *i2c)
5532 struct device *dev = &i2c->dev;
5537 rt5677 = devm_kzalloc(&i2c->dev, sizeof(struct rt5677_priv),
5542 rt5677->dev = &i2c->dev;
5545 i2c_set_clientdata(i2c, rt5677);
5551 rt5677_read_device_properties(rt5677, &i2c->dev);
5557 rt5677->pow_ldo2 = devm_gpiod_get_optional(&i2c->dev,
5561 dev_err(&i2c->dev, "Failed to request POW_LDO2: %d\n", ret);
5564 rt5677->reset_pin = devm_gpiod_get_optional(&i2c->dev,
5568 dev_err(&i2c->dev, "Failed to request RESET: %d\n", ret);
5580 rt5677->regmap_physical = devm_regmap_init_i2c(i2c,
5584 dev_err(&i2c->dev, "Failed to allocate register map: %d\n",
5589 rt5677->regmap = devm_regmap_init(&i2c->dev, NULL, i2c, &rt5677_regmap);
5592 dev_err(&i2c->dev, "Failed to allocate register map: %d\n",
5599 dev_err(&i2c->dev,
5609 dev_warn(&i2c->dev, "Failed to apply regmap patch: %d\n", ret);
5645 rt5677_init_gpio(i2c);
5646 ret = rt5677_init_irq(i2c);
5648 dev_err(&i2c->dev, "Failed to initialize irq: %d\n", ret);
5650 return devm_snd_soc_register_component(&i2c->dev,
5655 static void rt5677_i2c_remove(struct i2c_client *i2c)
5657 rt5677_free_gpio(i2c);