Lines Matching +full:cpu +full:- +full:release +full:- +full:addr
1 // SPDX-License-Identifier: GPL-2.0
5 * Copyright (C) 2015-2016 Smart Energy Instruments, Inc.
23 unsigned cpu = hard_smp_processor_id(); in j2_ipi_interrupt_handler() local
24 volatile unsigned *pmsg = &per_cpu(j2_ipi_messages, cpu); in j2_ipi_interrupt_handler()
48 np = of_find_compatible_node(NULL, NULL, "jcore,ipi-controller"); in j2_prepare_cpus()
57 np = of_find_compatible_node(NULL, NULL, "jcore,cpuid-mmio"); in j2_prepare_cpus()
79 static void j2_start_cpu(unsigned int cpu, unsigned long entry_point) in j2_start_cpu() argument
83 void __iomem *release, *initpc; in j2_start_cpu() local
85 if (!cpu) return; in j2_start_cpu()
87 np = of_get_cpu_node(cpu, NULL); in j2_start_cpu()
90 if (of_property_read_u32_array(np, "cpu-release-addr", regs, 2)) return; in j2_start_cpu()
91 release = ioremap(regs[0], sizeof(u32)); in j2_start_cpu()
95 __raw_writel(1, release); in j2_start_cpu()
98 iounmap(release); in j2_start_cpu()
100 pr_info("J2 SMP: requested start of cpu %u\n", cpu); in j2_start_cpu()
108 static void j2_send_ipi(unsigned int cpu, unsigned int message) in j2_send_ipi() argument
116 pmsg = &per_cpu(j2_ipi_messages, cpu); in j2_send_ipi()
121 val = __raw_readl(j2_ipi_trigger + cpu); in j2_send_ipi()
122 __raw_writel(val | (1U<<28), j2_ipi_trigger + cpu); in j2_send_ipi()
136 CPU_METHOD_OF_DECLARE(j2_cpu_method, "jcore,spin-table", &j2_smp_ops);