00001
00041 #ifndef HARDWARE_PM_V3_REGS_H_INCLUDED
00042 #define HARDWARE_PM_V3_REGS_H_INCLUDED
00043
00044
00045 #define PM_MCCTRL 0x0000
00046 # define PM_MCCTRL_MCSEL_MASK (3 << 0)
00047 # define PM_MCCTRL_MCSEL(x) ((x) << 0)
00048 # define PM_MCCTRL_MCSEL_SLOW (0 << 0)
00049 # define PM_MCCTRL_MCSEL_OSC0 (1 << 0)
00050 # define PM_MCCTRL_MCSEL_PLL0 (2 << 0)
00051 # define PM_MCCTRL_OSCEN(x) (1 << ((x) + 2))
00052 # define PM_MCCTRL_OSCEN_BIT(x) ((x) + 2)
00053 # define PM_MCCTRL_CRIPEL_BIT 24
00054 #define PM_CKSEL 0x0004
00055 # define PM_CKSEL_CPUSEL(x) ((x) << 0)
00056 # define PM_CKSEL_CPUDIV (1 << 7)
00057 # define PM_CKSEL_HSBSEL(x) ((x) << 8)
00058 # define PM_CKSEL_HSBDIV (1 << 15)
00059 # define PM_CKSEL_PBASEL(x) ((x) << 16)
00060 # define PM_CKSEL_PBADIV (1 << 23)
00061 # define PM_CKSEL_PBBSEL(x) ((x) << 24)
00062 # define PM_CKSEL_PBBDIV (1 << 31)
00063 #define PM_CPUMASK 0x0008
00064 #define PM_HSBMASK 0x000c
00065 #define PM_PBAMASK 0x0010
00066 #define PM_PBBMASK 0x0014
00067 #define PM_PBADIVMASK 0x0018
00068 #define PM_PBBDIVMASK 0x001c
00069 #define PM_PLL(x) (0x0040 + 4 * (x))
00070 # define PM_PLL_PLLEN (1 << 0)
00071 # define PM_PLL_PLLOSC(x) ((x) << 1)
00072 # define PM_PLL_GET_PLLOSC(reg) (((reg) >> 1) & 3)
00073 # define PM_PLL_VCO_MHZ_MASK (3 << 3)
00074 # define PM_PLL_VCO_MHZ_25_50 (0 << 3)
00075 # define PM_PLL_VCO_MHZ_50_100 (1 << 3)
00076 # define PM_PLL_VCO_MHZ_100_200 (2 << 3)
00077 # define PM_PLL_VCO_MHZ_200_400 (3 << 3)
00078 # define PM_PLL_OUTPUT_DIV_BY_2 (1 << 5)
00079 # define PM_PLL_PLLDIV(x) ((x) << 8)
00080 # define PM_PLL_GET_PLLDIV(reg) (((reg) >> 8) & 0x3f)
00081 # define PM_PLL_PLLMUL(x) ((x) << 16)
00082 # define PM_PLL_GET_PLLMUL(reg) (((reg) >> 16) & 0x3f)
00083 # define PM_PLL_PLLCOUNT(x) ((x) << 24)
00084 #define PM_OSCCTRL(x) (0x0080 + 4 * (x))
00085 # define PM_OSC_MODE_MASK (7 << 0)
00086 # define PM_OSC_MODE_EXT (0 << 0)
00087 # define PM_OSC_MODE_XTAL_1_12 (1 << 0)
00088 # define PM_OSC_MODE_XTAL_12_24 (2 << 0)
00089 # define PM_OSC_MODE_XTAL_24_42 (3 << 0)
00090 # define PM_OSC_MODE_XTAL_42_66 (4 << 0)
00091 # define PM_OSC_MODE_FEEDBACK (1 << 3)
00092 # define PM_OSC_STARTUP_MASK (7 << 8)
00093 # define PM_OSC_STARTUP_0 (0 << 8)
00094 # define PM_OSC_STARTUP_32 (1 << 8)
00095 # define PM_OSC_STARTUP_64 (2 << 8)
00096 # define PM_OSC_STARTUP_512 (3 << 8)
00097 # define PM_OSC_STARTUP_1024 (4 << 8)
00098 # define PM_OSC_STARTUP_4096 (5 << 8)
00099 # define PM_OSC_STARTUP_8192 (6 << 8)
00100 # define PM_OSC_STARTUP_16384 (7 << 8)
00101 #define PM_IER 0x00c0
00102 #define PM_IDR 0x00c4
00103 #define PM_IMR 0x00c8
00104 #define PM_ISR 0x00cc
00105 #define PM_ICR 0x00d0
00106 #define PM_POSCSR 0x00d4
00107 # define PM_OSCRDY(x) (1 << (x))
00108 # define PM_OSCRDY_BIT(x) (x)
00109 # define PM_OSC32RDY (1 << 7)
00110 # define PM_LOCK(x) (1 << ((x) + 8))
00111 # define PM_LOCKLOST(x) (1 << ((x) + 16))
00112 # define PM_CKRDY (1 << 24)
00113 # define PM_MSKRDY (1 << 25)
00114 # define PM_WAKE (1 << 26)
00115 # define PM_PERRDY (1 << 28)
00116 #define PM_GCCTRL(x) (0x0100 + 4 * (x))
00117 # define PM_GCCTRL_CEN (1 << 0)
00118 # define PM_GCCTRL_DIVEN (1 << 1)
00119 # define PM_GCCTRL_OSCSEL(x) ((x) << 8)
00120 # define PM_GCCTRL_OSCSEL_MASK (3 << 15)
00121 # define PM_GCCTRL_DIV(x) ((x) << 16)
00122 #define PM_PPCR 0x0150
00123 #define PM_RC_RCAUSE 0x0180
00124 #define PM_WCAUSE 0x0184
00125 #define PM_AWEN 0x0188
00126
00127
00128 #define pm_read_reg(reg) \
00129 mmio_read32((void *)PM_BASE + PM_##reg)
00130 #define pm_write_reg(reg, value) \
00131 mmio_write32((void *)PM_BASE + PM_##reg, value)
00132
00133 #endif