Merge branch 'master' of git://git.denx.de/u-boot-sunxi
[oweals/u-boot.git] / arch / arm / include / asm / arch-sunxi / prcm.h
index 3d3bfa6cd1b0ccabf23ed0885123e739b9302199..ae3880b13bdfed19a1a3b0a700ddc76b6b31cfd3 100644 (file)
@@ -50,7 +50,8 @@
 #define PRCM_APB0_GATE_PIO (0x1 << 0)
 #define PRCM_APB0_GATE_IR (0x1 << 1)
 #define PRCM_APB0_GATE_TIMER01 (0x1 << 2)
-#define PRCM_APB0_GATE_P2WI (0x1 << 3)
+#define PRCM_APB0_GATE_P2WI (0x1 << 3)         /* sun6i */
+#define PRCM_APB0_GATE_RSB (0x1 << 3)          /* sun8i */
 #define PRCM_APB0_GATE_UART (0x1 << 4)
 #define PRCM_APB0_GATE_1WIRE (0x1 << 5)
 #define PRCM_APB0_GATE_I2C (0x1 << 6)
 #define PRCM_PLL_CTRL_LDO_OUT_HV(n) \
        __PRCM_PLL_CTRL_VDD_LDO_OUT((((n) & 0x7) * 30) + 1160)
 #define PRCM_PLL_CTRL_LDO_KEY (0xa7 << 24)
+#define PRCM_PLL_CTRL_LDO_KEY_MASK (0xff << 24)
 
 #define PRCM_CLK_1WIRE_GATE (0x1 << 31)
 
 #define PRCM_CPU3_PWR_CLAMP_MASK PRCM_CPU3_PWR_CLAMP(0xff)
 
 #ifndef __ASSEMBLY__
-struct sunxi_prcm_reg {
+#include <linux/compiler.h>
+
+struct __packed sunxi_prcm_reg {
        u32 cpus_cfg;           /* 0x000 */
        u8 res0[0x8];           /* 0x004 */
        u32 apb0_ratio;         /* 0x00c */
@@ -223,10 +227,8 @@ struct sunxi_prcm_reg {
        u32 gpu_pwroff;         /* 0x118 */
        u8 res9[0x4];           /* 0x11c */
        u32 vdd_pwr_reset;      /* 0x120 */
-       u8 res10[0x20];         /* 0x124 */
-       u32 cpu1_pwr_clamp;     /* 0x144 */
-       u32 cpu2_pwr_clamp;     /* 0x148 */
-       u32 cpu3_pwr_clamp;     /* 0x14c */
+       u8 res10[0x1c];         /* 0x124 */
+       u32 cpu_pwr_clamp[4];   /* 0x140 but first one is actually unused */
        u8 res11[0x30];         /* 0x150 */
        u32 dram_pwr;           /* 0x180 */
        u8 res12[0xc];          /* 0x184 */
@@ -234,5 +236,7 @@ struct sunxi_prcm_reg {
 };
 
 void prcm_apb0_enable(u32 flags);
+void prcm_apb0_disable(u32 flags);
+
 #endif /* __ASSEMBLY__ */
 #endif /* _PRCM_H */