Home | History | Annotate | Download | only in include
      1 #ifndef __HISI_IPC_H__
      2 #define __HISI_IPC_H__
      3 
      4 #define HISI_IPC_CORE_ACPU		0x0
      5 
      6 #define HISI_IPC_MCU_INT_SRC_ACPU0_PD	10
      7 #define HISI_IPC_MCU_INT_SRC_ACPU1_PD	11
      8 #define HISI_IPC_MCU_INT_SRC_ACPU2_PD	12
      9 #define HISI_IPC_MCU_INT_SRC_ACPU3_PD	13
     10 #define HISI_IPC_MCU_INT_SRC_ACPU_PD 	16
     11 #define HISI_IPC_MCU_INT_SRC_ACPU4_PD	26
     12 #define HISI_IPC_MCU_INT_SRC_ACPU5_PD	27
     13 #define HISI_IPC_MCU_INT_SRC_ACPU6_PD	28
     14 #define HISI_IPC_MCU_INT_SRC_ACPU7_PD	29
     15 
     16 #define HISI_IPC_SEM_CPUIDLE		27
     17 #define HISI_IPC_INT_SRC_NUM		32
     18 
     19 #define HISI_IPC_PM_ON			0
     20 #define HISI_IPC_PM_OFF			1
     21 
     22 #define HISI_IPC_OK			(0)
     23 #define HISI_IPC_ERROR			(-1)
     24 
     25 #define HISI_IPC_BASE_ADDR		(0xF7510000)
     26 #define HISI_IPC_CPU_RAW_INT_ADDR	(0xF7510420)
     27 #define HISI_IPC_ACPU_CTRL(i)		(0xF7510800 + (i << 3))
     28 
     29 void hisi_ipc_spin_lock(unsigned int signal);
     30 void hisi_ipc_spin_unlock(unsigned int signal);
     31 void hisi_ipc_cpu_on(unsigned int cpu, unsigned int cluster);
     32 void hisi_ipc_cpu_off(unsigned int cpu, unsigned int cluster);
     33 void hisi_ipc_cpu_suspend(unsigned int cpu, unsigned int cluster);
     34 void hisi_ipc_cluster_on(unsigned int cpu, unsigned int cluster);
     35 void hisi_ipc_cluster_off(unsigned int cpu, unsigned int cluster);
     36 void hisi_ipc_cluster_suspend(unsigned int cpu, unsigned int cluster);
     37 void hisi_ipc_psci_system_off(void);
     38 int hisi_ipc_init(void);
     39 
     40 #endif
     41