Lines Matching refs:core
28 static void sunxi_cpu_disable_power(unsigned int cluster, unsigned int core) in sunxi_cpu_disable_power() argument
30 if (mmio_read_32(SUNXI_CPU_POWER_CLAMP_REG(cluster, core)) == 0xff) in sunxi_cpu_disable_power()
33 VERBOSE("PSCI: Disabling power to cluster %d core %d\n", cluster, core); in sunxi_cpu_disable_power()
35 mmio_write_32(SUNXI_CPU_POWER_CLAMP_REG(cluster, core), 0xff); in sunxi_cpu_disable_power()
38 static void sunxi_cpu_enable_power(unsigned int cluster, unsigned int core) in sunxi_cpu_enable_power() argument
40 if (mmio_read_32(SUNXI_CPU_POWER_CLAMP_REG(cluster, core)) == 0) in sunxi_cpu_enable_power()
43 VERBOSE("PSCI: Enabling power to cluster %d core %d\n", cluster, core); in sunxi_cpu_enable_power()
46 mmio_write_32(SUNXI_CPU_POWER_CLAMP_REG(cluster, core), 0xfe); in sunxi_cpu_enable_power()
47 mmio_write_32(SUNXI_CPU_POWER_CLAMP_REG(cluster, core), 0xf8); in sunxi_cpu_enable_power()
48 mmio_write_32(SUNXI_CPU_POWER_CLAMP_REG(cluster, core), 0xe0); in sunxi_cpu_enable_power()
49 mmio_write_32(SUNXI_CPU_POWER_CLAMP_REG(cluster, core), 0x80); in sunxi_cpu_enable_power()
50 mmio_write_32(SUNXI_CPU_POWER_CLAMP_REG(cluster, core), 0x00); in sunxi_cpu_enable_power()
58 unsigned int core = MPIDR_AFFLVL0_VAL(mpidr); in sunxi_cpu_off() local
60 VERBOSE("PSCI: Powering off cluster %d core %d\n", cluster, core); in sunxi_cpu_off()
64 mmio_clrbits_32(SUNXI_CPUCFG_DBG_REG0, BIT(core)); in sunxi_cpu_off()
66 if (core != 0) { in sunxi_cpu_off()
68 BIT(core)); in sunxi_cpu_off()
71 mmio_clrbits_32(SUNXI_POWERON_RST_REG(cluster), BIT(core)); in sunxi_cpu_off()
73 sunxi_cpu_disable_power(cluster, core); in sunxi_cpu_off()
76 mmio_clrbits_32(SUNXI_C0_CPU_CTRL_REG(core), BIT(8)); in sunxi_cpu_off()
78 if (core != 0) { in sunxi_cpu_off()
79 mmio_setbits_32(SUNXI_CPU_UNK_REG(core), BIT(1)); in sunxi_cpu_off()
82 mmio_clrbits_32(SUNXI_CPU_UNK_REG(core), BIT(0)); in sunxi_cpu_off()
84 sunxi_cpu_disable_power(cluster, core); in sunxi_cpu_off()
91 unsigned int core = MPIDR_AFFLVL0_VAL(mpidr); in sunxi_cpu_on() local
93 VERBOSE("PSCI: Powering on cluster %d core %d\n", cluster, core); in sunxi_cpu_on()
97 mmio_clrbits_32(SUNXI_CPUCFG_RST_CTRL_REG(cluster), BIT(core)); in sunxi_cpu_on()
99 mmio_clrbits_32(SUNXI_POWERON_RST_REG(cluster), BIT(core)); in sunxi_cpu_on()
102 BIT(SUNXI_AA64nAA32_OFFSET + core)); in sunxi_cpu_on()
104 sunxi_cpu_enable_power(cluster, core); in sunxi_cpu_on()
106 mmio_clrbits_32(SUNXI_POWEROFF_GATING_REG(cluster), BIT(core)); in sunxi_cpu_on()
108 mmio_setbits_32(SUNXI_POWERON_RST_REG(cluster), BIT(core)); in sunxi_cpu_on()
110 mmio_setbits_32(SUNXI_CPUCFG_RST_CTRL_REG(cluster), BIT(core)); in sunxi_cpu_on()
112 mmio_setbits_32(SUNXI_CPUCFG_DBG_REG0, BIT(core)); in sunxi_cpu_on()
115 mmio_clrbits_32(SUNXI_C0_CPU_CTRL_REG(core), BIT(0)); in sunxi_cpu_on()
117 mmio_clrbits_32(SUNXI_CPU_UNK_REG(core), BIT(0)); in sunxi_cpu_on()
120 mmio_setbits_32(SUNXI_CPU_CTRL_REG(core), BIT(0)); in sunxi_cpu_on()
123 sunxi_cpu_enable_power(cluster, core); in sunxi_cpu_on()
126 mmio_clrbits_32(SUNXI_CPU_UNK_REG(core), BIT(1)); in sunxi_cpu_on()
128 mmio_setbits_32(SUNXI_CPU_UNK_REG(core), BIT(0)); in sunxi_cpu_on()
130 mmio_setbits_32(SUNXI_C0_CPU_CTRL_REG(core), BIT(0)); in sunxi_cpu_on()
132 mmio_setbits_32(SUNXI_C0_CPU_CTRL_REG(core), BIT(8)); in sunxi_cpu_on()
140 unsigned int core; in sunxi_cpu_power_off_others() local
143 for (core = 0; core < PLATFORM_MAX_CPUS_PER_CLUSTER; ++core) { in sunxi_cpu_power_off_others()
145 (core << MPIDR_AFF0_SHIFT) | in sunxi_cpu_power_off_others()