Changeset bf2a269 in mainline
- Timestamp:
- 2012-11-20T14:32:33Z (12 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- fde2dab9
- Parents:
- bf6f6ca
- Location:
- uspace/drv/infrastructure/rootamdm37x
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/infrastructure/rootamdm37x/cm/clock_control.h
rbf6f6ca rbf2a269 67 67 68 68 ioport32_t clken2_pll; 69 #define CLOCK_CONTROL_CM_CLKEN _PLL_EN_PERIPH2_DPLL_LPMODE_FLAG (1 << 10)70 #define CLOCK_CONTROL_CM_CLKEN _PLL_EN_PERIPH2_DPLL_DRIFTGUARD_FLAG (1 << 3)71 #define CLOCK_CONTROL_CM_CLKEN _PLL_EN_PERIPH2_DPLL_MASK (0x7)72 #define CLOCK_CONTROL_CM_CLKEN _PLL_EN_PERIPH2_DPLL_LP_STOP (0x1)73 #define CLOCK_CONTROL_CM_CLKEN _PLL_EN_PERIPH2_DPLL_LOCK (0x7)69 #define CLOCK_CONTROL_CM_CLKEN2_PLL_EN_PERIPH2_DPLL_LPMODE_FLAG (1 << 10) 70 #define CLOCK_CONTROL_CM_CLKEN2_PLL_EN_PERIPH2_DPLL_DRIFTGUARD_FLAG (1 << 3) 71 #define CLOCK_CONTROL_CM_CLKEN2_PLL_EN_PERIPH2_DPLL_MASK (0x7) 72 #define CLOCK_CONTROL_CM_CLKEN2_PLL_EN_PERIPH2_DPLL_LP_STOP (0x1) 73 #define CLOCK_CONTROL_CM_CLKEN2_PLL_EN_PERIPH2_DPLL_LOCK (0x7) 74 74 75 75 PADD32[6]; … … 143 143 ioport32_t clksel4_pll; 144 144 #define CLOCK_CONTROL_CM_CLKSEL4_PLL_PERIPH2_DPLL_MULT_MASK (0x7ff << 8) 145 #define CLOCK_CONTROL_CM_CLKSEL4_PLL_PERIPH2_DPLL_MULT(x) (((x) & 0x7ff) << 8) 145 #define CLOCK_CONTROL_CM_CLKSEL4_PLL_PERIPH2_DPLL_MULT_CREATE(x) (((x) & 0x7ff) << 8) 146 #define CLOCK_CONTROL_CM_CLKSEL4_PLL_PERIPH2_DPLL_MULT_GET(x) (((x) >> 8) & 0x7ff) 146 147 #define CLOCK_CONTROL_CM_CLKSEL4_PLL_PERIPH2_DPLL_DIV_MASK (0x7f) 147 #define CLOCK_CONTROL_CM_CLKSEL4_PLL_PERIPH2_DPLL_DIV(x) ((x) & 0x7f) 148 #define CLOCK_CONTROL_CM_CLKSEL4_PLL_PERIPH2_DPLL_DIV_CREATE(x) ((x) & 0x7f) 149 #define CLOCK_CONTROL_CM_CLKSEL4_PLL_PERIPH2_DPLL_DIV_GET(x) ((x) & 0x7f) 148 150 149 151 ioport32_t clksel5_pll; 150 152 #define CLOCK_CONTROL_CM_CLKSEL5_PLL_DIV120M_MASK (0x1f) 151 #define CLOCK_CONTROL_CM_CLKSEL5_PLL_DIV120M(x) ((x) & 0x1f) 153 #define CLOCK_CONTROL_CM_CLKSEL5_PLL_DIV120M_CREATE(x) ((x) & 0x1f) 154 #define CLOCK_CONTROL_CM_CLKSEL5_PLL_DIV120M_GET(x) ((x) & 0x1f) 152 155 } clock_control_cm_regs_t; 153 156 -
uspace/drv/infrastructure/rootamdm37x/rootamdm37x.c
rbf6f6ca rbf2a269 285 285 */ 286 286 // TODO setup DPLL5 287 if ((pio_read_32(&device->cm.clocks->clken2_pll) 288 & CLOCK_CONTROL_CM_CLKEN2_PLL_EN_PERIPH2_DPLL_MASK) 289 != CLOCK_CONTROL_CM_CLKEN2_PLL_EN_PERIPH2_DPLL_LOCK) { 290 /* Compute divisors and multiplier */ 291 assert((base_freq % 100) == 0); 292 const unsigned mult = 1200; 293 const unsigned div = base_freq / 100; 294 const unsigned div2 = 1; 295 296 /* Set multiplier */ 297 pio_change_32(&device->cm.clocks->clksel4_pll, 298 CLOCK_CONTROL_CM_CLKSEL4_PLL_PERIPH2_DPLL_MULT_CREATE(mult), 299 CLOCK_CONTROL_CM_CLKSEL4_PLL_PERIPH2_DPLL_MULT_MASK, 10); 300 301 /* Set DPLL divisor */ 302 pio_change_32(&device->cm.clocks->clksel4_pll, 303 CLOCK_CONTROL_CM_CLKSEL4_PLL_PERIPH2_DPLL_DIV_CREATE(div), 304 CLOCK_CONTROL_CM_CLKSEL4_PLL_PERIPH2_DPLL_DIV_MASK, 10); 305 306 /* Set output clock divisor */ 307 pio_change_32(&device->cm.clocks->clksel5_pll, 308 CLOCK_CONTROL_CM_CLKSEL5_PLL_DIV120M_CREATE(div2), 309 CLOCK_CONTROL_CM_CLKSEL5_PLL_DIV120M_MASK, 10); 310 311 /* Start DPLL5 */ 312 pio_change_32(&device->cm.clocks->clken2_pll, 313 CLOCK_CONTROL_CM_CLKEN2_PLL_EN_PERIPH2_DPLL_LOCK, 314 CLOCK_CONTROL_CM_CLKEN2_PLL_EN_PERIPH2_DPLL_MASK, 10); 315 316 } 287 317 /* Set DPLL5 to automatic to save power */ 288 318 pio_change_32(&device->cm.clocks->autoidle2_pll,
Note:
See TracChangeset
for help on using the changeset viewer.