Lines Matching full:ac97

3 // soc-ac97.c  --  ALSA SoC Audio Layer AC97 support
126 static int snd_soc_ac97_init_gpio(struct snd_ac97 *ac97, in snd_soc_ac97_init_gpio() argument
135 ac97->gpio_priv = gpio_priv; in snd_soc_ac97_init_gpio()
148 static void snd_soc_ac97_free_gpio(struct snd_ac97 *ac97) in snd_soc_ac97_free_gpio() argument
150 gpiochip_remove(&ac97->gpio_priv->gpio_chip); in snd_soc_ac97_free_gpio()
153 static int snd_soc_ac97_init_gpio(struct snd_ac97 *ac97, in snd_soc_ac97_init_gpio() argument
159 static void snd_soc_ac97_free_gpio(struct snd_ac97 *ac97) in snd_soc_ac97_free_gpio() argument
169 * it. The caller is responsible to either call device_add(&ac97->dev) to
170 * register the device, or to call put_device(&ac97->dev) to free the device.
176 struct snd_ac97 *ac97; in snd_soc_alloc_ac97_component() local
178 ac97 = kzalloc(sizeof(struct snd_ac97), GFP_KERNEL); in snd_soc_alloc_ac97_component()
179 if (ac97 == NULL) in snd_soc_alloc_ac97_component()
182 ac97->bus = &soc_ac97_bus; in snd_soc_alloc_ac97_component()
183 ac97->num = 0; in snd_soc_alloc_ac97_component()
185 ac97->dev.bus = &ac97_bus_type; in snd_soc_alloc_ac97_component()
186 ac97->dev.parent = component->card->dev; in snd_soc_alloc_ac97_component()
187 ac97->dev.release = soc_ac97_device_release; in snd_soc_alloc_ac97_component()
189 dev_set_name(&ac97->dev, "%d-%d:%s", in snd_soc_alloc_ac97_component()
193 device_initialize(&ac97->dev); in snd_soc_alloc_ac97_component()
195 return ac97; in snd_soc_alloc_ac97_component()
200 * snd_soc_new_ac97_component - initailise AC97 device
205 * Initialises AC97 component resources for use by ad-hoc devices only.
216 struct snd_ac97 *ac97; in snd_soc_new_ac97_component() local
219 ac97 = snd_soc_alloc_ac97_component(component); in snd_soc_new_ac97_component()
220 if (IS_ERR(ac97)) in snd_soc_new_ac97_component()
221 return ac97; in snd_soc_new_ac97_component()
224 ret = snd_ac97_reset(ac97, false, id, id_mask); in snd_soc_new_ac97_component()
226 dev_err(component->dev, "Failed to reset AC97 device: %d\n", in snd_soc_new_ac97_component()
232 ret = device_add(&ac97->dev); in snd_soc_new_ac97_component()
236 ret = snd_soc_ac97_init_gpio(ac97, component); in snd_soc_new_ac97_component()
240 return ac97; in snd_soc_new_ac97_component()
243 put_device(&ac97->dev); in snd_soc_new_ac97_component()
249 * snd_soc_free_ac97_component - free AC97 component device
250 * @ac97: snd_ac97 device to be freed
252 * Frees AC97 component device resources.
254 void snd_soc_free_ac97_component(struct snd_ac97 *ac97) in snd_soc_free_ac97_component() argument
256 snd_soc_ac97_free_gpio(ac97); in snd_soc_free_ac97_component()
257 device_del(&ac97->dev); in snd_soc_free_ac97_component()
258 ac97->bus = NULL; in snd_soc_free_ac97_component()
259 put_device(&ac97->dev); in snd_soc_free_ac97_component()
265 static void snd_soc_ac97_warm_reset(struct snd_ac97 *ac97) in snd_soc_ac97_warm_reset() argument
281 static void snd_soc_ac97_reset(struct snd_ac97 *ac97) in snd_soc_ac97_reset() argument
314 state = pinctrl_lookup_state(p, "ac97-reset"); in snd_soc_ac97_parse_pinctl()
316 dev_err(dev, "Can't find pinctrl state ac97-reset\n"); in snd_soc_ac97_parse_pinctl()
321 state = pinctrl_lookup_state(p, "ac97-warm-reset"); in snd_soc_ac97_parse_pinctl()
323 dev_err(dev, "Can't find pinctrl state ac97-warm-reset\n"); in snd_soc_ac97_parse_pinctl()
328 state = pinctrl_lookup_state(p, "ac97-running"); in snd_soc_ac97_parse_pinctl()
330 dev_err(dev, "Can't find pinctrl state ac97-running\n"); in snd_soc_ac97_parse_pinctl()
335 gpio = of_get_named_gpio(dev->of_node, "ac97-gpios", 0); in snd_soc_ac97_parse_pinctl()
337 dev_err(dev, "Can't find ac97-sync gpio\n"); in snd_soc_ac97_parse_pinctl()
340 ret = devm_gpio_request(dev, gpio, "AC97 link sync"); in snd_soc_ac97_parse_pinctl()
342 dev_err(dev, "Failed requesting ac97-sync gpio\n"); in snd_soc_ac97_parse_pinctl()
347 gpio = of_get_named_gpio(dev->of_node, "ac97-gpios", 1); in snd_soc_ac97_parse_pinctl()
349 dev_err(dev, "Can't find ac97-sdata gpio %d\n", gpio); in snd_soc_ac97_parse_pinctl()
352 ret = devm_gpio_request(dev, gpio, "AC97 link sdata"); in snd_soc_ac97_parse_pinctl()
354 dev_err(dev, "Failed requesting ac97-sdata gpio\n"); in snd_soc_ac97_parse_pinctl()
359 gpio = of_get_named_gpio(dev->of_node, "ac97-gpios", 2); in snd_soc_ac97_parse_pinctl()
361 dev_err(dev, "Can't find ac97-reset gpio\n"); in snd_soc_ac97_parse_pinctl()
364 ret = devm_gpio_request(dev, gpio, "AC97 link reset"); in snd_soc_ac97_parse_pinctl()
366 dev_err(dev, "Failed requesting ac97-reset gpio\n"); in snd_soc_ac97_parse_pinctl()
393 * snd_soc_set_ac97_ops_of_reset - Set ac97 ops with generic ac97 reset functions