Lines Matching defs:wsa883x

1001 static void wsa883x_init(struct wsa883x_priv *wsa883x)
1003 struct regmap *regmap = wsa883x->regmap;
1007 wsa883x->variant = variant & WSA883X_ID_MASK;
1010 wsa883x->version = version;
1012 switch (wsa883x->variant) {
1014 dev_info(wsa883x->dev, "WSA883X Version 1_%d, Variant: WSA8830\n",
1015 wsa883x->version);
1018 dev_info(wsa883x->dev, "WSA883X Version 1_%d, Variant: WSA8835\n",
1019 wsa883x->version);
1022 dev_info(wsa883x->dev, "WSA883X Version 1_%d, Variant: WSA8832\n",
1023 wsa883x->version);
1026 dev_info(wsa883x->dev, "WSA883X Version 1_%d, Variant: WSA8835_V2\n",
1027 wsa883x->version);
1033 wsa883x->comp_offset = COMP_OFFSET2;
1038 if (wsa883x->variant == WSA8830 || wsa883x->variant == WSA8832) {
1039 wsa883x->comp_offset = COMP_OFFSET3;
1042 wsa883x->comp_offset);
1049 struct wsa883x_priv *wsa883x = dev_get_drvdata(&slave->dev);
1052 wsa883x_init(wsa883x);
1061 struct wsa883x_priv *wsa883x = dev_get_drvdata(&slave->dev);
1064 wsa883x->port_prepared[prepare_ch->num - 1] = true;
1066 wsa883x->port_prepared[prepare_ch->num - 1] = false;
1080 struct wsa883x_priv *wsa883x = snd_soc_component_get_drvdata(component);
1082 ucontrol->value.enumerated.item[0] = wsa883x->dev_mode;
1091 struct wsa883x_priv *wsa883x = snd_soc_component_get_drvdata(component);
1093 if (wsa883x->dev_mode == ucontrol->value.enumerated.item[0])
1096 wsa883x->dev_mode = ucontrol->value.enumerated.item[0];
1147 struct wsa883x_priv *wsa883x = snd_soc_component_get_drvdata(component);
1149 ucontrol->value.integer.value[0] = wsa883x->comp_offset;
1158 struct wsa883x_priv *wsa883x = snd_soc_component_get_drvdata(component);
1160 if (wsa883x->comp_offset == ucontrol->value.integer.value[0])
1163 wsa883x->comp_offset = ucontrol->value.integer.value[0];
1170 struct wsa883x_priv *wsa883x = snd_soc_component_get_drvdata(comp);
1172 snd_soc_component_init_regmap(comp, wsa883x->regmap);
1181 struct wsa883x_priv *wsa883x = snd_soc_component_get_drvdata(component);
1185 switch (wsa883x->dev_mode) {
1210 if (wsa883x->port_enable[WSA883X_PORT_COMP])
1213 wsa883x->comp_offset);
1280 struct wsa883x_priv *wsa883x = dev_get_drvdata(dai->dev);
1283 wsa883x->active_ports = 0;
1285 if (!wsa883x->port_enable[i])
1288 wsa883x->port_config[wsa883x->active_ports] = wsa883x_pconfig[i];
1289 wsa883x->active_ports++;
1292 wsa883x->sconfig.frame_rate = params_rate(params);
1294 return sdw_stream_add_slave(wsa883x->slave, &wsa883x->sconfig,
1295 wsa883x->port_config, wsa883x->active_ports,
1296 wsa883x->sruntime);
1302 struct wsa883x_priv *wsa883x = dev_get_drvdata(dai->dev);
1304 sdw_stream_remove_slave(wsa883x->slave, wsa883x->sruntime);
1312 struct wsa883x_priv *wsa883x = dev_get_drvdata(dai->dev);
1314 wsa883x->sruntime = stream;
1369 struct wsa883x_priv *wsa883x;
1373 wsa883x = devm_kzalloc(dev, sizeof(*wsa883x), GFP_KERNEL);
1374 if (!wsa883x)
1377 wsa883x->vdd = devm_regulator_get(dev, "vdd");
1378 if (IS_ERR(wsa883x->vdd))
1379 return dev_err_probe(dev, PTR_ERR(wsa883x->vdd),
1382 ret = regulator_enable(wsa883x->vdd);
1386 wsa883x->sd_n = devm_gpiod_get_optional(dev, "powerdown",
1388 if (IS_ERR(wsa883x->sd_n)) {
1389 ret = dev_err_probe(dev, PTR_ERR(wsa883x->sd_n),
1394 dev_set_drvdata(dev, wsa883x);
1395 wsa883x->slave = pdev;
1396 wsa883x->dev = dev;
1397 wsa883x->sconfig.ch_count = 1;
1398 wsa883x->sconfig.bps = 1;
1399 wsa883x->sconfig.direction = SDW_DATA_DIR_RX;
1400 wsa883x->sconfig.type = SDW_STREAM_PDM;
1406 gpiod_direction_output(wsa883x->sd_n, 0);
1408 wsa883x->regmap = devm_regmap_init_sdw(pdev, &wsa883x_regmap_config);
1409 if (IS_ERR(wsa883x->regmap)) {
1410 gpiod_direction_output(wsa883x->sd_n, 1);
1411 ret = dev_err_probe(dev, PTR_ERR(wsa883x->regmap),
1427 regulator_disable(wsa883x->vdd);
1466 .name = "wsa883x-codec",