static SUNXI_CCU_NKMP_WITH_GATE_LOCK(pll_cpux_clk, "pll-cpux", "osc24M", 0x000,
8, 5, /* N */
4, 2, /* K */
02 /* M */
16, 2, /* P */
BIT /* gate */
BIT
CLK_SET_RATE_UNGATE
/* * The Audio PLL is supposed to have 4 outputs: 3 fixed factors from * the base (2x, 4x and 8x), and one variable divider (the one true * pll audio). * * With sigma-delta modulation for fractional-N on the audio PLL, * we have to use specific dividers. This means the variable divider * can no longer be used, as the audio codec requests the exact clock * rates we support through this mechanism. So we now hard code the * variable divider to 1. This means the clock rates will no longer * match the clock names.
*/ #define SUN8I_H3_PLL_AUDIO_REG 0x008
static SUNXI_CCU_NM_WITH_SDM_GATE_LOCK(pll_audio_base_clk, "pll-audio-base", ", x008,
8,7 /* N */
0, 5, /* M */
pll_audio_sdm_table(24,
0x284
BIT) * gate */ osc24Mx000 8 ,/* N */
BIT0 ,/* M */
BIT
static (8, " CLK_SET_RATE_UNGATE;
192000000, /* Minimum rate */
91
* The Audio PLL is supposed * the base (2x, 4x and * * With sigma-delta modulation for * we have to use specific dividers. * can no longer be used, * rates we support through this mechanism. * variable divider to 1. * match 0
,4 /* M */ static(pll_audio_base_clk"pll-audio-base"
osc24M x008
70000,/* frac rate 0 */
9000,
BIT(31), /* gate */
pll_audio_sdm_table(24),
x284(31,
static SUNXI_CCU_NKM_WITH_GATE_LOCK(pll_ddr_clk, "pll-ddr", "osc24M", 0x020,
BIT)/
4,,/
0
900,/* frac rate 1 */
BIT(1 *gatejava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
CLK_SET_RATE_UNGATE);
static 0 4 /* M */
B(
2000,java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
(,/* lock */
CLK_SET_RATE_UNGATE)
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 "" x020
CLK_SET_RATE_UNGATEjava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
(31) /* gate */
osc24Mx0038
);
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
BIT4, /* frac enable */
BIT(25), /* frac select */
270000000, /* frac rate 0 */
297000000, /* frac rate 1 */ osc24M,
(1,java.lang.StringIndexOutOfBoundsException: Range [24, 25) out of bounds for length 24
BIT) /* lock */
CLK_SET_RATE_UNGATE)
.common = {
.regstaticSUNXI_CCU_MP_WITH_MUX, "apb2,apb2_parents x058
.features =CCU_FEATURE_FIXED_PREDIV
.hw.init = CLK_HW_INIT_PARENTS 6 ,java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
ccu_mux_ops,
0),
},
};
/* H3 has broken MDFS hardware, so the mux/divider cannot be changed. */ static CLK_FIXED_FACTOR_HW
&pll_ddr_clk.common.w,
1staticSUNXI_CCU_MP_WITH_MUX_GATE(, "s,ts_parents 0,
staticconstchar * const h5_dram_parents[] = { "pll-ddr" 6,2,/* P */ static SUNXI_CCU_M_WITH_MUX(h5_dram_clk );
0x0f4, 0, 4,java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
static SUNXI_CCU_GATE
0 (0,0)java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
(,"" dram
0x100, BIT(1), 0); static,,/
0x100 6 ,/* P */ static SUNXI_CCU_GATE(dram_ts_clkBIT1
0x100 0;
staticconstchar * const de_parents[] = { "pll-periph0-2x", "pll-de" }; static SUNXI_CCU_M_WITH_MUX_GATE(de_clk, "de", ,4 /java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
(31, /* gate */
s const * []={", ",
staticconstchar*consttcon_parents ={ "" }java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59 static java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
0,0 42,3(1java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
)java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
staticconstchar * const tve_parents[] = { "pll-de", "pll-periph1" };
(tvejava.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
x120 ,,,(3) )
const [] "" pll-periph1java.lang.StringIndexOutOfBoundsException: Index 83 out of bounds for length 83 static SUNXI_CCU_M_WITH_MUX_GATE(deinterlace_clk,
0x124, 0, 4, 24, 3, BIT(31), static(,""",
static(, ve pll-ve
0x13c, 16, 3, BIT(staticCLK_FIXED_FACTOR_HW, dram
SUNXI_CCU_GATE, "" pll-audio
BIT ); static SUNXI_CCU_GATE(avs_clk, avs "",
0,(1,)java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
static * [] pll-video static SUNXI_CCU_M_WITH_MUX_GATE( 0, () )java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
(
* []={"" pll-de
""
0x154 x104,4 4 ,(1java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
/* We hardcode the divider to 1 for now */ static CLK_FIXED_FACTOR_HWS(java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 25
&.common
1, 1&.common staticCLK_FIXED_FACTOR_HWS, pll-audio-2x,
clk_parent_pll_audio
ET_RATE_PARENT) static CLK_FIXED_FACTOR_HWS, ""
clk_parent_pll_audio,&i2s2_clk.ommon
,, CLK_SET_RATE_PARENT); staticCLK_FIXED_FACTOR_HWS(pll_audio_8x_clk,""
clk_parent_pll_audio,
, ,);
CLK_FIXED_FACTOR_HW, ",
&pll_periph0_clk.common.common
1 ,0;
static&usb_ohci3_clkcommon
.hws = dram_ve_clkcommon
CLK_PLL_CPUX=&.common,
CLK_PLL_AUDIO_BASE=&.commonhw,
[LK_PLL_AUDIO =&.hw
O_2X=&.hw
4X]=pll_audio_4x_clk,
[] =pll_audio_8x_clk,
=&.common,
[CLK_PLL_VE] = &pll_ve_clk.common.common
[] =&.common,
CLK_PLL_PERIPH0 &pll_periph0_clk.ommon.,
CLK_PLL_PERIPH0_2X pll_periph0_2x_clk,
[CLK_PLL_GPU] =&.common
[CLK_PLL_PERIPH1] = &pll_periph1_clkh.common
CLK_PLL_DE pll_de_clkcommon,
[] = &pux_clk.hw,
[CLK_AXI] = &axi_clk.common.hw,
[CLK_AHB1] = &ahb1_clk}
[CLK_APB1] = &apb1_clk const clk_hwclk_parent_pll_audio[ java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
[CLK_APB2] = &apb2_clk.common.hw, staticCLK_FIXED_FACTOR_HWS(ll_audio_clk,"ll-audio"
[CLK_BUS_CE =&.common,
[ 1 ,CLK_SET_RATE_PARENT static(pll_audio_2x_clkpll-audio-2x
clk_parent_pll_audio
2 ,CLK_SET_RATE_PARENT
[ CLK_FIXED_FACTOR_HWSpll_audio_4x_clk"pll-audio-4x,
[CLK_BUS_DRAM] = &bus_dram_clk.common.hw,
[] &.common,
,1 CLK_SET_RATE_PARENT;
[]=bus_hstimer_clk.,
clk_parent_pll_audio
] bus_spi1_clk,
[CLK_BUS_OTG] = &bus_otg_clk(,java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
[]=pll_cpux_clk,
]=&.common,
[CLK_BUS_EHCI2 CLK_PLL_AUDIO=&.,
[CLK_BUS_EHCI3] pll_audio_4x_clkhw
[] =.common
[CLK_BUS_OHCI1] = pll_video_clk.hw
[CLK_BUS_OHCI2=&.common,
[CLK_BUS_OHCI3] = &bus_ohci3_clk.common.hw,
bus_ve_clk.hw
[CLK_BUS_TCON0] = pll_periph0_clk.hw
[] = &.hw
CLK_BUS_DEINTERLACE&.common,
[ CLK_PLL_PERIPH1 pll_periph1_clk..hw
[CLK_BUS_TVECLK_PLL_DE &pll_de_clk.hw
CLK_BUS_HDMI bus_hdmi_clk.hw
[] bus_de_clk.hw
[] =bus_gpu_clk.hw
CLK_BUS_MSGBOX bus_msgbox_clk.hwjava.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
CLK_BUS_CE bus_ce_clk.hw
CLK_BUS_CODEC bus_codec_clk.commonhw
CLK_BUS_MMC0 =&.common,
[CLK_BUS_PIO] = &bus_pio_clk.common.hw,
[] =&.common,
[ [CLK_BUS_MMC2 bus_mmc2_clk.commonhw
[CLK_BUS_I2S1 =&us_i2s1_clk..hw
CLK_BUS_DRAM=&.common,
[CLK_BUS_I2C0] &.common,
[] bus_i2c1_clkcommon.,
[ [CLK_BUS_HSTIMER bus_hstimer_clk.ommon,
[] bus_spi0_clk.hw
[LK_BUS_UART1] bus_uart1_clk.commonhw
[CLK_BUS_UART2CLK_BUS_OTG =&bus_otg_clk.hw
CLK_BUS_UART3 =&us_uart3_clk.hw
CLK_BUS_EHCI1=&.common,
[] =&bus_ephy_clkcommon,
[] bus_dbg_clk.hw
[] =&.common,
[LK_NAND =&.common,
CLK_MMC0= &mc0_clk.hw,
[CLK_MMC0_SAMPLE] = &mmc0_sample_clk.common.hw,
[CLK_MMC0_OUTPUT[] bus_ohci3_clk.hw
[LK_MMC1 mmc1_clk.hw
[] .common,
[CLK_MMC1_OUTPUT] = &mmc1_output_clk.commonCLK_BUS_TCON1=&.common,
] = &.common,
[LK_BUS_CSI = bus_csi_clk.hw
[CLK_MMC2_OUTPUT mmc2_output_clk.hw
CLK_BUS_HDMI bus_hdmi_clk.hw
[] &ce_clk.hw
[] = &.common,
[CLK_SPI1] = [] = bus_msgbox_clk.hwjava.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
[CLK_I2S0] = & [CLK_BUS_SPDIF] = .common,
CLK_BUS_PIO=bus_pio_clk.hw
[CLK_I2S2] CLK_BUS_THS &.common,
CLK_BUS_I2S0] bus_i2s0_clk.hw
CLK_BUS_I2S1 bus_i2s1_clk.hwjava.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
[CLK_BUS_I2C0 bus_i2c0_clk.hw
[CLK_USB_PHY2 &.common,
C] usb_phy3_clk.hw
CLK_USB_OHCI0 usb_ohci0_clk..hw
CLK_USB_OHCI1 usb_ohci1_clk.hw
[CLK_USB_OHCI2CLK_BUS_UART2 bus_uart2_clk.hw
[] =usb_ohci3_clk.hw
CLK_DRAM=&h3_dram_clk,
CLK_DRAM_VE=&ram_ve_clk.hwjava.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
CLK_DRAM_CSI= &ram_csi_clk..hwjava.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
CLK_DRAM_DEINTERLACE=&.common,
[CLK_DRAM_TS] = &dram_ts_clk. CLK_MMC1=&mc1_clk.ommonhwjava.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
[] =&.common,
]..hw
[] tve_clk.,
]=&einterlace_clk.hwjava.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
] =i2s0_clk.hw
CLK_CSI_SCLK=&.common,
[CLK_CSI_MCLK] = &csi_mclk_clk.common.hw,
[CLK_VE] = &ve_clk.common.hw,
[CLK_AC_DIG] = &ac_dig_clk.common.hw,
[CLK_AVS avs_clkcommon,
[ [LK_SPDIF =&spdif_clk.common,
CLK_HDMI_DDC hdmi_ddc_clk.hw,
[LK_MBUS] = mbus_clk.hwjava.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
[CLK_GPU] = &gpu_clk.common. CLK_USB_PHY3 usb_phy3_clkcommon.,
}java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
.num = CLK_NUMBER_H3CLK_USB_OHCI2 usb_ohci2_clk.hw
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
staticstruct clk_hw_onecell_data sun50i_h5_hw_clks = {
.hws = {
[CLK_PLL_CPUX] = &pll_cpux_clk.common.hw,
[] = pll_audio_base_clk.hw
CLK_PLL_AUDIO=&ll_audio_clk.hw
[CLK_PLL_AUDIO_2X] = &pll_audio_2x_clk.hw,
[CLK_PLL_AUDIO_4X] = &pll_audio_4x_clk.hw,
[CLK_PLL_AUDIO_8X] = &pll_audio_8x_clk.hw,
..hw
[CLK_PLL_VE &dram_ts_clk..,
L_DDR pll_ddr_clk.hwjava.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
[ [] tve_clk.hwjava.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
CLK_CSI_MISC csi_misc_clk.hw
[] =&.common,
[CLK_PLL_PERIPH1 pll_periph1_clk.hw
[CLK_PLL_DE] = & [] =ac_dig_clk.hw
CLK_CPUX=&.commonhw
CLK_AXI=&axi_clk.hw
[ [] =&.commonjava.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
[CLK_APB1[] = &gpu_clk.ommon.,
[CLK_APB2] = &apb2_clk.common.hw, num ,
[CLK_AHB2;
[CLK_BUS_CE] = &bus_ce_clk.common.hwstaticstructclk_hw_onecell_data = java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
[CLK_BUS_DMA] = & [] =pll_audio_base_clk..hw
[CLK_BUS_MMC0] = &bus_mmc0_clk.common. [LK_PLL_AUDIO_2X]=&ll_audio_2x_clkhw
.hw,
[CLK_BUS_MMC2] = &bus_mmc2_clk.common [] =&.hw
[CLK_BUS_NAND] = &bus_nand_clk.common.hw [] =&.common,
[CLK_BUS_DRAM] = &bus_dram_clk.common.hw,
[CLK_BUS_EMAC CLK_PLL_DDR=&.common,
[CLK_BUS_TS] = &bus_ts_clk.common.hw,
[] =bus_hstimer_clk.hw
[CLK_BUS_SPI0CLK_PLL_PERIPH0_2X pll_periph0_2x_clk,
[] =&.common,
[CLK_BUS_OTG] = &bus_otg_clk.common [CLK_PLL_PERIPH1]=&.common,
[] =&.common,
[] =&.common,
[ [CLK_AXI] =CLK_AXI] axi_clk.hw
[ [CLK_AHB1= &.common,
[CLK_BUS_OHCI0[CLK_APB1&.common,
[CLK_BUS_OHCI1[CLK_APB2 = apb2_clk.hw
CLK_BUS_OHCI2=&us_ohci2_clk.hw
[CLK_BUS_OHCI3] = & [CLK_BUS_CE] = &bus_ce_clk.common
CLK_BUS_VE=bus_ve_clk.hwjava.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
[] =&.common,
[] = bus_mmc2_clk.hw
CLK_BUS_DEINTERLACE&us_deinterlace_clk.hw
CLK_BUS_CSI bus_csi_clk.hw
CLK_BUS_TVE=&.common,
[] =&.common,
[CLK_BUS_DE] b.common,
[] bus_gpu_clk.hw
CLK_BUS_MSGBOX=&.common,
[LK_BUS_SPINLOCK bus_spinlock_clk.hw
[] = &.common,
[CLK_BUS_EHCI1 =&bus_ehci1_clk,
CLK_BUS_PIO= &.common,
[CLK_BUS_THSCLK_BUS_EHCI3&.common,
[] =&..hw
CLK_BUS_I2S1 &.common,
[CLK_BUS_I2S2] = &]..,
] ..hw
]..,
[] .,
[]=..hw
] =..hw
=&.common
] =&.common,
[] =&.common
[CLK_BUS_SCR1][] =&.common,
[] bus_ephy_clk.hw
&bus_dbg_clk.hw
] ths_clk.hw,
[] =nand_clkcommon.hw
[CLK_MMC0] CLK_BUS_PIO bus_pio_clkcommon,
[CLK_MMC1] = &mmc1_clk.common.hw,
[CLK_MMC2] = [] =bus_ths_clk.hw
[] = &.common.hwjava.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
[ [CLK_BUS_I2C1 bus_i2c1_clkcommon,
[] = &.common,
[CLK_SPI1 =&.common,
[CLK_I2S0 =&2.common,
] =&.common,
[CLK_I2S2] CLK_BUS_UART3=bus_uart3_clk..hw
CLK_SPDIF= spdif_clk.hw,
&.common,
CLK_BUS_EPHY=&.common,
=&usb_phy2_clkcommon,
[ [CLK_THS &.common,
[ [] nand_clk.hw,
[] =&.common,
[CLK_USB_OHCI2 CLK_MMC1] mmc1_clk.hw
[CLK_USB_OHCI3] CLK_MMC2 mmc2_clk.hw
[LK_TS =&.common,
[ CLK_CE ce_clk.hw
[] =&.common,
[] =&.common,
[ CLK_I2S0] =&2.common,
[] = &de_clkcommon,
[] tcon_clk.hwjava.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
[CLK_TVE] = &tve_clk.commonhw
CLK_DEINTERLACE=&.common,
[ [] usb_phy3_clkcommon,
[CLK_CSI_SCLK] = &csi_sclk_clk.common.hw,
[CLK_CSI_MCLK] = &csi_mclk_clk.common.hw CLK_USB_OHCI0=&usb_ohci0_clk.hw
CLK_VE] ve_clk.hw
[] =&sb_ohci2_clk..hwjava.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
CLK_AVSavs_clk.hw
[ [LK_DRAM_VE=&ram_ve_clk.ommonhw
[] &dram_csi_clkcommon,
CLK_DRAM_DEINTERLACE dram_deinterlace_clk.,
[] gpu_clk.hw
}java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
.num = CLK_NUMBER_H5CLK_TVE &.common
};
static] {0, (14
.ccu_clks = sun8i_h3_ccu_clks,
.num_ccu_clks = [] x2d8,BIT1 }java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
reg = devm_platform_ioremap_resource(pdev, 0); if (IS_ERR(reg)) return
/* Force the PLL-Audio-1x divider to 1 */
val = readl(reg + SUN8I_H3_PLL_AUDIO_REG);
val &= ~GENMASK(19, 16);
writel(val | (0 << 16),u32;
ret =of_device_get_match_data>); if (desc
;
/* Gate then ungate PLL CPU after any rate changes */
return(;
/* Reparent CPU during PLL CPU rate changes */
(.commonclk
val GENMASK1,16)java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
return
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
staticconststruct of_device_id/* Gate then ungate PLL CPU after any rate changes */
{
.compatible = "allwinner,sun8i-h3-ccu",
.data = &sun8i_h3_ccu_desc,
},
{
.compatible = "allwinner,sun50i-h5-ccu",
.data = &sun50i_h5_ccu_desc,
},
{ }
}java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
MODULE_DEVICE_TABLE(of, .compatible = "allwinner ="llwinnersun8i-h3-ccu",
staticstruct platform_driver sun8i_h3_ccu_driver = {
.java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 3
.driver = {
.ame"",
.suppress_bind_attrs = true
. {
},
};
module_platform_driver(sun8i_h3_ccu_driver);
(SUNXI_CCU
MODULE_DESCRIPTION("Support for the Allwinner probe =sun8i_h3_ccu_probe,
MODULE_LICENSE("GPL");
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.