Lines Matching refs:cs53l30

922 	struct cs53l30_private *cs53l30;  in cs53l30_i2c_probe()  local
928 cs53l30 = devm_kzalloc(dev, sizeof(*cs53l30), GFP_KERNEL); in cs53l30_i2c_probe()
929 if (!cs53l30) in cs53l30_i2c_probe()
932 for (i = 0; i < ARRAY_SIZE(cs53l30->supplies); i++) in cs53l30_i2c_probe()
933 cs53l30->supplies[i].supply = cs53l30_supply_names[i]; in cs53l30_i2c_probe()
935 ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(cs53l30->supplies), in cs53l30_i2c_probe()
936 cs53l30->supplies); in cs53l30_i2c_probe()
942 ret = regulator_bulk_enable(ARRAY_SIZE(cs53l30->supplies), in cs53l30_i2c_probe()
943 cs53l30->supplies); in cs53l30_i2c_probe()
950 cs53l30->reset_gpio = devm_gpiod_get_optional(dev, "reset", in cs53l30_i2c_probe()
952 if (IS_ERR(cs53l30->reset_gpio)) { in cs53l30_i2c_probe()
953 ret = PTR_ERR(cs53l30->reset_gpio); in cs53l30_i2c_probe()
957 gpiod_set_value_cansleep(cs53l30->reset_gpio, 1); in cs53l30_i2c_probe()
959 i2c_set_clientdata(client, cs53l30); in cs53l30_i2c_probe()
961 cs53l30->mclk_rate = 0; in cs53l30_i2c_probe()
963 cs53l30->regmap = devm_regmap_init_i2c(client, &cs53l30_regmap); in cs53l30_i2c_probe()
964 if (IS_ERR(cs53l30->regmap)) { in cs53l30_i2c_probe()
965 ret = PTR_ERR(cs53l30->regmap); in cs53l30_i2c_probe()
971 ret = regmap_read(cs53l30->regmap, CS53L30_DEVID_AB, &reg); in cs53l30_i2c_probe()
974 ret = regmap_read(cs53l30->regmap, CS53L30_DEVID_CD, &reg); in cs53l30_i2c_probe()
977 ret = regmap_read(cs53l30->regmap, CS53L30_DEVID_E, &reg); in cs53l30_i2c_probe()
987 ret = regmap_read(cs53l30->regmap, CS53L30_REVID, &reg); in cs53l30_i2c_probe()
994 cs53l30->mclk = devm_clk_get(dev, "mclk"); in cs53l30_i2c_probe()
995 if (IS_ERR(cs53l30->mclk)) { in cs53l30_i2c_probe()
996 if (PTR_ERR(cs53l30->mclk) != -ENOENT) { in cs53l30_i2c_probe()
997 ret = PTR_ERR(cs53l30->mclk); in cs53l30_i2c_probe()
1001 cs53l30->mclk = NULL; in cs53l30_i2c_probe()
1005 cs53l30->mute_gpio = devm_gpiod_get_optional(dev, "mute", in cs53l30_i2c_probe()
1007 if (IS_ERR(cs53l30->mute_gpio)) { in cs53l30_i2c_probe()
1008 ret = PTR_ERR(cs53l30->mute_gpio); in cs53l30_i2c_probe()
1012 if (cs53l30->mute_gpio) { in cs53l30_i2c_probe()
1014 regmap_write(cs53l30->regmap, CS53L30_MUTEP_CTL1, in cs53l30_i2c_probe()
1017 if (gpiod_is_active_low(cs53l30->mute_gpio)) in cs53l30_i2c_probe()
1018 regmap_update_bits(cs53l30->regmap, CS53L30_MUTEP_CTL2, in cs53l30_i2c_probe()
1023 regmap_update_bits(cs53l30->regmap, CS53L30_MICBIAS_CTL, in cs53l30_i2c_probe()
1027 cs53l30->use_sdout2 = true; in cs53l30_i2c_probe()
1040 regulator_bulk_disable(ARRAY_SIZE(cs53l30->supplies), in cs53l30_i2c_probe()
1041 cs53l30->supplies); in cs53l30_i2c_probe()
1047 struct cs53l30_private *cs53l30 = i2c_get_clientdata(client); in cs53l30_i2c_remove() local
1050 gpiod_set_value_cansleep(cs53l30->reset_gpio, 0); in cs53l30_i2c_remove()
1052 regulator_bulk_disable(ARRAY_SIZE(cs53l30->supplies), in cs53l30_i2c_remove()
1053 cs53l30->supplies); in cs53l30_i2c_remove()
1061 struct cs53l30_private *cs53l30 = dev_get_drvdata(dev); in cs53l30_runtime_suspend() local
1063 regcache_cache_only(cs53l30->regmap, true); in cs53l30_runtime_suspend()
1066 gpiod_set_value_cansleep(cs53l30->reset_gpio, 0); in cs53l30_runtime_suspend()
1068 regulator_bulk_disable(ARRAY_SIZE(cs53l30->supplies), in cs53l30_runtime_suspend()
1069 cs53l30->supplies); in cs53l30_runtime_suspend()
1076 struct cs53l30_private *cs53l30 = dev_get_drvdata(dev); in cs53l30_runtime_resume() local
1079 ret = regulator_bulk_enable(ARRAY_SIZE(cs53l30->supplies), in cs53l30_runtime_resume()
1080 cs53l30->supplies); in cs53l30_runtime_resume()
1086 gpiod_set_value_cansleep(cs53l30->reset_gpio, 1); in cs53l30_runtime_resume()
1088 regcache_cache_only(cs53l30->regmap, false); in cs53l30_runtime_resume()
1089 ret = regcache_sync(cs53l30->regmap); in cs53l30_runtime_resume()