Lines Matching defs:i2c
17 #include <linux/i2c.h>
4874 static void rt5677_init_gpio(struct i2c_client *i2c)
4876 struct rt5677_priv *rt5677 = i2c_get_clientdata(i2c);
4881 rt5677->gpio_chip.parent = &i2c->dev;
4886 dev_err(&i2c->dev, "Failed to add GPIOs: %d\n", ret);
4889 static void rt5677_free_gpio(struct i2c_client *i2c)
4891 struct rt5677_priv *rt5677 = i2c_get_clientdata(i2c);
4901 static void rt5677_init_gpio(struct i2c_client *i2c)
4905 static void rt5677_free_gpio(struct i2c_client *i2c)
5341 * Loop to handle interrupts until the last i2c read shows no pending
5493 static int rt5677_init_irq(struct i2c_client *i2c)
5496 struct rt5677_priv *rt5677 = i2c_get_clientdata(i2c);
5504 if (!i2c->irq) {
5505 dev_err(&i2c->dev, "No interrupt specified\n");
5543 rt5677->domain = irq_domain_add_linear(i2c->dev.of_node,
5546 dev_err(&i2c->dev, "Failed to create IRQ domain\n");
5550 ret = devm_request_threaded_irq(&i2c->dev, i2c->irq, NULL, rt5677_irq,
5554 dev_err(&i2c->dev, "Failed to request IRQ: %d\n", ret);
5556 rt5677->irq = i2c->irq;
5561 static int rt5677_i2c_probe(struct i2c_client *i2c)
5567 rt5677 = devm_kzalloc(&i2c->dev, sizeof(struct rt5677_priv),
5572 rt5677->dev = &i2c->dev;
5575 i2c_set_clientdata(i2c, rt5677);
5577 if (i2c->dev.of_node) {
5580 match_id = of_match_device(rt5677_of_match, &i2c->dev);
5583 } else if (ACPI_HANDLE(&i2c->dev)) {
5586 acpi_id = acpi_match_device(rt5677_acpi_match, &i2c->dev);
5593 rt5677_read_device_properties(rt5677, &i2c->dev);
5599 rt5677->pow_ldo2 = devm_gpiod_get_optional(&i2c->dev,
5603 dev_err(&i2c->dev, "Failed to request POW_LDO2: %d\n", ret);
5606 rt5677->reset_pin = devm_gpiod_get_optional(&i2c->dev,
5610 dev_err(&i2c->dev, "Failed to request RESET: %d\n", ret);
5622 rt5677->regmap_physical = devm_regmap_init_i2c(i2c,
5626 dev_err(&i2c->dev, "Failed to allocate register map: %d\n",
5631 rt5677->regmap = devm_regmap_init(&i2c->dev, NULL, i2c, &rt5677_regmap);
5634 dev_err(&i2c->dev, "Failed to allocate register map: %d\n",
5641 dev_err(&i2c->dev,
5651 dev_warn(&i2c->dev, "Failed to apply regmap patch: %d\n", ret);
5687 rt5677_init_gpio(i2c);
5688 ret = rt5677_init_irq(i2c);
5690 dev_err(&i2c->dev, "Failed to initialize irq: %d\n", ret);
5692 return devm_snd_soc_register_component(&i2c->dev,
5697 static int rt5677_i2c_remove(struct i2c_client *i2c)
5699 rt5677_free_gpio(i2c);