};
/* topckgen */
+#define FIXED_CLK0(_id, _rate) \
+ FIXED_CLK(_id, CLK_XTAL, CLK_PARENT_XTAL, _rate)
+
#define FACTOR0(_id, _parent, _mult, _div) \
FACTOR(_id, _parent, _mult, _div, CLK_PARENT_APMIXED)
FACTOR(_id, _parent, _mult, _div, 0)
static const struct mtk_fixed_clk top_fixed_clks[] = {
- FIXED_CLK(CLK_TOP_TO_U2_PHY, CLK_XTAL, 31250000),
- FIXED_CLK(CLK_TOP_TO_U2_PHY_1P, CLK_XTAL, 31250000),
- FIXED_CLK(CLK_TOP_PCIE0_PIPE_EN, CLK_XTAL, 125000000),
- FIXED_CLK(CLK_TOP_PCIE1_PIPE_EN, CLK_XTAL, 125000000),
- FIXED_CLK(CLK_TOP_SSUSB_TX250M, CLK_XTAL, 250000000),
- FIXED_CLK(CLK_TOP_SSUSB_EQ_RX250M, CLK_XTAL, 250000000),
- FIXED_CLK(CLK_TOP_SSUSB_CDR_REF, CLK_XTAL, 33333333),
- FIXED_CLK(CLK_TOP_SSUSB_CDR_FB, CLK_XTAL, 50000000),
- FIXED_CLK(CLK_TOP_SATA_ASIC, CLK_XTAL, 50000000),
- FIXED_CLK(CLK_TOP_SATA_RBC, CLK_XTAL, 50000000),
+ FIXED_CLK0(CLK_TOP_TO_U2_PHY, 31250000),
+ FIXED_CLK0(CLK_TOP_TO_U2_PHY_1P, 31250000),
+ FIXED_CLK0(CLK_TOP_PCIE0_PIPE_EN, 125000000),
+ FIXED_CLK0(CLK_TOP_PCIE1_PIPE_EN, 125000000),
+ FIXED_CLK0(CLK_TOP_SSUSB_TX250M, 250000000),
+ FIXED_CLK0(CLK_TOP_SSUSB_EQ_RX250M, 250000000),
+ FIXED_CLK0(CLK_TOP_SSUSB_CDR_REF, 33333333),
+ FIXED_CLK0(CLK_TOP_SSUSB_CDR_FB, 50000000),
+ FIXED_CLK0(CLK_TOP_SATA_ASIC, 50000000),
+ FIXED_CLK0(CLK_TOP_SATA_RBC, 50000000),
};
static const struct mtk_fixed_factor top_fixed_divs[] = {
[CLK_TOP_AUD_I2S6_MCLK] = 158,
};
+#define FIXED_CLK0(_id, _rate) \
+ FIXED_CLK(_id, CLK_XTAL, CLK_PARENT_XTAL, _rate)
+
#define FACTOR0(_id, _parent, _mult, _div) \
FACTOR(_id, _parent, _mult, _div, CLK_PARENT_APMIXED)
FACTOR(_id, _parent, _mult, _div, 0)
static const struct mtk_fixed_clk top_fixed_clks[] = {
- FIXED_CLK(CLK_TOP_DPI, CLK_XTAL, 108 * MHZ),
- FIXED_CLK(CLK_TOP_DMPLL, CLK_XTAL, 400 * MHZ),
- FIXED_CLK(CLK_TOP_VENCPLL, CLK_XTAL, 295.75 * MHZ),
- FIXED_CLK(CLK_TOP_HDMI_0_PIX340M, CLK_XTAL, 340 * MHZ),
- FIXED_CLK(CLK_TOP_HDMI_0_DEEP340M, CLK_XTAL, 340 * MHZ),
- FIXED_CLK(CLK_TOP_HDMI_0_PLL340M, CLK_XTAL, 340 * MHZ),
- FIXED_CLK(CLK_TOP_HADDS2_FB, CLK_XTAL, 27 * MHZ),
- FIXED_CLK(CLK_TOP_WBG_DIG_416M, CLK_XTAL, 416 * MHZ),
- FIXED_CLK(CLK_TOP_DSI0_LNTC_DSI, CLK_XTAL, 143 * MHZ),
- FIXED_CLK(CLK_TOP_HDMI_SCL_RX, CLK_XTAL, 27 * MHZ),
- FIXED_CLK(CLK_TOP_32K_EXTERNAL, CLK_XTAL, 32000),
- FIXED_CLK(CLK_TOP_HDMITX_CLKDIG_CTS, CLK_XTAL, 300 * MHZ),
- FIXED_CLK(CLK_TOP_AUD_EXT1, CLK_XTAL, 0),
- FIXED_CLK(CLK_TOP_AUD_EXT2, CLK_XTAL, 0),
- FIXED_CLK(CLK_TOP_NFI1X_PAD, CLK_XTAL, 0),
+ FIXED_CLK0(CLK_TOP_DPI, 108 * MHZ),
+ FIXED_CLK0(CLK_TOP_DMPLL, 400 * MHZ),
+ FIXED_CLK0(CLK_TOP_VENCPLL, 295.75 * MHZ),
+ FIXED_CLK0(CLK_TOP_HDMI_0_PIX340M, 340 * MHZ),
+ FIXED_CLK0(CLK_TOP_HDMI_0_DEEP340M, 340 * MHZ),
+ FIXED_CLK0(CLK_TOP_HDMI_0_PLL340M, 340 * MHZ),
+ FIXED_CLK0(CLK_TOP_HADDS2_FB, 27 * MHZ),
+ FIXED_CLK0(CLK_TOP_WBG_DIG_416M, 416 * MHZ),
+ FIXED_CLK0(CLK_TOP_DSI0_LNTC_DSI, 143 * MHZ),
+ FIXED_CLK0(CLK_TOP_HDMI_SCL_RX, 27 * MHZ),
+ FIXED_CLK0(CLK_TOP_32K_EXTERNAL, 32000),
+ FIXED_CLK0(CLK_TOP_HDMITX_CLKDIG_CTS, 300 * MHZ),
+ FIXED_CLK0(CLK_TOP_AUD_EXT1, 0),
+ FIXED_CLK0(CLK_TOP_AUD_EXT2, 0),
+ FIXED_CLK0(CLK_TOP_NFI1X_PAD, 0),
};
static const struct mtk_fixed_factor top_fixed_divs[] = {
};
/* topckgen */
+#define FIXED_CLK0(_id, _rate) \
+ FIXED_CLK(_id, CLK_XTAL, CLK_PARENT_XTAL, _rate)
+
#define FACTOR0(_id, _parent, _mult, _div) \
FACTOR(_id, _parent, _mult, _div, CLK_PARENT_APMIXED)
FACTOR(_id, _parent, _mult, _div, 0)
static const struct mtk_fixed_clk top_fixed_clks[] = {
- FIXED_CLK(CLK_TOP_TO_U2_PHY, CLK_XTAL, 31250000),
- FIXED_CLK(CLK_TOP_TO_U2_PHY_1P, CLK_XTAL, 31250000),
- FIXED_CLK(CLK_TOP_PCIE0_PIPE_EN, CLK_XTAL, 125000000),
- FIXED_CLK(CLK_TOP_PCIE1_PIPE_EN, CLK_XTAL, 125000000),
- FIXED_CLK(CLK_TOP_SSUSB_TX250M, CLK_XTAL, 250000000),
- FIXED_CLK(CLK_TOP_SSUSB_EQ_RX250M, CLK_XTAL, 250000000),
- FIXED_CLK(CLK_TOP_SSUSB_CDR_REF, CLK_XTAL, 33333333),
- FIXED_CLK(CLK_TOP_SSUSB_CDR_FB, CLK_XTAL, 50000000),
- FIXED_CLK(CLK_TOP_SATA_ASIC, CLK_XTAL, 50000000),
- FIXED_CLK(CLK_TOP_SATA_RBC, CLK_XTAL, 50000000),
+ FIXED_CLK0(CLK_TOP_TO_U2_PHY, 31250000),
+ FIXED_CLK0(CLK_TOP_TO_U2_PHY_1P, 31250000),
+ FIXED_CLK0(CLK_TOP_PCIE0_PIPE_EN, 125000000),
+ FIXED_CLK0(CLK_TOP_PCIE1_PIPE_EN, 125000000),
+ FIXED_CLK0(CLK_TOP_SSUSB_TX250M, 250000000),
+ FIXED_CLK0(CLK_TOP_SSUSB_EQ_RX250M, 250000000),
+ FIXED_CLK0(CLK_TOP_SSUSB_CDR_REF, 33333333),
+ FIXED_CLK0(CLK_TOP_SSUSB_CDR_FB, 50000000),
+ FIXED_CLK0(CLK_TOP_SATA_ASIC, 50000000),
+ FIXED_CLK0(CLK_TOP_SATA_RBC, 50000000),
};
static const struct mtk_fixed_factor top_fixed_divs[] = {
#define MT7981_CLK_PDN 0x250
#define MT7981_CLK_PDN_EN_WRITE BIT(31)
+#define FIXED_CLK0(_id, _rate) \
+ FIXED_CLK(_id, CLK_XTAL, CLK_PARENT_XTAL, _rate)
+
#define PLL_FACTOR(_id, _name, _parent, _mult, _div) \
FACTOR(_id, _parent, _mult, _div, CLK_PARENT_APMIXED)
/* FIXED PLLS */
static const struct mtk_fixed_clk fixed_pll_clks[] = {
- FIXED_CLK(CLK_APMIXED_ARMPLL, CLK_XTAL, 1300000000),
- FIXED_CLK(CLK_APMIXED_NET2PLL, CLK_XTAL, 800000000),
- FIXED_CLK(CLK_APMIXED_MMPLL, CLK_XTAL, 720000000),
- FIXED_CLK(CLK_APMIXED_SGMPLL, CLK_XTAL, 325000000),
- FIXED_CLK(CLK_APMIXED_WEDMCUPLL, CLK_XTAL, 208000000),
- FIXED_CLK(CLK_APMIXED_NET1PLL, CLK_XTAL, 2500000000),
- FIXED_CLK(CLK_APMIXED_MPLL, CLK_XTAL, 416000000),
- FIXED_CLK(CLK_APMIXED_APLL2, CLK_XTAL, 196608000),
+ FIXED_CLK0(CLK_APMIXED_ARMPLL, 1300000000),
+ FIXED_CLK0(CLK_APMIXED_NET2PLL, 800000000),
+ FIXED_CLK0(CLK_APMIXED_MMPLL, 720000000),
+ FIXED_CLK0(CLK_APMIXED_SGMPLL, 325000000),
+ FIXED_CLK0(CLK_APMIXED_WEDMCUPLL, 208000000),
+ FIXED_CLK0(CLK_APMIXED_NET1PLL, 2500000000),
+ FIXED_CLK0(CLK_APMIXED_MPLL, 416000000),
+ FIXED_CLK0(CLK_APMIXED_APLL2, 196608000),
};
/* TOPCKGEN FIXED CLK */
static const struct mtk_fixed_clk top_fixed_clks[] = {
- FIXED_CLK(CLK_TOP_CB_CKSQ_40M, CLK_XTAL, 40000000),
+ FIXED_CLK0(CLK_TOP_CB_CKSQ_40M, 40000000),
};
/* TOPCKGEN FIXED DIV */
#define TOP_PARENT(_id) PARENT(_id, CLK_PARENT_TOPCKGEN)
#define VOID_PARENT PARENT(-1, 0)
+#define FIXED_CLK0(_id, _rate) \
+ FIXED_CLK(_id, CLK_XTAL, CLK_PARENT_XTAL, _rate)
+
#define PLL_FACTOR(_id, _name, _parent, _mult, _div) \
FACTOR(_id, _parent, _mult, _div, CLK_PARENT_APMIXED)
/* FIXED PLLS */
static const struct mtk_fixed_clk fixed_pll_clks[] = {
- FIXED_CLK(CLK_APMIXED_ARMPLL, CLK_XTAL, 2000000000),
- FIXED_CLK(CLK_APMIXED_NET2PLL, CLK_XTAL, 800000000),
- FIXED_CLK(CLK_APMIXED_MMPLL, CLK_XTAL, 1440000000),
- FIXED_CLK(CLK_APMIXED_SGMPLL, CLK_XTAL, 325000000),
- FIXED_CLK(CLK_APMIXED_WEDMCUPLL, CLK_XTAL, 760000000),
- FIXED_CLK(CLK_APMIXED_NET1PLL, CLK_XTAL, 2500000000),
- FIXED_CLK(CLK_APMIXED_MPLL, CLK_XTAL, 416000000),
- FIXED_CLK(CLK_APMIXED_APLL2, CLK_XTAL, 196608000),
+ FIXED_CLK0(CLK_APMIXED_ARMPLL, 2000000000),
+ FIXED_CLK0(CLK_APMIXED_NET2PLL, 800000000),
+ FIXED_CLK0(CLK_APMIXED_MMPLL, 1440000000),
+ FIXED_CLK0(CLK_APMIXED_SGMPLL, 325000000),
+ FIXED_CLK0(CLK_APMIXED_WEDMCUPLL, 760000000),
+ FIXED_CLK0(CLK_APMIXED_NET1PLL, 2500000000),
+ FIXED_CLK0(CLK_APMIXED_MPLL, 416000000),
+ FIXED_CLK0(CLK_APMIXED_APLL2, 196608000),
};
/* TOPCKGEN FIXED CLK */
static const struct mtk_fixed_clk top_fixed_clks[] = {
- FIXED_CLK(CLK_TOP_XTAL, CLK_XTAL, 40000000),
+ FIXED_CLK0(CLK_TOP_XTAL, 40000000),
};
/* TOPCKGEN FIXED DIV */
#define MT7987_CLK_PDN 0x250
#define MT7987_CLK_PDN_EN_WRITE BIT(31)
+#define FIXED_CLK0(_id, _rate) \
+ FIXED_CLK(_id, CLK_XTAL, CLK_PARENT_XTAL, _rate)
+
#define XTAL_FACTOR(_id, _name, _parent, _mult, _div) \
FACTOR(_id, _parent, _mult, _div, CLK_PARENT_XTAL)
/* FIXED PLLS */
static const struct mtk_fixed_clk apmixedsys_mtk_plls[] = {
- FIXED_CLK(CLK_APMIXED_MPLL, CLK_XTAL, 416000000),
- FIXED_CLK(CLK_APMIXED_APLL2, CLK_XTAL, 196608000),
- FIXED_CLK(CLK_APMIXED_NET1PLL, CLK_XTAL, 2500000000),
- FIXED_CLK(CLK_APMIXED_NET2PLL, CLK_XTAL, 800000000),
- FIXED_CLK(CLK_APMIXED_WEDMCUPLL, CLK_XTAL, 208000000),
- FIXED_CLK(CLK_APMIXED_SGMPLL, CLK_XTAL, 325000000),
- FIXED_CLK(CLK_APMIXED_ARM_LL, CLK_XTAL, 2000000000),
- FIXED_CLK(CLK_APMIXED_MSDCPLL, CLK_XTAL, 384000000),
+ FIXED_CLK0(CLK_APMIXED_MPLL, 416000000),
+ FIXED_CLK0(CLK_APMIXED_APLL2, 196608000),
+ FIXED_CLK0(CLK_APMIXED_NET1PLL, 2500000000),
+ FIXED_CLK0(CLK_APMIXED_NET2PLL, 800000000),
+ FIXED_CLK0(CLK_APMIXED_WEDMCUPLL, 208000000),
+ FIXED_CLK0(CLK_APMIXED_SGMPLL, 325000000),
+ FIXED_CLK0(CLK_APMIXED_ARM_LL, 2000000000),
+ FIXED_CLK0(CLK_APMIXED_MSDCPLL, 384000000),
};
static const struct mtk_clk_tree mt7987_fixed_pll_clk_tree = {
#define MT7988_ETHDMA_RST_CTRL_OFS 0x34
#define MT7988_ETHWARP_RST_CTRL_OFS 0x8
+#define FIXED_CLK0(_id, _rate) \
+ FIXED_CLK(_id, CLK_XTAL, CLK_PARENT_XTAL, _rate)
+
#define XTAL_FACTOR(_id, _name, _parent, _mult, _div) \
FACTOR(_id, _parent, _mult, _div, CLK_PARENT_XTAL)
/* FIXED PLLS */
static const struct mtk_fixed_clk apmixedsys_mtk_plls[] = {
- FIXED_CLK(CLK_APMIXED_NETSYSPLL, CLK_XTAL, 850000000),
- FIXED_CLK(CLK_APMIXED_MPLL, CLK_XTAL, 416000000),
- FIXED_CLK(CLK_APMIXED_MMPLL, CLK_XTAL, 720000000),
- FIXED_CLK(CLK_APMIXED_APLL2, CLK_XTAL, 196608000),
- FIXED_CLK(CLK_APMIXED_NET1PLL, CLK_XTAL, 2500000000),
- FIXED_CLK(CLK_APMIXED_NET2PLL, CLK_XTAL, 800000000),
- FIXED_CLK(CLK_APMIXED_WEDMCUPLL, CLK_XTAL, 208000000),
- FIXED_CLK(CLK_APMIXED_SGMPLL, CLK_XTAL, 325000000),
- FIXED_CLK(CLK_APMIXED_ARM_B, CLK_XTAL, 1500000000),
- FIXED_CLK(CLK_APMIXED_CCIPLL2_B, CLK_XTAL, 960000000),
- FIXED_CLK(CLK_APMIXED_USXGMIIPLL, CLK_XTAL, 644533000),
- FIXED_CLK(CLK_APMIXED_MSDCPLL, CLK_XTAL, 400000000),
+ FIXED_CLK0(CLK_APMIXED_NETSYSPLL, 850000000),
+ FIXED_CLK0(CLK_APMIXED_MPLL, 416000000),
+ FIXED_CLK0(CLK_APMIXED_MMPLL, 720000000),
+ FIXED_CLK0(CLK_APMIXED_APLL2, 196608000),
+ FIXED_CLK0(CLK_APMIXED_NET1PLL, 2500000000),
+ FIXED_CLK0(CLK_APMIXED_NET2PLL, 800000000),
+ FIXED_CLK0(CLK_APMIXED_WEDMCUPLL, 208000000),
+ FIXED_CLK0(CLK_APMIXED_SGMPLL, 325000000),
+ FIXED_CLK0(CLK_APMIXED_ARM_B, 1500000000),
+ FIXED_CLK0(CLK_APMIXED_CCIPLL2_B, 960000000),
+ FIXED_CLK0(CLK_APMIXED_USXGMIIPLL, 644533000),
+ FIXED_CLK0(CLK_APMIXED_MSDCPLL, 400000000),
};
/* TOPCKGEN FIXED CLK */
static const struct mtk_fixed_clk topckgen_mtk_fixed_clks[] = {
- FIXED_CLK(CLK_TOP_XTAL, CLK_XTAL, 40000000),
+ FIXED_CLK0(CLK_TOP_XTAL, 40000000),
};
/* TOPCKGEN FIXED DIV */
0, 0, 32, 8, 0x02B4, 1, 0x02B8, 0),
};
+#define FIXED_CLK0(_id, _rate) \
+ FIXED_CLK(_id, CLK_XTAL, CLK_PARENT_XTAL, _rate)
+
+#define FIXED_CLK1(_id, _rate) \
+ FIXED_CLK(_id, CLK_TOP_UNIVPLL, CLK_PARENT_TOPCKGEN, _rate)
+
static const struct mtk_fixed_clk top_fixed_clks[] = {
- FIXED_CLK(CLK_TOP_CLK26M, CLK_XTAL, 26000000),
- FIXED_CLK(CLK_TOP_ULPOSC, CLK_XTAL, 250000),
- FIXED_CLK(CLK_TOP_UNIVP_192M, CLK_TOP_UNIVPLL, 192000000),
+ FIXED_CLK0(CLK_TOP_CLK26M, 26000000),
+ FIXED_CLK0(CLK_TOP_ULPOSC, 250000),
+ FIXED_CLK1(CLK_TOP_UNIVP_192M, 192000000),
};
static const struct mtk_fixed_factor top_fixed_divs[] = {
.num_plls = ARRAY_SIZE(apmixed_plls),
};
+#define FIXED_CLK0(_id, _rate) \
+ FIXED_CLK(_id, CLK_XTAL, CLK_PARENT_XTAL, _rate)
+
static const struct mtk_fixed_clk top_fixed_clks[] = {
- FIXED_CLK(CLK_TOP_ULPOSC1, CLK_XTAL, 260000000),
- FIXED_CLK(CLK_TOP_MPHONE_SLAVE_BCK, CLK_XTAL, 49152000),
- FIXED_CLK(CLK_TOP_PAD_FPC, CLK_XTAL, 50000000),
- FIXED_CLK(CLK_TOP_466M_FMEM, CLK_XTAL, 533000000),
- FIXED_CLK(CLK_TOP_PEXTP_PIPE, CLK_XTAL, 250000000),
- FIXED_CLK(CLK_TOP_DSI_PHY, CLK_XTAL, 500000000),
- FIXED_CLK(CLK_TOP_CLK26M, CLK_XTAL, 260000000),
- FIXED_CLK(CLK_TOP_CLK32K, CLK_XTAL, 32000),
+ FIXED_CLK0(CLK_TOP_ULPOSC1, 260000000),
+ FIXED_CLK0(CLK_TOP_MPHONE_SLAVE_BCK, 49152000),
+ FIXED_CLK0(CLK_TOP_PAD_FPC, 50000000),
+ FIXED_CLK0(CLK_TOP_466M_FMEM, 533000000),
+ FIXED_CLK0(CLK_TOP_PEXTP_PIPE, 250000000),
+ FIXED_CLK0(CLK_TOP_DSI_PHY, 500000000),
+ FIXED_CLK0(CLK_TOP_CLK26M, 260000000),
+ FIXED_CLK0(CLK_TOP_CLK32K, 32000),
};
#define FACTOR0(_id, _parent, _mult, _div) \
};
/* topckgen */
+#define FIXED_CLK0(_id, _rate) \
+ FIXED_CLK(_id, CLK_XTAL, CLK_PARENT_XTAL, _rate)
+
+#define FIXED_CLK1(_id, _rate) \
+ FIXED_CLK(_id, CLK_TOP_CLK26M, CLK_PARENT_TOPCKGEN, _rate)
+
static const struct mtk_fixed_clk top_fixed_clks[] = {
- FIXED_CLK(CLK_TOP_CLK_NULL, CLK_XTAL, 0),
- FIXED_CLK(CLK_TOP_I2S0_BCK, CLK_XTAL, 26000000),
- FIXED_CLK(CLK_TOP_DSI0_LNTC_DSICK, CLK_TOP_CLK26M, 75000000),
- FIXED_CLK(CLK_TOP_VPLL_DPIX, CLK_TOP_CLK26M, 75000000),
- FIXED_CLK(CLK_TOP_LVDSTX_CLKDIG_CTS, CLK_TOP_CLK26M, 52500000),
+ FIXED_CLK0(CLK_TOP_CLK_NULL, 0),
+ FIXED_CLK0(CLK_TOP_I2S0_BCK, 26000000),
+ FIXED_CLK1(CLK_TOP_DSI0_LNTC_DSICK, 75000000),
+ FIXED_CLK1(CLK_TOP_VPLL_DPIX, 75000000),
+ FIXED_CLK1(CLK_TOP_LVDSTX_CLKDIG_CTS, 52500000),
};
#define PLL_FACTOR(_id, _name, _parent, _mult, _div) \
};
/* topckgen */
+#define FIXED_CLK0(_id, _rate) \
+ FIXED_CLK(_id, CLK_XTAL, CLK_PARENT_XTAL, _rate)
+
#define FACTOR0(_id, _parent, _mult, _div) \
FACTOR(_id, _parent, _mult, _div, CLK_PARENT_APMIXED)
FACTOR(_id, _parent, _mult, _div, 0)
static const struct mtk_fixed_clk top_fixed_clks[] = {
- FIXED_CLK(CLK_TOP_CLK_NULL, CLK_XTAL, 26000000),
- FIXED_CLK(CLK_TOP_CLK32K, CLK_XTAL, 32000),
+ FIXED_CLK0(CLK_TOP_CLK_NULL, 26000000),
+ FIXED_CLK0(CLK_TOP_CLK32K, 32000),
};
static const struct mtk_fixed_factor top_fixed_divs[] = {
};
/* topckgen */
+#define FIXED_CLK0(_id, _rate) \
+ FIXED_CLK(_id, CLK_XTAL, CLK_PARENT_XTAL, _rate)
+
+#define FIXED_CLK1(_id, _parent, _rate) \
+ FIXED_CLK(_id, _parent, CLK_PARENT_TOPCKGEN, _rate)
+
#define FACTOR0(_id, _parent, _mult, _div) \
FACTOR(_id, _parent, _mult, _div, CLK_PARENT_APMIXED)
FACTOR(_id, _parent, _mult, _div, 0)
static const struct mtk_fixed_clk top_fixed_clks[] = {
- FIXED_CLK(CLK_TOP_CLK_NULL, CLK_XTAL, 26000000),
- FIXED_CLK(CLK_TOP_I2S_INFRA_BCK, CLK_TOP_CLK_NULL, 26000000),
- FIXED_CLK(CLK_TOP_MEMPLL, CLK_TOP_CLK26M, 800000000),
+ FIXED_CLK0(CLK_TOP_CLK_NULL, 26000000),
+ FIXED_CLK1(CLK_TOP_I2S_INFRA_BCK, CLK_TOP_CLK_NULL, 26000000),
+ FIXED_CLK1(CLK_TOP_MEMPLL, CLK_TOP_CLK26M, 800000000),
};
static const struct mtk_fixed_factor top_fixed_divs[] = {
};
/* topckgen */
+#define FIXED_CLK0(_id, _rate) \
+ FIXED_CLK(_id, CLK_XTAL, CLK_PARENT_XTAL, _rate)
+
+#define FIXED_CLK1(_id, _rate) \
+ FIXED_CLK(_id, CLK_TOP_CLK_NULL, CLK_PARENT_TOPCKGEN, _rate)
+
#define FACTOR0(_id, _parent, _mult, _div) \
FACTOR(_id, _parent, _mult, _div, CLK_PARENT_APMIXED)
FACTOR(_id, _parent, _mult, _div, 0)
static const struct mtk_fixed_clk top_fixed_clks[] = {
- FIXED_CLK(CLK_TOP_CLK_NULL, CLK_XTAL, 26000000),
- FIXED_CLK(CLK_TOP_FQ_TRNG_OUT0, CLK_TOP_CLK_NULL, 500000000),
- FIXED_CLK(CLK_TOP_FQ_TRNG_OUT1, CLK_TOP_CLK_NULL, 500000000),
- FIXED_CLK(CLK_TOP_CLK32K, CLK_XTAL, 32000),
+ FIXED_CLK0(CLK_TOP_CLK_NULL, 26000000),
+ FIXED_CLK1(CLK_TOP_FQ_TRNG_OUT0, 500000000),
+ FIXED_CLK1(CLK_TOP_FQ_TRNG_OUT1, 500000000),
+ FIXED_CLK0(CLK_TOP_CLK32K, 32000),
};
static const struct mtk_fixed_factor top_fixed_divs[] = {
printf("[FCLK%u] DT: %u", i, fclk->id);
mtk_clk_print_mapped_id(fclk->id, i, tree->id_offs_map);
mtk_clk_print_rate(dev, i);
- /* FIXME: fclk needs flags to fully determine parent. */
- mtk_clk_print_single_parent(fclk->parent, 0);
+ mtk_clk_print_single_parent(fclk->parent, fclk->flags);
printf("\n");
}
struct mtk_fixed_clk {
const int id;
const int parent;
+ const int flags;
unsigned long rate;
};
-#define FIXED_CLK(_id, _parent, _rate) { \
+#define FIXED_CLK(_id, _parent, _flags, _rate) { \
.id = _id, \
.parent = _parent, \
+ .flags = _flags, \
.rate = _rate, \
}