mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-26 14:40:41 +00:00
sunxi: Add clock_get_pll5p() function
This is a preparation patch for making the pll5 "p" divisor configurable through Kconfig. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Acked-by: Ian Campbell <ijc@hellion.org.uk>
This commit is contained in:
parent
06beadb001
commit
9e54f6ee01
3 changed files with 15 additions and 0 deletions
|
@ -180,6 +180,17 @@ void clock_set_pll1(unsigned int hz)
|
|||
}
|
||||
#endif
|
||||
|
||||
unsigned int clock_get_pll5p(void)
|
||||
{
|
||||
struct sunxi_ccm_reg *const ccm =
|
||||
(struct sunxi_ccm_reg *)SUNXI_CCM_BASE;
|
||||
uint32_t rval = readl(&ccm->pll5_cfg);
|
||||
int n = ((rval & CCM_PLL5_CTRL_N_MASK) >> CCM_PLL5_CTRL_N_SHIFT);
|
||||
int k = ((rval & CCM_PLL5_CTRL_K_MASK) >> CCM_PLL5_CTRL_K_SHIFT) + 1;
|
||||
int p = ((rval & CCM_PLL5_CTRL_P_MASK) >> CCM_PLL5_CTRL_P_SHIFT);
|
||||
return (24000000 * n * k) >> p;
|
||||
}
|
||||
|
||||
unsigned int clock_get_pll6(void)
|
||||
{
|
||||
struct sunxi_ccm_reg *const ccm =
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
int clock_init(void);
|
||||
int clock_twi_onoff(int port, int state);
|
||||
void clock_set_pll1(unsigned int hz);
|
||||
unsigned int clock_get_pll5p(void);
|
||||
unsigned int clock_get_pll6(void);
|
||||
void clock_init_safe(void);
|
||||
void clock_init_uart(void);
|
||||
|
|
|
@ -199,13 +199,16 @@ struct sunxi_ccm_reg {
|
|||
#define CCM_PLL5_CTRL_M1_MASK CCM_PLL5_CTRL_M1(0x3)
|
||||
#define CCM_PLL5_CTRL_M1_X(n) ((n) - 1)
|
||||
#define CCM_PLL5_CTRL_K(n) (((n) & 0x3) << 4)
|
||||
#define CCM_PLL5_CTRL_K_SHIFT 4
|
||||
#define CCM_PLL5_CTRL_K_MASK CCM_PLL5_CTRL_K(0x3)
|
||||
#define CCM_PLL5_CTRL_K_X(n) ((n) - 1)
|
||||
#define CCM_PLL5_CTRL_LDO (0x1 << 7)
|
||||
#define CCM_PLL5_CTRL_N(n) (((n) & 0x1f) << 8)
|
||||
#define CCM_PLL5_CTRL_N_SHIFT 8
|
||||
#define CCM_PLL5_CTRL_N_MASK CCM_PLL5_CTRL_N(0x1f)
|
||||
#define CCM_PLL5_CTRL_N_X(n) (n)
|
||||
#define CCM_PLL5_CTRL_P(n) (((n) & 0x3) << 16)
|
||||
#define CCM_PLL5_CTRL_P_SHIFT 16
|
||||
#define CCM_PLL5_CTRL_P_MASK CCM_PLL5_CTRL_P(0x3)
|
||||
#define CCM_PLL5_CTRL_P_X(n) ((n) - 1)
|
||||
#define CCM_PLL5_CTRL_BW (0x1 << 18)
|
||||
|
|
Loading…
Reference in a new issue