Lines Matching refs:cs53l30

3  * cs53l30.c  --  CS53l30 ALSA Soc Audio driver
22 #include "cs53l30.h"
864 .name = "cs53l30",
924 struct cs53l30_private *cs53l30;
929 cs53l30 = devm_kzalloc(dev, sizeof(*cs53l30), GFP_KERNEL);
930 if (!cs53l30)
933 for (i = 0; i < ARRAY_SIZE(cs53l30->supplies); i++)
934 cs53l30->supplies[i].supply = cs53l30_supply_names[i];
936 ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(cs53l30->supplies),
937 cs53l30->supplies);
943 ret = regulator_bulk_enable(ARRAY_SIZE(cs53l30->supplies),
944 cs53l30->supplies);
951 cs53l30->reset_gpio = devm_gpiod_get_optional(dev, "reset",
953 if (IS_ERR(cs53l30->reset_gpio)) {
954 ret = PTR_ERR(cs53l30->reset_gpio);
958 gpiod_set_value_cansleep(cs53l30->reset_gpio, 1);
960 i2c_set_clientdata(client, cs53l30);
962 cs53l30->mclk_rate = 0;
964 cs53l30->regmap = devm_regmap_init_i2c(client, &cs53l30_regmap);
965 if (IS_ERR(cs53l30->regmap)) {
966 ret = PTR_ERR(cs53l30->regmap);
972 devid = cirrus_read_device_id(cs53l30->regmap, CS53L30_DEVID_AB);
986 ret = regmap_read(cs53l30->regmap, CS53L30_REVID, &reg);
993 cs53l30->mclk = devm_clk_get_optional(dev, "mclk");
994 if (IS_ERR(cs53l30->mclk)) {
995 ret = PTR_ERR(cs53l30->mclk);
1000 cs53l30->mute_gpio = devm_gpiod_get_optional(dev, "mute",
1002 if (IS_ERR(cs53l30->mute_gpio)) {
1003 ret = PTR_ERR(cs53l30->mute_gpio);
1007 if (cs53l30->mute_gpio) {
1009 regmap_write(cs53l30->regmap, CS53L30_MUTEP_CTL1,
1012 if (gpiod_is_active_low(cs53l30->mute_gpio))
1013 regmap_update_bits(cs53l30->regmap, CS53L30_MUTEP_CTL2,
1018 regmap_update_bits(cs53l30->regmap, CS53L30_MICBIAS_CTL,
1022 cs53l30->use_sdout2 = true;
1035 gpiod_set_value_cansleep(cs53l30->reset_gpio, 0);
1037 regulator_bulk_disable(ARRAY_SIZE(cs53l30->supplies),
1038 cs53l30->supplies);
1044 struct cs53l30_private *cs53l30 = i2c_get_clientdata(client);
1047 gpiod_set_value_cansleep(cs53l30->reset_gpio, 0);
1049 regulator_bulk_disable(ARRAY_SIZE(cs53l30->supplies),
1050 cs53l30->supplies);
1056 struct cs53l30_private *cs53l30 = dev_get_drvdata(dev);
1058 regcache_cache_only(cs53l30->regmap, true);
1061 gpiod_set_value_cansleep(cs53l30->reset_gpio, 0);
1063 regulator_bulk_disable(ARRAY_SIZE(cs53l30->supplies),
1064 cs53l30->supplies);
1071 struct cs53l30_private *cs53l30 = dev_get_drvdata(dev);
1074 ret = regulator_bulk_enable(ARRAY_SIZE(cs53l30->supplies),
1075 cs53l30->supplies);
1081 gpiod_set_value_cansleep(cs53l30->reset_gpio, 1);
1083 regcache_cache_only(cs53l30->regmap, false);
1084 ret = regcache_sync(cs53l30->regmap);
1100 { .compatible = "cirrus,cs53l30", },
1107 { "cs53l30", 0 },
1115 .name = "cs53l30",