Lines Matching refs:mod

65 	struct rsnd_mod mod;  member
81 #define rsnd_mod_to_ssi(_mod) container_of((_mod), struct rsnd_ssi, mod)
91 struct rsnd_mod *mod = rsnd_io_to_mod_ssi(io); in rsnd_ssi_use_busif() local
92 struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod); in rsnd_ssi_use_busif()
95 if (!rsnd_ssi_is_dma_mode(mod)) in rsnd_ssi_use_busif()
106 static void rsnd_ssi_status_check(struct rsnd_mod *mod, in rsnd_ssi_status_check() argument
109 struct rsnd_priv *priv = rsnd_mod_to_priv(mod); in rsnd_ssi_status_check()
115 status = rsnd_mod_read(mod, SSISR); in rsnd_ssi_status_check()
131 struct rsnd_mod *mod = rsnd_mod_get(ssi); in rsnd_ssi_master_clk_start() local
151 ret = rsnd_adg_ssi_clk_try_start(mod, main_rate); in rsnd_ssi_master_clk_start()
157 rsnd_mod_name(mod), in rsnd_ssi_master_clk_start()
158 rsnd_mod_id(mod), rate); in rsnd_ssi_master_clk_start()
170 struct rsnd_mod *mod = rsnd_mod_get(ssi); in rsnd_ssi_master_clk_stop() local
173 rsnd_adg_ssi_clk_stop(mod); in rsnd_ssi_master_clk_stop()
182 struct rsnd_mod *mod = rsnd_mod_get(ssi); in rsnd_ssi_hw_start() local
187 rsnd_mod_power_on(mod); in rsnd_ssi_hw_start()
199 if (rsnd_ssi_is_dma_mode(mod)) { in rsnd_ssi_hw_start()
211 rsnd_mod_write(mod, SSICR, cr); in rsnd_ssi_hw_start()
215 rsnd_mod_write(mod, SSIWSR, CONT); in rsnd_ssi_hw_start()
218 rsnd_mod_write(mod, SSISR, 0); in rsnd_ssi_hw_start()
223 rsnd_mod_name(mod), rsnd_mod_id(mod)); in rsnd_ssi_hw_start()
228 struct rsnd_mod *mod = rsnd_mod_get(ssi); in rsnd_ssi_hw_stop() local
229 struct rsnd_priv *priv = rsnd_mod_to_priv(mod); in rsnd_ssi_hw_stop()
249 rsnd_mod_write(mod, SSICR, cr | EN); in rsnd_ssi_hw_stop()
250 rsnd_ssi_status_check(mod, DIRQ); in rsnd_ssi_hw_stop()
256 rsnd_mod_write(mod, SSICR, cr); /* disabled all */ in rsnd_ssi_hw_stop()
257 rsnd_ssi_status_check(mod, IIRQ); in rsnd_ssi_hw_stop()
268 rsnd_mod_power_off(mod); in rsnd_ssi_hw_stop()
274 rsnd_mod_name(mod), rsnd_mod_id(mod)); in rsnd_ssi_hw_stop()
280 static int rsnd_ssi_init(struct rsnd_mod *mod, in rsnd_ssi_init() argument
284 struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod); in rsnd_ssi_init()
331 static int rsnd_ssi_quit(struct rsnd_mod *mod, in rsnd_ssi_quit() argument
335 struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod); in rsnd_ssi_quit()
340 rsnd_mod_name(mod), rsnd_mod_id(mod), ssi->err); in rsnd_ssi_quit()
348 static int rsnd_ssi_hw_params(struct rsnd_mod *mod, in rsnd_ssi_hw_params() argument
353 struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod); in rsnd_ssi_hw_params()
381 struct rsnd_mod *mod = rsnd_mod_get(ssi); in rsnd_ssi_record_error() local
388 rsnd_mod_write(mod, SSISR, 0); in rsnd_ssi_record_error()
392 static int rsnd_ssi_start(struct rsnd_mod *mod, in rsnd_ssi_start() argument
396 struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod); in rsnd_ssi_start()
398 rsnd_src_ssiu_start(mod, io, rsnd_ssi_use_busif(io)); in rsnd_ssi_start()
402 rsnd_src_ssi_irq_enable(mod); in rsnd_ssi_start()
407 static int rsnd_ssi_stop(struct rsnd_mod *mod, in rsnd_ssi_stop() argument
411 struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod); in rsnd_ssi_stop()
413 rsnd_src_ssi_irq_disable(mod); in rsnd_ssi_stop()
415 rsnd_ssi_record_error(ssi, rsnd_mod_read(mod, SSISR)); in rsnd_ssi_stop()
419 rsnd_src_ssiu_stop(mod, io); in rsnd_ssi_stop()
424 static void __rsnd_ssi_interrupt(struct rsnd_mod *mod, in __rsnd_ssi_interrupt() argument
427 struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod); in __rsnd_ssi_interrupt()
428 struct rsnd_priv *priv = rsnd_mod_to_priv(mod); in __rsnd_ssi_interrupt()
429 int is_dma = rsnd_ssi_is_dma_mode(mod); in __rsnd_ssi_interrupt()
439 status = rsnd_mod_read(mod, SSISR); in __rsnd_ssi_interrupt()
453 rsnd_mod_write(mod, SSITDR, *buf); in __rsnd_ssi_interrupt()
455 *buf = rsnd_mod_read(mod, SSIRDR); in __rsnd_ssi_interrupt()
468 rsnd_mod_name(mod), rsnd_mod_id(mod)); in __rsnd_ssi_interrupt()
470 rsnd_ssi_stop(mod, io, priv); in __rsnd_ssi_interrupt()
472 rsnd_ssi_start(mod, io, priv); in __rsnd_ssi_interrupt()
488 struct rsnd_mod *mod = data; in rsnd_ssi_interrupt() local
490 rsnd_mod_interrupt(mod, __rsnd_ssi_interrupt); in rsnd_ssi_interrupt()
498 static int rsnd_ssi_pio_probe(struct rsnd_mod *mod, in rsnd_ssi_pio_probe() argument
503 struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod); in rsnd_ssi_pio_probe()
509 dev_name(dev), mod); in rsnd_ssi_pio_probe()
524 static int rsnd_ssi_dma_probe(struct rsnd_mod *mod, in rsnd_ssi_dma_probe() argument
528 struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod); in rsnd_ssi_dma_probe()
536 dev_name(dev), mod); in rsnd_ssi_dma_probe()
541 io, rsnd_mod_to_dma(mod), in rsnd_ssi_dma_probe()
547 static int rsnd_ssi_dma_remove(struct rsnd_mod *mod, in rsnd_ssi_dma_remove() argument
551 struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod); in rsnd_ssi_dma_remove()
555 rsnd_dma_quit(io, rsnd_mod_to_dma(mod)); in rsnd_ssi_dma_remove()
558 devm_free_irq(dev, irq, mod); in rsnd_ssi_dma_remove()
563 static int rsnd_ssi_fallback(struct rsnd_mod *mod, in rsnd_ssi_fallback() argument
576 mod->ops = &rsnd_ssi_pio_ops; in rsnd_ssi_fallback()
579 rsnd_mod_name(mod), rsnd_mod_id(mod)); in rsnd_ssi_fallback()
584 static int rsnd_ssi_dma_start(struct rsnd_mod *mod, in rsnd_ssi_dma_start() argument
588 struct rsnd_dma *dma = rsnd_mod_to_dma(mod); in rsnd_ssi_dma_start()
592 rsnd_ssi_start(mod, io, priv); in rsnd_ssi_dma_start()
597 static int rsnd_ssi_dma_stop(struct rsnd_mod *mod, in rsnd_ssi_dma_stop() argument
601 struct rsnd_dma *dma = rsnd_mod_to_dma(mod); in rsnd_ssi_dma_stop()
603 rsnd_ssi_stop(mod, io, priv); in rsnd_ssi_dma_stop()
611 struct rsnd_mod *mod) in rsnd_ssi_dma_req() argument
613 struct rsnd_priv *priv = rsnd_mod_to_priv(mod); in rsnd_ssi_dma_req()
623 mod, name); in rsnd_ssi_dma_req()
639 int rsnd_ssi_is_dma_mode(struct rsnd_mod *mod) in rsnd_ssi_is_dma_mode() argument
641 return mod->ops == &rsnd_ssi_dma_ops; in rsnd_ssi_is_dma_mode()
663 int __rsnd_ssi_is_pin_sharing(struct rsnd_mod *mod) in __rsnd_ssi_is_pin_sharing() argument
665 struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod); in __rsnd_ssi_is_pin_sharing()
672 struct rsnd_mod *mod = rsnd_mod_get(ssi); in rsnd_ssi_parent_setup() local
674 if (!__rsnd_ssi_is_pin_sharing(mod)) in rsnd_ssi_parent_setup()
677 switch (rsnd_mod_id(mod)) { in rsnd_ssi_parent_setup()