Skip to content

Instantly share code, notes, and snippets.

@pdp7
Created July 5, 2025 23:58
Show Gist options
  • Select an option

  • Save pdp7/30e51ed013d4bedf0c6abc5717e0b6a5 to your computer and use it in GitHub Desktop.

Select an option

Save pdp7/30e51ed013d4bedf0c6abc5717e0b6a5 to your computer and use it in GitHub Desktop.

Revisions

  1. pdp7 created this gist Jul 5, 2025.
    211 changes: 211 additions & 0 deletions th1520 clk orpha patched.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,211 @@
    ```
    4.4.2.2.30 C910_CLK_CFG
    Description: C910 clock configuration reigster
    Offset: 0x100
    Default Value: 0x9f0
    [1]
    C910_CCLK_I0_SWITCH_SELRW
    c910_cclk_i0 clock select
    0: PLL0
    1: OSC_CLK
    Value After Reset: 0x0
    [0]
    C910_CCLK_SWITCH_SEL
    RW
    c910_cclk clock select
    0: c910_cclk_i0
    1: PLL1
    Value After Reset: 0x0
    ```
    ```
    diff --git a/drivers/clk/thead/clk-th1520-ap.c b/drivers/clk/thead/clk-th1520-ap.c
    index cf7f6bd428a0..39254e73d228 100644
    --- a/drivers/clk/thead/clk-th1520-ap.c
    +++ b/drivers/clk/thead/clk-th1520-ap.c
    @@ -427,7 +427,7 @@ static struct ccu_mux c910_i0_clk = {
    };
    static const struct clk_parent_data c910_parents[] = {
    - { .hw = &c910_i0_clk.common.hw },
    + { .index = -1, .name = "c910-i0" },
    { .hw = &cpu_pll1_clk.common.hw }
    };
    @@ -582,7 +582,14 @@ static const struct clk_parent_data peri2sys_apb_pclk_pd[] = {
    { .hw = &peri2sys_apb_pclk.common.hw }
    };
    -static CLK_FIXED_FACTOR_FW_NAME(osc12m_clk, "osc_12m", "osc_24m", 2, 1, 0);
    +struct clk_fixed_factor osc12m_clk = {
    + .div = 2,
    + .mult = 1,
    + .hw.init = CLK_HW_INIT_PARENTS_DATA("osc_12m",
    + osc_24m_clk,
    + &clk_fixed_factor_ops,
    + 0),
    +};
    static const char * const out_parents[] = { "osc_24m", "osc_12m" };
    root@lpi4amain:/sys/kernel/debug/clk# cat clk_orphan_dump
    {}
    root@lpi4amain:/sys/kernel/debug/clk# cat clk_orphan_summary
    enable prepare protect duty hardware connection
    clock count count count rate accuracy phase cycle enable consumer id
    ---------------------------------------------------------------------------------------------------------------------------------------------
    root@lpi4amain:/sys/kernel/debug/clk# uname -a
    Linux lpi4amain 6.16.0-rc4-next-20250704-00001-ge11642c12236 #1371 SMP Sat Jul 5 14:01:24 PDT 2025 riscv64 GNU/Linux
    root@lpi4amain:/sys/kernel/debug/clk# cat -n clk_summary
    1 enable prepare protect duty hardware connection
    2 clock count count count rate accuracy phase cycle enable consumer id
    3 ---------------------------------------------------------------------------------------------------------------------------------------------
    4 aonsys_clk 2 2 0 73728000 0 0 50000 Y fffff4e000.pvt no_connection_id
    5 fffff4a000.pinctrl no_connection_id
    6 deviceless no_connection_id
    7 osc_32k 0 0 0 32768 0 0 50000 Y deviceless no_connection_id
    8 osc_24m 2 2 0 24000000 0 0 50000 Y deviceless no_connection_id
    9 osc_12m 0 0 0 12000000 0 0 50000 Y deviceless no_connection_id
    10 out4 0 0 0 12000000 0 0 50000 N deviceless no_connection_id
    11 out3 0 0 0 12000000 0 0 50000 N deviceless no_connection_id
    12 out2 0 0 0 12000000 0 0 50000 N deviceless no_connection_id
    13 out1 0 0 0 12000000 0 0 50000 N deviceless no_connection_id
    14 tee-pll 0 0 0 2376000000 0 0 50000 Y deviceless no_connection_id
    15 dpu1-pll 0 0 0 1188000000 0 0 50000 Y deviceless no_connection_id
    16 dpu1 0 0 0 297000000 0 0 50000 Y deviceless no_connection_id
    17 dpu0-pll 0 0 0 1188000000 0 0 50000 Y deviceless no_connection_id
    18 dpu0 0 0 0 74250000 0 0 50000 Y deviceless no_connection_id
    19 video-pll 1 1 0 792000000 0 0 50000 Y deviceless no_connection_id
    20 hdmi-pixclk 0 0 0 792000000 0 0 50000 N deviceless no_connection_id
    21 mipi-dsi1-pixclk 0 0 0 792000000 0 0 50000 N deviceless no_connection_id
    22 mipi-dsi0-pixclk 0 0 0 792000000 0 0 50000 N deviceless no_connection_id
    23 iopmp-gpu-aclk 0 0 0 792000000 0 0 50000 N deviceless no_connection_id
    24 iopmp-dpu-aclk 0 0 0 792000000 0 0 50000 N deviceless no_connection_id
    25 iopmp-dpu1-aclk 0 0 0 792000000 0 0 50000 N deviceless no_connection_id
    26 iopmp-vosys-gpu-pclk 0 0 0 792000000 0 0 50000 N deviceless no_connection_id
    27 iopmp-vosys-dpu1-pclk 0 0 0 792000000 0 0 50000 N deviceless no_connection_id
    28 iopmp-vosys-dpu-pclk 0 0 0 792000000 0 0 50000 N deviceless no_connection_id
    29 axi4-vo-pclk 0 0 0 792000000 0 0 50000 N deviceless no_connection_id
    30 x2h-dpu-aclk 0 0 0 792000000 0 0 50000 N deviceless no_connection_id
    31 x2h-dpu1-aclk 0 0 0 792000000 0 0 50000 N deviceless no_connection_id
    32 hdmi-i2s-clk 0 0 0 792000000 0 0 50000 N deviceless no_connection_id
    33 mipi-dsi1-refclk 0 0 0 792000000 0 0 50000 N deviceless no_connection_id
    34 mipi-dsi0-refclk 0 0 0 792000000 0 0 50000 N deviceless no_connection_id
    35 mipi-dsi1-cfg-clk 0 0 0 792000000 0 0 50000 N deviceless no_connection_id
    36 mipi-dsi0-cfg-clk 0 0 0 792000000 0 0 50000 N deviceless no_connection_id
    37 mipi-dsi1-pclk 0 0 0 792000000 0 0 50000 N deviceless no_connection_id
    38 mipi-dsi0-pclk 0 0 0 792000000 0 0 50000 N deviceless no_connection_id
    39 hdmi-cec-clk 0 0 0 792000000 0 0 50000 N deviceless no_connection_id
    40 hdmi-pclk 0 0 0 792000000 0 0 50000 N deviceless no_connection_id
    41 hdmi-sfr-clk 0 0 0 792000000 0 0 50000 N deviceless no_connection_id
    42 dpu-cclk 0 0 0 792000000 0 0 50000 N deviceless no_connection_id
    43 dpu-aclk 0 0 0 792000000 0 0 50000 N deviceless no_connection_id
    44 dpu-hclk 0 0 0 792000000 0 0 50000 N deviceless no_connection_id
    45 dpu1-pixelclk 0 0 0 792000000 0 0 50000 N deviceless no_connection_id
    46 dpu0-pixelclk 0 0 0 792000000 0 0 50000 N deviceless no_connection_id
    47 gpu-cfg-aclk 0 0 0 792000000 0 0 50000 N deviceless no_connection_id
    48 gpu-core-clk 0 0 0 792000000 0 0 50000 N deviceless no_connection_id
    49 axi4-vo-aclk 0 0 0 792000000 0 0 50000 N deviceless no_connection_id
    50 emmc-sdio-ref 1 1 0 198000000 0 0 50000 Y deviceless no_connection_id
    51 emmc-sdio 2 2 0 198000000 0 0 50000 Y ffe7090000.mmc core
    52 ffe7080000.mmc core
    53 deviceless no_connection_id
    54 spi 0 0 0 792000000 0 0 50000 N deviceless no_connection_id
    55 qspi1 0 0 0 792000000 0 0 50000 N deviceless no_connection_id
    56 qspi0 0 0 0 792000000 0 0 50000 N deviceless no_connection_id
    57 vp-axi 0 0 0 264000000 0 0 50000 Y deviceless no_connection_id
    58 vo-axi 0 0 0 264000000 0 0 50000 N deviceless no_connection_id
    59 vi-ahb 0 0 0 132000000 0 0 50000 Y deviceless no_connection_id
    60 vi 0 0 0 264000000 0 0 50000 Y deviceless no_connection_id
    61 axi-aclk 0 0 0 396000000 0 0 50000 Y deviceless no_connection_id
    62 sram3 0 0 0 396000000 0 0 50000 N deviceless no_connection_id
    63 sram2 0 0 0 396000000 0 0 50000 N deviceless no_connection_id
    64 sram1 0 0 0 396000000 0 0 50000 N deviceless no_connection_id
    65 sram0 0 0 0 396000000 0 0 50000 N deviceless no_connection_id
    66 npu-axi 0 0 0 396000000 0 0 50000 N deviceless no_connection_id
    67 cpu2vp 0 0 0 396000000 0 0 50000 N deviceless no_connection_id
    68 cpu2aon-x2h 0 0 0 396000000 0 0 50000 Y deviceless no_connection_id
    69 gmac-pll 7 7 0 1000000000 0 0 50000 Y deviceless no_connection_id
    70 gmac-pll-clk-100m 1 1 0 100000000 0 0 50000 Y deviceless no_connection_id
    71 uart-sclk 1 1 0 100000000 0 0 50000 Y ffe7014000.serial baudclk
    72 deviceless no_connection_id
    73 gmac0 1 1 0 1000000000 0 0 50000 Y ffe7070000.ethernet pclk
    74 deviceless no_connection_id
    75 gmac1 1 1 0 1000000000 0 0 50000 Y ffe7060000.ethernet pclk
    76 deviceless no_connection_id
    77 venc 0 0 0 500000000 0 0 50000 N deviceless no_connection_id
    78 vp-apb 0 0 0 500000000 0 0 50000 Y deviceless no_connection_id
    79 npu 0 0 0 333333334 0 0 50000 N deviceless no_connection_id
    80 apb-pclk 0 0 0 250000000 0 0 50000 Y deviceless no_connection_id
    81 peri2sys-apb-pclk 2 2 0 500000000 0 0 50000 Y deviceless no_connection_id
    82 gpio2-clk 1 1 0 500000000 0 0 50000 Y ffe7f34000.gpio bus
    83 deviceless no_connection_id
    84 gpio3-clk 1 1 0 500000000 0 0 50000 Y ffe7f38000.gpio bus
    85 deviceless no_connection_id
    86 perisys-ahb-hclk 1 1 0 500000000 0 0 50000 Y deviceless no_connection_id
    87 perisys-apb4-hclk 0 0 0 500000000 0 0 50000 N deviceless no_connection_id
    88 perisys-apb3-hclk 0 0 0 500000000 0 0 50000 Y deviceless no_connection_id
    89 perisys-apb2-hclk 0 0 0 500000000 0 0 50000 Y deviceless no_connection_id
    90 perisys-apb1-hclk 0 0 0 500000000 0 0 50000 Y deviceless no_connection_id
    91 perisys-apb-pclk 7 7 0 125000000 0 0 50000 Y ffefc00000.dma-controller cfgr-clk
    92 ffefc00000.dma-controller core-clk
    93 deviceless no_connection_id
    94 i2c5 0 0 0 125000000 0 0 50000 N deviceless no_connection_id
    95 i2c4 0 0 0 125000000 0 0 50000 N deviceless no_connection_id
    96 i2c3 0 0 0 125000000 0 0 50000 N deviceless no_connection_id
    97 i2c2 0 0 0 125000000 0 0 50000 N deviceless no_connection_id
    98 i2c1 0 0 0 125000000 0 0 50000 N deviceless no_connection_id
    99 i2c0 0 0 0 125000000 0 0 50000 N deviceless no_connection_id
    100 gpio1-clk 1 1 0 125000000 0 0 50000 Y ffec006000.gpio bus
    101 deviceless no_connection_id
    102 gpio0-clk 1 1 0 125000000 0 0 50000 Y ffec005000.gpio bus
    103 deviceless no_connection_id
    104 uart5-pclk 0 0 0 125000000 0 0 50000 N deviceless no_connection_id
    105 uart4-pclk 0 0 0 125000000 0 0 50000 N deviceless no_connection_id
    106 uart3-pclk 0 0 0 125000000 0 0 50000 N deviceless no_connection_id
    107 uart2-pclk 0 0 0 125000000 0 0 50000 N deviceless no_connection_id
    108 uart1-pclk 0 0 0 125000000 0 0 50000 N deviceless no_connection_id
    109 uart0-pclk 1 1 0 125000000 0 0 50000 Y ffe7014000.serial apb_pclk
    110 deviceless no_connection_id
    111 pwm 0 0 0 125000000 0 0 50000 N deviceless no_connection_id
    112 padctrl0 1 1 0 125000000 0 0 50000 Y ffec007000.pinctrl no_connection_id
    113 deviceless no_connection_id
    114 dsmart 0 0 0 125000000 0 0 50000 N deviceless no_connection_id
    115 padctrl1 1 1 0 125000000 0 0 50000 Y ffe7f3c000.pinctrl no_connection_id
    116 deviceless no_connection_id
    117 axi4-cpusys2-aclk 1 1 0 500000000 0 0 50000 Y deviceless no_connection_id
    118 dma 0 0 0 500000000 0 0 50000 N deviceless no_connection_id
    119 gmac-axi 2 2 0 500000000 0 0 50000 Y ffe7070000.ethernet stmmaceth
    120 ffe7060000.ethernet stmmaceth
    121 deviceless no_connection_id
    122 cpu2peri-x2h 0 0 0 500000000 0 0 50000 Y deviceless no_connection_id
    123 bmu 0 0 0 500000000 0 0 50000 N deviceless no_connection_id
    124 x2x-cpusys 0 0 0 500000000 0 0 50000 N deviceless no_connection_id
    125 aon2cpu-a2x 0 0 0 500000000 0 0 50000 N deviceless no_connection_id
    126 ahb2-cpusys-hclk 1 1 0 500000000 0 0 50000 Y deviceless no_connection_id
    127 spinlock 0 0 0 500000000 0 0 50000 N deviceless no_connection_id
    128 brom 0 0 0 500000000 0 0 50000 N deviceless no_connection_id
    129 apb3-cpusys-pclk 4 4 0 250000000 0 0 50000 Y deviceless no_connection_id
    130 timer1 0 0 0 250000000 0 0 50000 N deviceless no_connection_id
    131 timer0 0 0 0 250000000 0 0 50000 N deviceless no_connection_id
    132 wdt1 0 0 0 250000000 0 0 50000 N deviceless no_connection_id
    133 wdt0 0 0 0 250000000 0 0 50000 N deviceless no_connection_id
    134 mbox3 1 1 0 250000000 0 0 50000 Y ffffc38000.mailbox clk-remote-icu2
    135 deviceless no_connection_id
    136 mbox2 1 1 0 250000000 0 0 50000 Y ffffc38000.mailbox clk-remote-icu1
    137 deviceless no_connection_id
    138 mbox1 1 1 0 250000000 0 0 50000 Y ffffc38000.mailbox clk-remote-icu0
    139 deviceless no_connection_id
    140 mbox0 1 1 0 250000000 0 0 50000 Y ffffc38000.mailbox clk-local
    141 deviceless no_connection_id
    142 cpu-pll1 0 0 0 750000000 0 0 50000 Y deviceless no_connection_id
    143 c910 0 0 0 750000000 0 0 50000 Y deviceless no_connection_id
    144 cpu-pll0 0 0 0 300000000 0 0 50000 Y deviceless no_connection_id
    145 c910-i0 0 0 0 300000000 0 0 50000 Y deviceless no_connection_id
    ```