Lines Matching +full:fixed +full:- +full:mmio +full:- +full:clock
1 // SPDX-License-Identifier: GPL-2.0
24 * fixed TDM slot size, regardless of sample resolution.
54 #define CR_BREN (1 << 7) /* clock gating in burst mode */
62 #define SSIREG(reg) (*(unsigned long *)(ssi->mmio + (reg)))
65 unsigned long mmio; member
71 .mmio = 0xFE680000,
74 .mmio = 0xFE690000,
78 .mmio = 0xFFE70000,
86 * track usage of the SSI; it is simplex-only so prevent attempts of
92 struct ssi_priv *ssi = &ssi_cpu_data[dai->id]; in ssi_startup()
93 if (ssi->inuse) { in ssi_startup()
95 return -EBUSY; in ssi_startup()
97 ssi->inuse = 1; in ssi_startup()
104 struct ssi_priv *ssi = &ssi_cpu_data[dai->id]; in ssi_shutdown()
106 ssi->inuse = 0; in ssi_shutdown()
112 struct ssi_priv *ssi = &ssi_cpu_data[dai->id]; in ssi_trigger()
122 return -EINVAL; in ssi_trigger()
132 struct ssi_priv *ssi = &ssi_cpu_data[dai->id]; in ssi_hw_params()
137 bits = params->msbits; in ssi_hw_params()
138 recv = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ? 0 : 1; in ssi_hw_params()
153 return -EINVAL; in ssi_hw_params()
155 ssicr |= ((channels >> 1) - 1) << CR_CHNL_SHIFT; in ssi_hw_params()
170 return -EINVAL; in ssi_hw_params()
180 * Waiting for ASoC to get TDM support ;-) in ssi_hw_params()
199 return -EINVAL; in ssi_hw_params()
211 struct ssi_priv *ssi = &ssi_cpu_data[cpu_dai->id]; in ssi_set_sysclk()
213 ssi->sysclk = freq; in ssi_set_sysclk()
220 * clock at the HAC_BIT_CLK ("oversampling clock") pin.
224 struct ssi_priv *ssi = &ssi_cpu_data[dai->id]; in ssi_set_clkdiv()
239 return -EINVAL; in ssi_set_clkdiv()
247 struct ssi_priv *ssi = &ssi_cpu_data[dai->id]; in ssi_set_fmt()
266 return -EINVAL; in ssi_set_fmt()
291 return -EINVAL; in ssi_set_fmt()
308 return -EINVAL; in ssi_set_fmt()
324 /* the SSI can do 8-32 bit samples, with 8 possible channels */
344 .name = "ssi-dai.0",
361 .name = "ssi-dai.1",
380 .name = "sh4-ssi",
386 return devm_snd_soc_register_component(&pdev->dev, &sh4_ssi_component, in sh4_soc_dai_probe()
393 .name = "sh4-ssi-dai",