Lines Matching +full:saw +full:- +full:reg
1 // SPDX-License-Identifier: GPL-2.0-only
59 node = of_find_compatible_node(NULL, NULL, "qcom,gcc-msm8660"); in scss_release_secondary()
62 return -ENXIO; in scss_release_secondary()
68 return -ENOMEM; in scss_release_secondary()
82 void __iomem *reg; in cortex_a7_release_secondary() local
88 return -ENODEV; in cortex_a7_release_secondary()
92 ret = -ENODEV; in cortex_a7_release_secondary()
96 reg = of_iomap(acc_node, 0); in cortex_a7_release_secondary()
97 if (!reg) { in cortex_a7_release_secondary()
98 ret = -ENOMEM; in cortex_a7_release_secondary()
104 writel(reg_val, reg + APCS_CPU_PWR_CTL); in cortex_a7_release_secondary()
107 writel(BHS_EN | (0x10 << BHS_CNT_SHIFT), reg + APC_PWR_GATE_CTL); in cortex_a7_release_secondary()
112 writel(reg_val, reg + APCS_CPU_PWR_CTL); in cortex_a7_release_secondary()
114 writel(reg_val, reg + APCS_CPU_PWR_CTL); in cortex_a7_release_secondary()
118 writel(reg_val, reg + APCS_CPU_PWR_CTL); in cortex_a7_release_secondary()
123 writel(reg_val, reg + APCS_CPU_PWR_CTL); in cortex_a7_release_secondary()
125 writel(reg_val, reg + APCS_CPU_PWR_CTL); in cortex_a7_release_secondary()
127 iounmap(reg); in cortex_a7_release_secondary()
138 void __iomem *reg, *saw_reg; in kpssv1_release_secondary() local
144 return -ENODEV; in kpssv1_release_secondary()
148 ret = -ENODEV; in kpssv1_release_secondary()
152 saw_node = of_parse_phandle(cpu_node, "qcom,saw", 0); in kpssv1_release_secondary()
154 ret = -ENODEV; in kpssv1_release_secondary()
158 reg = of_iomap(acc_node, 0); in kpssv1_release_secondary()
159 if (!reg) { in kpssv1_release_secondary()
160 ret = -ENOMEM; in kpssv1_release_secondary()
166 ret = -ENOMEM; in kpssv1_release_secondary()
175 /* Krait bring-up sequence */ in kpssv1_release_secondary()
177 writel_relaxed(val, reg + APCS_CPU_PWR_CTL); in kpssv1_release_secondary()
179 writel_relaxed(val, reg + APCS_CPU_PWR_CTL); in kpssv1_release_secondary()
184 writel_relaxed(val, reg + APCS_CPU_PWR_CTL); in kpssv1_release_secondary()
189 writel_relaxed(val, reg + APCS_CPU_PWR_CTL); in kpssv1_release_secondary()
194 writel_relaxed(val, reg + APCS_CPU_PWR_CTL); in kpssv1_release_secondary()
199 writel_relaxed(val, reg + APCS_CPU_PWR_CTL); in kpssv1_release_secondary()
204 iounmap(reg); in kpssv1_release_secondary()
216 void __iomem *reg; in kpssv2_release_secondary() local
224 return -ENODEV; in kpssv2_release_secondary()
228 ret = -ENODEV; in kpssv2_release_secondary()
232 l2_node = of_parse_phandle(cpu_node, "next-level-cache", 0); in kpssv2_release_secondary()
234 ret = -ENODEV; in kpssv2_release_secondary()
238 saw_node = of_parse_phandle(l2_node, "qcom,saw", 0); in kpssv2_release_secondary()
240 ret = -ENODEV; in kpssv2_release_secondary()
244 reg = of_iomap(acc_node, 0); in kpssv2_release_secondary()
245 if (!reg) { in kpssv2_release_secondary()
246 ret = -ENOMEM; in kpssv2_release_secondary()
252 ret = -ENOMEM; in kpssv2_release_secondary()
258 writel_relaxed(reg_val, reg + APC_PWR_GATE_CTL); in kpssv2_release_secondary()
265 writel_relaxed(reg_val, reg + APC_PWR_GATE_CTL); in kpssv2_release_secondary()
272 writel_relaxed(reg_val, reg + APC_PWR_GATE_CTL); in kpssv2_release_secondary()
280 writel_relaxed(reg_val, reg + APCS_CPU_PWR_CTL); in kpssv2_release_secondary()
285 writel_relaxed(reg_val, reg + APCS_CPU_PWR_CTL); in kpssv2_release_secondary()
290 writel_relaxed(reg_val, reg + APCS_CPU_PWR_CTL); in kpssv2_release_secondary()
294 writel_relaxed(reg_val, reg + APCS_CPU_PWR_CTL); in kpssv2_release_secondary()
301 iounmap(reg); in kpssv2_release_secondary()
377 CPU_METHOD_OF_DECLARE(qcom_smp, "qcom,gcc-msm8660", &smp_msm8660_ops);
386 CPU_METHOD_OF_DECLARE(qcom_smp_msm8226, "qcom,msm8226-smp", &qcom_smp_cortex_a7_ops);
387 CPU_METHOD_OF_DECLARE(qcom_smp_msm8909, "qcom,msm8909-smp", &qcom_smp_cortex_a7_ops);
388 CPU_METHOD_OF_DECLARE(qcom_smp_msm8916, "qcom,msm8916-smp", &qcom_smp_cortex_a7_ops);
397 CPU_METHOD_OF_DECLARE(qcom_smp_kpssv1, "qcom,kpss-acc-v1", &qcom_smp_kpssv1_ops);
406 CPU_METHOD_OF_DECLARE(qcom_smp_kpssv2, "qcom,kpss-acc-v2", &qcom_smp_kpssv2_ops);