Lines Matching full:lpass

27 /* LPASS Top register definitions */
53 /* pointer to the LPASS TOP regmap */
58 static void exynos_lpass_core_sw_reset(struct exynos_lpass *lpass, int mask) in exynos_lpass_core_sw_reset() argument
62 regmap_read(lpass->top, SFR_LPASS_CORE_SW_RESET, &val); in exynos_lpass_core_sw_reset()
65 regmap_write(lpass->top, SFR_LPASS_CORE_SW_RESET, val); in exynos_lpass_core_sw_reset()
70 regmap_write(lpass->top, SFR_LPASS_CORE_SW_RESET, val); in exynos_lpass_core_sw_reset()
73 static void exynos_lpass_enable(struct exynos_lpass *lpass) in exynos_lpass_enable() argument
75 clk_prepare_enable(lpass->sfr0_clk); in exynos_lpass_enable()
78 regmap_write(lpass->top, SFR_LPASS_INTR_CA5_MASK, in exynos_lpass_enable()
81 regmap_write(lpass->top, SFR_LPASS_INTR_CPU_MASK, in exynos_lpass_enable()
85 exynos_lpass_core_sw_reset(lpass, LPASS_I2S_SW_RESET); in exynos_lpass_enable()
86 exynos_lpass_core_sw_reset(lpass, LPASS_DMA_SW_RESET); in exynos_lpass_enable()
87 exynos_lpass_core_sw_reset(lpass, LPASS_MEM_SW_RESET); in exynos_lpass_enable()
88 exynos_lpass_core_sw_reset(lpass, LPASS_UART_SW_RESET); in exynos_lpass_enable()
91 static void exynos_lpass_disable(struct exynos_lpass *lpass) in exynos_lpass_disable() argument
94 regmap_write(lpass->top, SFR_LPASS_INTR_CPU_MASK, 0); in exynos_lpass_disable()
95 regmap_write(lpass->top, SFR_LPASS_INTR_CA5_MASK, 0); in exynos_lpass_disable()
97 clk_disable_unprepare(lpass->sfr0_clk); in exynos_lpass_disable()
111 struct exynos_lpass *lpass; in exynos_lpass_probe() local
115 lpass = devm_kzalloc(dev, sizeof(*lpass), GFP_KERNEL); in exynos_lpass_probe()
116 if (!lpass) in exynos_lpass_probe()
124 lpass->sfr0_clk = devm_clk_get(dev, "sfr0_ctrl"); in exynos_lpass_probe()
125 if (IS_ERR(lpass->sfr0_clk)) in exynos_lpass_probe()
126 return PTR_ERR(lpass->sfr0_clk); in exynos_lpass_probe()
128 lpass->top = regmap_init_mmio(dev, base_top, in exynos_lpass_probe()
130 if (IS_ERR(lpass->top)) { in exynos_lpass_probe()
131 dev_err(dev, "LPASS top regmap initialization failed\n"); in exynos_lpass_probe()
132 return PTR_ERR(lpass->top); in exynos_lpass_probe()
135 platform_set_drvdata(pdev, lpass); in exynos_lpass_probe()
138 exynos_lpass_enable(lpass); in exynos_lpass_probe()
145 struct exynos_lpass *lpass = platform_get_drvdata(pdev); in exynos_lpass_remove() local
147 exynos_lpass_disable(lpass); in exynos_lpass_remove()
150 exynos_lpass_disable(lpass); in exynos_lpass_remove()
151 regmap_exit(lpass->top); in exynos_lpass_remove()
158 struct exynos_lpass *lpass = dev_get_drvdata(dev); in exynos_lpass_suspend() local
160 exynos_lpass_disable(lpass); in exynos_lpass_suspend()
167 struct exynos_lpass *lpass = dev_get_drvdata(dev); in exynos_lpass_resume() local
169 exynos_lpass_enable(lpass); in exynos_lpass_resume()
181 { .compatible = "samsung,exynos5433-lpass" },
188 .name = "exynos-lpass",