Lines Matching refs:sspa

45 	struct ssp_device *sspa;  member
53 static void mmp_sspa_write_reg(struct ssp_device *sspa, u32 reg, u32 val) in mmp_sspa_write_reg() argument
55 __raw_writel(val, sspa->mmio_base + reg); in mmp_sspa_write_reg()
58 static u32 mmp_sspa_read_reg(struct ssp_device *sspa, u32 reg) in mmp_sspa_read_reg() argument
60 return __raw_readl(sspa->mmio_base + reg); in mmp_sspa_read_reg()
63 static void mmp_sspa_tx_enable(struct ssp_device *sspa) in mmp_sspa_tx_enable() argument
67 sspa_sp = mmp_sspa_read_reg(sspa, SSPA_TXSP); in mmp_sspa_tx_enable()
70 mmp_sspa_write_reg(sspa, SSPA_TXSP, sspa_sp); in mmp_sspa_tx_enable()
73 static void mmp_sspa_tx_disable(struct ssp_device *sspa) in mmp_sspa_tx_disable() argument
77 sspa_sp = mmp_sspa_read_reg(sspa, SSPA_TXSP); in mmp_sspa_tx_disable()
80 mmp_sspa_write_reg(sspa, SSPA_TXSP, sspa_sp); in mmp_sspa_tx_disable()
83 static void mmp_sspa_rx_enable(struct ssp_device *sspa) in mmp_sspa_rx_enable() argument
87 sspa_sp = mmp_sspa_read_reg(sspa, SSPA_RXSP); in mmp_sspa_rx_enable()
90 mmp_sspa_write_reg(sspa, SSPA_RXSP, sspa_sp); in mmp_sspa_rx_enable()
93 static void mmp_sspa_rx_disable(struct ssp_device *sspa) in mmp_sspa_rx_disable() argument
97 sspa_sp = mmp_sspa_read_reg(sspa, SSPA_RXSP); in mmp_sspa_rx_disable()
100 mmp_sspa_write_reg(sspa, SSPA_RXSP, sspa_sp); in mmp_sspa_rx_disable()
109 clk_enable(priv->sspa->clk); in mmp_sspa_startup()
119 clk_disable(priv->sspa->clk); in mmp_sspa_shutdown()
165 ret = clk_set_rate(priv->sspa->clk, freq_out); in mmp_sspa_set_dai_pll()
185 struct ssp_device *sspa = sspa_priv->sspa; in mmp_sspa_set_dai_fmt() local
193 if ((mmp_sspa_read_reg(sspa, SSPA_TXSP) & SSPA_SP_S_EN) || in mmp_sspa_set_dai_fmt()
194 (mmp_sspa_read_reg(sspa, SSPA_RXSP) & SSPA_SP_S_EN)) { in mmp_sspa_set_dai_fmt()
195 dev_err(&sspa->pdev->dev, in mmp_sspa_set_dai_fmt()
232 mmp_sspa_write_reg(sspa, SSPA_TXSP, sspa_sp); in mmp_sspa_set_dai_fmt()
233 mmp_sspa_write_reg(sspa, SSPA_RXSP, sspa_sp); in mmp_sspa_set_dai_fmt()
236 mmp_sspa_write_reg(sspa, SSPA_TXSP, sspa_sp); in mmp_sspa_set_dai_fmt()
237 mmp_sspa_write_reg(sspa, SSPA_RXSP, sspa_sp); in mmp_sspa_set_dai_fmt()
247 mmp_sspa_write_reg(sspa, SSPA_TXSP, sspa_sp); in mmp_sspa_set_dai_fmt()
249 mmp_sspa_write_reg(sspa, SSPA_TXCTL, sspa_ctrl); in mmp_sspa_set_dai_fmt()
250 mmp_sspa_write_reg(sspa, SSPA_RXCTL, sspa_ctrl); in mmp_sspa_set_dai_fmt()
271 struct ssp_device *sspa = sspa_priv->sspa; in mmp_sspa_hw_params() local
276 sspa_ctrl = mmp_sspa_read_reg(sspa, SSPA_TXCTL); in mmp_sspa_hw_params()
278 sspa_ctrl = mmp_sspa_read_reg(sspa, SSPA_RXCTL); in mmp_sspa_hw_params()
307 mmp_sspa_write_reg(sspa, SSPA_TXCTL, sspa_ctrl); in mmp_sspa_hw_params()
308 mmp_sspa_write_reg(sspa, SSPA_TXFIFO_LL, 0x1); in mmp_sspa_hw_params()
310 mmp_sspa_write_reg(sspa, SSPA_RXCTL, sspa_ctrl); in mmp_sspa_hw_params()
311 mmp_sspa_write_reg(sspa, SSPA_RXFIFO_UL, 0x0); in mmp_sspa_hw_params()
316 (sspa->phys_base + SSPA_TXD) : in mmp_sspa_hw_params()
317 (sspa->phys_base + SSPA_RXD); in mmp_sspa_hw_params()
326 struct ssp_device *sspa = sspa_priv->sspa; in mmp_sspa_trigger() local
340 mmp_sspa_rx_enable(sspa); in mmp_sspa_trigger()
343 mmp_sspa_tx_enable(sspa); in mmp_sspa_trigger()
354 mmp_sspa_tx_disable(sspa); in mmp_sspa_trigger()
358 mmp_sspa_rx_disable(sspa); in mmp_sspa_trigger()
425 priv->sspa = devm_kzalloc(&pdev->dev, in asoc_mmp_sspa_probe()
427 if (priv->sspa == NULL) in asoc_mmp_sspa_probe()
437 priv->sspa->mmio_base = devm_ioremap_resource(&pdev->dev, res); in asoc_mmp_sspa_probe()
438 if (IS_ERR(priv->sspa->mmio_base)) in asoc_mmp_sspa_probe()
439 return PTR_ERR(priv->sspa->mmio_base); in asoc_mmp_sspa_probe()
441 priv->sspa->clk = devm_clk_get(&pdev->dev, NULL); in asoc_mmp_sspa_probe()
442 if (IS_ERR(priv->sspa->clk)) in asoc_mmp_sspa_probe()
443 return PTR_ERR(priv->sspa->clk); in asoc_mmp_sspa_probe()