Advertisement
Guest User

Vybrid LPDDR2@200MHz CCM

a guest
Aug 4th, 2016
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.73 KB | None | 0 0
  1. static void clock_init(void)
  2. {
  3.     struct ccm_reg *ccm = (struct ccm_reg *)CCM_BASE_ADDR;
  4.     struct anadig_reg *anadig = (struct anadig_reg *)ANADIG_BASE_ADDR;
  5.  
  6.     clrsetbits_le32(&ccm->ccgr0, CCM_REG_CTRL_MASK,
  7.         CCM_CCGR0_DMA0_CTRL_MASK | CCM_CCGR0_DMA1_CTRL_MASK |
  8.         CCM_CCGR0_UART0_CTRL_MASK | CCM_CCGR0_UART3_CTRL_MASK |
  9.         CCM_CCGR0_DSPI0_CTRL_MASK);
  10.  
  11.     clrsetbits_le32(&ccm->ccgr1, CCM_REG_CTRL_MASK,
  12.         CCM_CCGR1_PIT_CTRL_MASK | CCM_CCGR1_FTM0 |
  13.         CCM_CCGR1_FTM1 | CCM_CCGR1_ADC0 |
  14.         CCM_CCGR1_WDOGA5_CTRL_MASK);
  15.  
  16.     clrsetbits_le32(&ccm->ccgr2, CCM_REG_CTRL_MASK,
  17.         CCM_CCGR2_IOMUXC_CTRL_MASK | CCM_CCGR2_PORTA_CTRL_MASK |
  18.         CCM_CCGR2_PORTB_CTRL_MASK | CCM_CCGR2_PORTC_CTRL_MASK |
  19.         CCM_CCGR2_PORTD_CTRL_MASK | CCM_CCGR2_PORTE_CTRL_MASK |
  20.         CCM_CCGR2_QSPI0_CTRL_MASK);
  21.  
  22.  
  23.     clrsetbits_le32(&ccm->ccgr3, CCM_REG_CTRL_MASK,
  24.         CCM_CCGR3_ANADIG_CTRL_MASK | CCM_CCGR3_SCSC_CTRL_MASK);
  25.  
  26.     clrsetbits_le32(&ccm->ccgr4, CCM_REG_CTRL_MASK,
  27.         CCM_CCGR4_EWM_CTRL_MASK | CCM_CCGR4_I2C0_CTRL_MASK |
  28.         CCM_CCGR4_WKUP_CTRL_MASK |
  29.         CCM_CCGR4_CCM_CTRL_MASK | CCM_CCGR4_GPC_CTRL_MASK);
  30.  
  31.     clrsetbits_le32(&ccm->ccgr6, CCM_REG_CTRL_MASK,
  32.         CCM_CCGR6_DMA2_CTRL_MASK | CCM_CCGR6_DMA3_CTRL_MASK |
  33.         CCM_CCGR6_DSPI3_CTRL_MASK |
  34.         CCM_CCGR6_OCOTP_CTRL_MASK | CCM_CCGR6_DDRMC_CTRL_MASK);
  35.  
  36.     clrsetbits_le32(&ccm->ccgr7, CCM_REG_CTRL_MASK,
  37.         CCM_CCGR7_ADC1_CTRL_MASK);
  38.  
  39.     clrsetbits_le32(&ccm->ccgr10, CCM_REG_CTRL_MASK,
  40.         CCM_CCGR10_NFC_CTRL_MASK);
  41.  
  42.     clrsetbits_le32(&anadig->pll2_ctrl, ANADIG_PLL2_CTRL_POWERDOWN,
  43.         ANADIG_PLL2_CTRL_ENABLE | ANADIG_PLL2_CTRL_DIV_SELECT);
  44.     clrsetbits_le32(&anadig->pll1_ctrl, ANADIG_PLL1_CTRL_POWERDOWN,
  45.         ANADIG_PLL1_CTRL_ENABLE | ANADIG_PLL1_CTRL_DIV_SELECT);
  46.  
  47.     clrsetbits_le32(&ccm->ccr, CCM_CCR_OSCNT_MASK,
  48.         CCM_CCR_FIRC_EN | CCM_CCR_OSCNT(5));
  49.     clrsetbits_le32(&ccm->ccsr, CCM_REG_CTRL_MASK,
  50.         CCM_CCSR_PLL1_PFD_CLK_SEL(3) | CCM_CCSR_PLL2_PFD4_EN |
  51.         CCM_CCSR_PLL2_PFD3_EN | CCM_CCSR_PLL2_PFD2_EN |
  52.         CCM_CCSR_PLL2_PFD1_EN | CCM_CCSR_PLL1_PFD4_EN |
  53.         CCM_CCSR_PLL1_PFD3_EN | CCM_CCSR_PLL1_PFD2_EN |
  54.         CCM_CCSR_PLL1_PFD1_EN | CCM_CCSR_DDRC_CLK_SEL(1) |
  55.         CCM_CCSR_FAST_CLK_SEL(1) | CCM_CCSR_SYS_CLK_SEL(4));
  56.     clrsetbits_le32(&ccm->cacrr, CCM_REG_CTRL_MASK,
  57.         CCM_CACRR_IPG_CLK_DIV(1) | CCM_CACRR_BUS_CLK_DIV(2) |
  58.  
  59.         CCM_CACRR_ARM_CLK_DIV(1));
  60.  
  61.  
  62.  
  63.  
  64.     clrsetbits_le32(&ccm->cscmr1, CCM_REG_CTRL_MASK,
  65.         CCM_CSCMR1_ESDHC1_CLK_SEL(3) | CCM_CSCMR1_QSPI0_CLK_SEL(3) |
  66.         CCM_CSCMR1_NFC_CLK_SEL(0));
  67.     clrsetbits_le32(&ccm->cscdr2, CCM_REG_CTRL_MASK,
  68.         CCM_CSCDR2_ESDHC1_EN | CCM_CSCDR2_ESDHC1_CLK_DIV(0) |
  69.         CCM_CSCDR2_NFC_EN);
  70.     clrsetbits_le32(&ccm->cscdr3, CCM_REG_CTRL_MASK,
  71.         CCM_CSCDR3_QSPI0_EN | CCM_CSCDR3_QSPI0_DIV(1) |
  72.         CCM_CSCDR3_QSPI0_X2_DIV(1) | CCM_CSCDR3_QSPI0_X4_DIV(3) |
  73.         CCM_CSCDR3_NFC_PRE_DIV(5));
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement