Path: blob/main/sys/dev/clk/starfive/jh7110_clk_pll.h
39536 views
/* SPDX-License-Identifier: MIT */1/*2* StarFive JH7110 PLL Clock Generator Driver3*4* Copyright (C) 2022 Xingyu Wu <[email protected]>5*/67#define PLL0_DACPD_SHIFT 248#define PLL0_DACPD_MASK 0x10000009#define PLL_0_DACPD_SHIFT 2410#define PLL_0_DACPD_MASK 0x10000001112#define PLL0_DSMPD_SHIFT 2513#define PLL0_DSMPD_MASK 0x200000014#define PLL0_FBDIV_SHIFT 015#define PLL0_FBDIV_MASK 0xFFF16#define PLL0_FRAC_SHIFT 017#define PLL0_FRAC_MASK 0xFFFFFF18#define PLL0_POSTDIV1_SHIFT 2819#define PLL0_POSTDIV1_MASK 0x3000000020#define PLL0_PREDIV_SHIFT 021#define PLL0_PREDIV_MASK 0x3F2223#define PLL1_DACPD_SHIFT 1524#define PLL1_DACPD_MASK 0x800025#define PLL1_DSMPD_SHIFT 1626#define PLL1_DSMPD_MASK 0x1000027#define PLL1_FBDIV_SHIFT 1728#define PLL1_FBDIV_MASK 0x1FFE000029#define PLL1_FRAC_SHIFT 030#define PLL1_FRAC_MASK 0xFFFFFF31#define PLL1_POSTDIV1_SHIFT 2832#define PLL1_POSTDIV1_MASK 0x3000000033#define PLL1_PREDIV_SHIFT 034#define PLL1_PREDIV_MASK 0x3F3536#define PLL2_DACPD_SHIFT 1537#define PLL2_DACPD_MASK 0x800038#define PLL2_DSMPD_SHIFT 1639#define PLL2_DSMPD_MASK 0x1000040#define PLL2_FBDIV_SHIFT 1741#define PLL2_FBDIV_MASK 0x1FFE000042#define PLL2_FRAC_SHIFT 043#define PLL2_FRAC_MASK 0xFFFFFF44#define PLL2_POSTDIV1_SHIFT 2845#define PLL2_POSTDIV1_MASK 0x3000000046#define PLL2_PREDIV_SHIFT 047#define PLL2_PREDIV_MASK 0x3F4849#define FRAC_PATR_SIZE 10005051struct jh7110_pll_syscon_value {52uint64_t freq;53uint32_t prediv;54uint32_t fbdiv;55uint32_t postdiv1;56uint32_t dacpd;57uint32_t dsmpd;58uint32_t frac;59};6061enum starfive_pll0_freq_value {62PLL0_FREQ_375_VALUE = 375000000,63PLL0_FREQ_500_VALUE = 500000000,64PLL0_FREQ_625_VALUE = 625000000,65PLL0_FREQ_750_VALUE = 750000000,66PLL0_FREQ_875_VALUE = 875000000,67PLL0_FREQ_1000_VALUE = 1000000000,68PLL0_FREQ_1250_VALUE = 1250000000,69PLL0_FREQ_1375_VALUE = 1375000000,70PLL0_FREQ_1500_VALUE = 150000000071};7273enum starfive_pll0_freq {74PLL0_FREQ_375 = 0,75PLL0_FREQ_500,76PLL0_FREQ_625,77PLL0_FREQ_750,78PLL0_FREQ_875,79PLL0_FREQ_1000,80PLL0_FREQ_1250,81PLL0_FREQ_1375,82PLL0_FREQ_1500,83PLL0_FREQ_MAX = PLL0_FREQ_150084};8586enum starfive_pll1_freq_value {87PLL1_FREQ_1066_VALUE = 1066000000,88};8990enum starfive_pll1_freq {91PLL1_FREQ_1066 = 0,92};9394enum starfive_pll2_freq_value {95PLL2_FREQ_1188_VALUE = 1188000000,96PLL2_FREQ_12288_VALUE = 1228800000,97};9899enum starfive_pll2_freq {100PLL2_FREQ_1188 = 0,101PLL2_FREQ_12288,102};103104static const struct jh7110_pll_syscon_value105jh7110_pll0_syscon_freq[] = {106[PLL0_FREQ_375] = {107.freq = PLL0_FREQ_375_VALUE,108.prediv = 8,109.fbdiv = 125,110.postdiv1 = 1,111.dacpd = 1,112.dsmpd = 1,113},114[PLL0_FREQ_500] = {115.freq = PLL0_FREQ_500_VALUE,116.prediv = 6,117.fbdiv = 125,118.postdiv1 = 1,119.dacpd = 1,120.dsmpd = 1,121},122[PLL0_FREQ_625] = {123.freq = PLL0_FREQ_625_VALUE,124.prediv = 24,125.fbdiv = 625,126.postdiv1 = 1,127.dacpd = 1,128.dsmpd = 1,129},130[PLL0_FREQ_750] = {131.freq = PLL0_FREQ_750_VALUE,132.prediv = 4,133.fbdiv = 125,134.postdiv1 = 1,135.dacpd = 1,136.dsmpd = 1,137},138[PLL0_FREQ_875] = {139.freq = PLL0_FREQ_875_VALUE,140.prediv = 24,141.fbdiv = 875,142.postdiv1 = 1,143.dacpd = 1,144.dsmpd = 1,145},146[PLL0_FREQ_1000] = {147.freq = PLL0_FREQ_1000_VALUE,148.prediv = 3,149.fbdiv = 125,150.postdiv1 = 1,151.dacpd = 1,152.dsmpd = 1,153},154[PLL0_FREQ_1250] = {155.freq = PLL0_FREQ_1250_VALUE,156.prediv = 12,157.fbdiv = 625,158.postdiv1 = 1,159.dacpd = 1,160.dsmpd = 1,161},162[PLL0_FREQ_1375] = {163.freq = PLL0_FREQ_1375_VALUE,164.prediv = 24,165.fbdiv = 1375,166.postdiv1 = 1,167.dacpd = 1,168.dsmpd = 1,169},170[PLL0_FREQ_1500] = {171.freq = PLL0_FREQ_1500_VALUE,172.prediv = 2,173.fbdiv = 125,174.postdiv1 = 1,175.dacpd = 1,176.dsmpd = 1,177},178};179180static const struct jh7110_pll_syscon_value181jh7110_pll1_syscon_freq[] = {182[PLL1_FREQ_1066] = {183.freq = PLL1_FREQ_1066_VALUE,184.prediv = 12,185.fbdiv = 533,186.postdiv1 = 1,187.dacpd = 1,188.dsmpd = 1,189},190};191192static const struct jh7110_pll_syscon_value193jh7110_pll2_syscon_freq[] = {194[PLL2_FREQ_1188] = {195.freq = PLL2_FREQ_1188_VALUE,196.prediv = 2,197.fbdiv = 99,198.postdiv1 = 1,199.dacpd = 1,200.dsmpd = 1,201},202[PLL2_FREQ_12288] = {203.freq = PLL2_FREQ_12288_VALUE,204.prediv = 5,205.fbdiv = 256,206.postdiv1 = 1,207.dacpd = 1,208.dsmpd = 1,209},210};211212213