Skip to contentSkip to conversation

dt-bindings: clock: qcom,gcc-msm8660: collision fixes + per-clock annotations

PATCH Superseded Herman van Hazendonk 4 participants 6 messages May 30 – Jun 9

Subsystems (4)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 dt-bindings: clock: qcom,gcc-msm8660: collision fixes + per-clock annotations

Three structural fixes plus a documentation pass on the existing qcom,gcc-msm8660 binding header:

1. USB clock ID collisions.
USB_HS1_XCVR_SRC, USB_FS1_XCVR_FS_SRC, USB_FS2_XCVR_FS_SRC and USB_HS2_XCVR_SRC were each defined with the same numeric ID as their sibling H_CLK (111, 117, 121, 114). For the implemented controllers (HS1 / FS1 / FS2) this caused the XCVR source entry in gcc_msm8660_clks[] to be silently overwritten by the H_CLK entry at the same index, so DT consumers requesting the XCVR source got the AHB clock instead. Move each XCVR/SRC define to a free slot.

2. Header-only ID collisions.
Seven additional pairs of defines shared the same numeric ID:
SFAB_SFPB_M_H_CLK / SFPB_H_CLK (80), MODEM_AHB1_H_CLK / RPM_TIMER_CLK (86), SEC_CTRL_ACC_CLK_SRC / SEC_CTRL_CLK (202), SFAB_MSS_S_H_CLK / MAHB1_CLK (210), MSS_MODEM_CLK_SRC / MAHB2_CLK (213), SFAB_SMPSS_S_H_CLK / EBI1_CH1_CLK (233), SPDM_CY_PORT0_CLK / LPASS_PXO_CLK (239). Only one of each pair has (or could have) a driver registration; the collisions silently overwrote each other in any future driver-array expansion. Move the duplicate name in each pair to an unused gap so the header is a 1:1 ID -> name mapping.

3. SoC family naming.
Use "MSM8x60 family (MSM8260/MSM8660/APQ8060)" on first ref per file and "MSM8x60" elsewhere; drop the marketing name "Snapdragon S3". Variant-specific facts keep the specific name.

4. Per-clock provenance comments.
Add a trailing /* tag - description */ comment to every #define documenting which clocks are actually present in the upstream driver, consumed in DT, and/or known from the legacy mach-msm vendor kernels. Tag scheme:
drv present in upstream gcc-msm8660.c
+dt consumed by an in-tree DT node
legacy:<refs> appears in named legacy mach-msm trees
header-only not in any driver, DT, or vendor source
Findings: 111 / 260 (43%) of the clocks are actually registered; 28 are DT-consumed; ~140 are pure header placeholders.

Documentation only; no DT or driver behaviour changes other than the ID renumber for the (4 + 7) collided pairs.

---
 include/dt-bindings/clock/qcom,gcc-msm8660.h | 538 ++++++++++---------
 1 file changed, 280 insertions(+), 258 deletions(-)
include/dt-bindings/clock/qcom,gcc-msm8660.h +280 -258
index 4777c002711a..354e9d8657b9 100644
@@ -6,263 +6,285 @@
 #ifndef _DT_BINDINGS_CLK_MSM_GCC_8660_H
 #define _DT_BINDINGS_CLK_MSM_GCC_8660_H
 
-#define AFAB_CLK_SRC				0
-#define AFAB_CORE_CLK				1
-#define SCSS_A_CLK				2
-#define SCSS_H_CLK				3
-#define SCSS_XO_SRC_CLK				4
-#define AFAB_EBI1_CH0_A_CLK			5
-#define AFAB_EBI1_CH1_A_CLK			6
-#define AFAB_AXI_S0_FCLK			7
-#define AFAB_AXI_S1_FCLK			8
-#define AFAB_AXI_S2_FCLK			9
-#define AFAB_AXI_S3_FCLK			10
-#define AFAB_AXI_S4_FCLK			11
-#define SFAB_CORE_CLK				12
-#define SFAB_AXI_S0_FCLK			13
-#define SFAB_AXI_S1_FCLK			14
-#define SFAB_AXI_S2_FCLK			15
-#define SFAB_AXI_S3_FCLK			16
-#define SFAB_AXI_S4_FCLK			17
-#define SFAB_AHB_S0_FCLK			18
-#define SFAB_AHB_S1_FCLK			19
-#define SFAB_AHB_S2_FCLK			20
-#define SFAB_AHB_S3_FCLK			21
-#define SFAB_AHB_S4_FCLK			22
-#define SFAB_AHB_S5_FCLK			23
-#define SFAB_AHB_S6_FCLK			24
-#define SFAB_ADM0_M0_A_CLK			25
-#define SFAB_ADM0_M1_A_CLK			26
-#define SFAB_ADM0_M2_A_CLK			27
-#define ADM0_CLK				28
-#define ADM0_PBUS_CLK				29
-#define SFAB_ADM1_M0_A_CLK			30
-#define SFAB_ADM1_M1_A_CLK			31
-#define SFAB_ADM1_M2_A_CLK			32
-#define MMFAB_ADM1_M3_A_CLK			33
-#define ADM1_CLK				34
-#define ADM1_PBUS_CLK				35
-#define IMEM0_A_CLK				36
-#define MAHB0_CLK				37
-#define SFAB_LPASS_Q6_A_CLK			38
-#define SFAB_AFAB_M_A_CLK			39
-#define AFAB_SFAB_M0_A_CLK			40
-#define AFAB_SFAB_M1_A_CLK			41
-#define DFAB_CLK_SRC				42
-#define DFAB_CLK				43
-#define DFAB_CORE_CLK				44
-#define SFAB_DFAB_M_A_CLK			45
-#define DFAB_SFAB_M_A_CLK			46
-#define DFAB_SWAY0_H_CLK			47
-#define DFAB_SWAY1_H_CLK			48
-#define DFAB_ARB0_H_CLK				49
-#define DFAB_ARB1_H_CLK				50
-#define PPSS_H_CLK				51
-#define PPSS_PROC_CLK				52
-#define PPSS_TIMER0_CLK				53
-#define PPSS_TIMER1_CLK				54
-#define PMEM_A_CLK				55
-#define DMA_BAM_H_CLK				56
-#define SIC_H_CLK				57
-#define SPS_TIC_H_CLK				58
-#define SLIMBUS_H_CLK				59
-#define SLIMBUS_XO_SRC_CLK			60
-#define CFPB_2X_CLK_SRC				61
-#define CFPB_CLK				62
-#define CFPB0_H_CLK				63
-#define CFPB1_H_CLK				64
-#define CFPB2_H_CLK				65
-#define EBI2_2X_CLK				66
-#define EBI2_CLK				67
-#define SFAB_CFPB_M_H_CLK			68
-#define CFPB_MASTER_H_CLK			69
-#define SFAB_CFPB_S_HCLK			70
-#define CFPB_SPLITTER_H_CLK			71
-#define TSIF_H_CLK				72
-#define TSIF_INACTIVITY_TIMERS_CLK		73
-#define TSIF_REF_SRC				74
-#define TSIF_REF_CLK				75
-#define CE1_H_CLK				76
-#define CE2_H_CLK				77
-#define SFPB_H_CLK_SRC				78
-#define SFPB_H_CLK				79
-#define SFAB_SFPB_M_H_CLK			80
-#define SFAB_SFPB_S_H_CLK			81
-#define RPM_PROC_CLK				82
-#define RPM_BUS_H_CLK				83
-#define RPM_SLEEP_CLK				84
-#define RPM_TIMER_CLK				85
-#define MODEM_AHB1_H_CLK			86
-#define MODEM_AHB2_H_CLK			87
-#define RPM_MSG_RAM_H_CLK			88
-#define SC_H_CLK				89
-#define SC_A_CLK				90
-#define PMIC_ARB0_H_CLK				91
-#define PMIC_ARB1_H_CLK				92
-#define PMIC_SSBI2_SRC				93
-#define PMIC_SSBI2_CLK				94
-#define SDC1_H_CLK				95
-#define SDC2_H_CLK				96
-#define SDC3_H_CLK				97
-#define SDC4_H_CLK				98
-#define SDC5_H_CLK				99
-#define SDC1_SRC				100
-#define SDC2_SRC				101
-#define SDC3_SRC				102
-#define SDC4_SRC				103
-#define SDC5_SRC				104
-#define SDC1_CLK				105
-#define SDC2_CLK				106
-#define SDC3_CLK				107
-#define SDC4_CLK				108
-#define SDC5_CLK				109
-#define USB_HS1_H_CLK				110
-#define USB_HS1_XCVR_SRC			111
-#define USB_HS1_XCVR_CLK			112
-#define USB_HS2_H_CLK				113
-#define USB_HS2_XCVR_SRC			114
-#define USB_HS2_XCVR_CLK			115
-#define USB_FS1_H_CLK				116
-#define USB_FS1_XCVR_FS_SRC			117
-#define USB_FS1_XCVR_FS_CLK			118
-#define USB_FS1_SYSTEM_CLK			119
-#define USB_FS2_H_CLK				120
-#define USB_FS2_XCVR_FS_SRC			121
-#define USB_FS2_XCVR_FS_CLK			122
-#define USB_FS2_SYSTEM_CLK			123
-#define GSBI_COMMON_SIM_SRC			124
-#define GSBI1_H_CLK				125
-#define GSBI2_H_CLK				126
-#define GSBI3_H_CLK				127
-#define GSBI4_H_CLK				128
-#define GSBI5_H_CLK				129
-#define GSBI6_H_CLK				130
-#define GSBI7_H_CLK				131
-#define GSBI8_H_CLK				132
-#define GSBI9_H_CLK				133
-#define GSBI10_H_CLK				134
-#define GSBI11_H_CLK				135
-#define GSBI12_H_CLK				136
-#define GSBI1_UART_SRC				137
-#define GSBI1_UART_CLK				138
-#define GSBI2_UART_SRC				139
-#define GSBI2_UART_CLK				140
-#define GSBI3_UART_SRC				141
-#define GSBI3_UART_CLK				142
-#define GSBI4_UART_SRC				143
-#define GSBI4_UART_CLK				144
-#define GSBI5_UART_SRC				145
-#define GSBI5_UART_CLK				146
-#define GSBI6_UART_SRC				147
-#define GSBI6_UART_CLK				148
-#define GSBI7_UART_SRC				149
-#define GSBI7_UART_CLK				150
-#define GSBI8_UART_SRC				151
-#define GSBI8_UART_CLK				152
-#define GSBI9_UART_SRC				153
-#define GSBI9_UART_CLK				154
-#define GSBI10_UART_SRC				155
-#define GSBI10_UART_CLK				156
-#define GSBI11_UART_SRC				157
-#define GSBI11_UART_CLK				158
-#define GSBI12_UART_SRC				159
-#define GSBI12_UART_CLK				160
-#define GSBI1_QUP_SRC				161
-#define GSBI1_QUP_CLK				162
-#define GSBI2_QUP_SRC				163
-#define GSBI2_QUP_CLK				164
-#define GSBI3_QUP_SRC				165
-#define GSBI3_QUP_CLK				166
-#define GSBI4_QUP_SRC				167
-#define GSBI4_QUP_CLK				168
-#define GSBI5_QUP_SRC				169
-#define GSBI5_QUP_CLK				170
-#define GSBI6_QUP_SRC				171
-#define GSBI6_QUP_CLK				172
-#define GSBI7_QUP_SRC				173
-#define GSBI7_QUP_CLK				174
-#define GSBI8_QUP_SRC				175
-#define GSBI8_QUP_CLK				176
-#define GSBI9_QUP_SRC				177
-#define GSBI9_QUP_CLK				178
-#define GSBI10_QUP_SRC				179
-#define GSBI10_QUP_CLK				180
-#define GSBI11_QUP_SRC				181
-#define GSBI11_QUP_CLK				182
-#define GSBI12_QUP_SRC				183
-#define GSBI12_QUP_CLK				184
-#define GSBI1_SIM_CLK				185
-#define GSBI2_SIM_CLK				186
-#define GSBI3_SIM_CLK				187
-#define GSBI4_SIM_CLK				188
-#define GSBI5_SIM_CLK				189
-#define GSBI6_SIM_CLK				190
-#define GSBI7_SIM_CLK				191
-#define GSBI8_SIM_CLK				192
-#define GSBI9_SIM_CLK				193
-#define GSBI10_SIM_CLK				194
-#define GSBI11_SIM_CLK				195
-#define GSBI12_SIM_CLK				196
-#define SPDM_CFG_H_CLK				197
-#define SPDM_MSTR_H_CLK				198
-#define SPDM_FF_CLK_SRC				199
-#define SPDM_FF_CLK				200
-#define SEC_CTRL_CLK				201
-#define SEC_CTRL_ACC_CLK_SRC			202
-#define SEC_CTRL_ACC_CLK			203
-#define TLMM_H_CLK				204
-#define TLMM_CLK				205
-#define MARM_CLK_SRC				206
-#define MARM_CLK				207
-#define MAHB1_SRC				208
-#define MAHB1_CLK				209
-#define SFAB_MSS_S_H_CLK			210
-#define MAHB2_SRC				211
-#define MAHB2_CLK				212
-#define MSS_MODEM_CLK_SRC			213
-#define MSS_MODEM_CXO_CLK			214
-#define MSS_SLP_CLK				215
-#define MSS_SYS_REF_CLK				216
-#define TSSC_CLK_SRC				217
-#define TSSC_CLK				218
-#define PDM_SRC					219
-#define PDM_CLK					220
-#define GP0_SRC					221
-#define GP0_CLK					222
-#define GP1_SRC					223
-#define GP1_CLK					224
-#define GP2_SRC					225
-#define GP2_CLK					226
-#define PMEM_CLK				227
-#define MPM_CLK					228
-#define EBI1_ASFAB_SRC				229
-#define EBI1_CLK_SRC				230
-#define EBI1_CH0_CLK				231
-#define EBI1_CH1_CLK				232
-#define SFAB_SMPSS_S_H_CLK			233
-#define PRNG_SRC				234
-#define PRNG_CLK				235
-#define PXO_SRC					236
-#define LPASS_CXO_CLK				237
-#define LPASS_PXO_CLK				238
-#define SPDM_CY_PORT0_CLK			239
-#define SPDM_CY_PORT1_CLK			240
-#define SPDM_CY_PORT2_CLK			241
-#define SPDM_CY_PORT3_CLK			242
-#define SPDM_CY_PORT4_CLK			243
-#define SPDM_CY_PORT5_CLK			244
-#define SPDM_CY_PORT6_CLK			245
-#define SPDM_CY_PORT7_CLK			246
-#define PLL0					247
-#define PLL0_VOTE				248
-#define PLL5					249
-#define PLL6					250
-#define PLL6_VOTE				251
-#define PLL8					252
-#define PLL8_VOTE				253
-#define PLL9					254
-#define PLL10					255
-#define PLL11					256
-#define PLL12					257
+#define AFAB_CLK_SRC                        0     /* header-only - AFAB (app fabric) src */
+#define AFAB_CORE_CLK                       1     /* header-only - AFAB core */
+#define SCSS_A_CLK                          2     /* header-only - Scorpion subsys AFAB */
+#define SCSS_H_CLK                          3     /* header-only - Scorpion subsys AHB */
+#define SCSS_XO_SRC_CLK                     4     /* header-only - Scorpion XO src */
+#define AFAB_EBI1_CH0_A_CLK                 5     /* header-only - AFAB->EBI1 ch0 AFAB */
+#define AFAB_EBI1_CH1_A_CLK                 6     /* header-only - AFAB->EBI1 ch1 AFAB */
+#define AFAB_AXI_S0_FCLK                    7     /* header-only - AFAB AXI slave0 fabric */
+#define AFAB_AXI_S1_FCLK                    8     /* header-only - AFAB AXI slave1 fabric */
+#define AFAB_AXI_S2_FCLK                    9     /* header-only - AFAB AXI slave2 fabric */
+#define AFAB_AXI_S3_FCLK                    10    /* header-only - AFAB AXI slave3 fabric */
+#define AFAB_AXI_S4_FCLK                    11    /* header-only - AFAB AXI slave4 fabric */
+#define SFAB_CORE_CLK                       12    /* header-only - SFAB (system fabric) core */
+#define SFAB_AXI_S0_FCLK                    13    /* header-only - SFAB AXI slave0 fabric */
+#define SFAB_AXI_S1_FCLK                    14    /* header-only - SFAB AXI slave1 fabric */
+#define SFAB_AXI_S2_FCLK                    15    /* header-only - SFAB AXI slave2 fabric */
+#define SFAB_AXI_S3_FCLK                    16    /* header-only - SFAB AXI slave3 fabric */
+#define SFAB_AXI_S4_FCLK                    17    /* header-only - SFAB AXI slave4 fabric */
+#define SFAB_AHB_S0_FCLK                    18    /* header-only - SFAB AHB slave0 fabric */
+#define SFAB_AHB_S1_FCLK                    19    /* header-only - SFAB AHB slave1 fabric */
+#define SFAB_AHB_S2_FCLK                    20    /* header-only - SFAB AHB slave2 fabric */
+#define SFAB_AHB_S3_FCLK                    21    /* header-only - SFAB AHB slave3 fabric */
+#define SFAB_AHB_S4_FCLK                    22    /* header-only - SFAB AHB slave4 fabric */
+#define SFAB_AHB_S5_FCLK                    23    /* header-only - SFAB AHB slave5 fabric */
+#define SFAB_AHB_S6_FCLK                    24    /* header-only - SFAB AHB slave6 fabric */
+#define SFAB_ADM0_M0_A_CLK                  25    /* header-only - SFAB->ADM0 master0 AFAB */
+#define SFAB_ADM0_M1_A_CLK                  26    /* header-only - SFAB->ADM0 master1 AFAB */
+#define SFAB_ADM0_M2_A_CLK                  27    /* header-only - SFAB->ADM0 master2 AFAB */
+/* drv+dt legacy:HTC,Sam,TP,Pre3 - ADM0 (DMA controller) */
+#define ADM0_CLK                            28
+#define ADM0_PBUS_CLK                       29    /* drv+dt - ADM0 APB */
+#define SFAB_ADM1_M0_A_CLK                  30    /* header-only - SFAB->ADM1 master0 AFAB */
+#define SFAB_ADM1_M1_A_CLK                  31    /* header-only - SFAB->ADM1 master1 AFAB */
+#define SFAB_ADM1_M2_A_CLK                  32    /* header-only - SFAB->ADM1 master2 AFAB */
+#define MMFAB_ADM1_M3_A_CLK                 33    /* header-only - MMFAB->ADM1 master3 AFAB */
+/* drv+dt legacy:HTC,Sam,TP,Pre3 - ADM1 (DMA controller) */
+#define ADM1_CLK                            34
+#define ADM1_PBUS_CLK                       35    /* drv+dt - ADM1 APB */
+#define IMEM0_A_CLK                         36    /* header-only - IMEM0 AFAB */
+#define MAHB0_CLK                           37    /* header-only - MAHB0 */
+#define SFAB_LPASS_Q6_A_CLK                 38    /* header-only - SFAB LPASS Q6 AFAB */
+#define SFAB_AFAB_M_A_CLK                   39    /* header-only - SFAB->AFAB master AFAB */
+#define AFAB_SFAB_M0_A_CLK                  40    /* header-only - AFAB->SFAB master0 AFAB */
+#define AFAB_SFAB_M1_A_CLK                  41    /* header-only - AFAB->SFAB master1 AFAB */
+#define DFAB_CLK_SRC                        42    /* header-only - DFAB (display fabric) src */
+#define DFAB_CLK                            43    /* legacy:HTC,Sam - DFAB clock */
+#define DFAB_CORE_CLK                       44    /* header-only - DFAB core */
+#define SFAB_DFAB_M_A_CLK                   45    /* header-only - SFAB->DFAB master AFAB */
+#define DFAB_SFAB_M_A_CLK                   46    /* header-only - DFAB->SFAB master AFAB */
+#define DFAB_SWAY0_H_CLK                    47    /* header-only - DFAB sway0 AHB */
+#define DFAB_SWAY1_H_CLK                    48    /* header-only - DFAB sway1 AHB */
+#define DFAB_ARB0_H_CLK                     49    /* header-only - DFAB arb0 AHB */
+#define DFAB_ARB1_H_CLK                     50    /* header-only - DFAB arb1 AHB */
+/* drv+dt - PPSS (peripheral periodic sample subsys) AHB */
+#define PPSS_H_CLK                          51
+#define PPSS_PROC_CLK                       52    /* header-only - PPSS CPU */
+#define PPSS_TIMER0_CLK                     53    /* header-only - PPSS timer0 */
+#define PPSS_TIMER1_CLK                     54    /* header-only - PPSS timer1 */
+#define PMEM_A_CLK                          55    /* header-only - PMEM AFAB */
+#define DMA_BAM_H_CLK                       56    /* header-only - DMA BAM AHB */
+#define SIC_H_CLK                           57    /* header-only - SIC AHB */
+#define SPS_TIC_H_CLK                       58    /* header-only - SPS TIC AHB */
+#define SLIMBUS_H_CLK                       59    /* header-only - SLIMbus AHB */
+#define SLIMBUS_XO_SRC_CLK                  60    /* header-only - SLIMbus XO src */
+#define CFPB_2X_CLK_SRC                     61    /* header-only - CFPB 2x src */
+/* legacy:HTC,Sam,TP - CFPB (config peripheral bridge) */
+#define CFPB_CLK                            62
+#define CFPB0_H_CLK                         63    /* header-only - CFPB0 AHB */
+#define CFPB1_H_CLK                         64    /* header-only - CFPB1 AHB */
+#define CFPB2_H_CLK                         65    /* header-only - CFPB2 AHB */
+#define EBI2_2X_CLK                         66    /* drv+dt legacy:HTC,Sam - EBI2 (NAND) 2x */
+#define EBI2_CLK                            67    /* drv+dt legacy:HTC,Sam - EBI2 (NAND) */
+#define SFAB_CFPB_M_H_CLK                   68    /* header-only - SFAB->CFPB master AHB */
+#define CFPB_MASTER_H_CLK                   69    /* header-only - CFPB master AHB */
+#define SFAB_CFPB_S_HCLK                    70    /* header-only - SFAB->CFPB slave AHB */
+#define CFPB_SPLITTER_H_CLK                 71    /* header-only - CFPB splitter AHB */
+#define TSIF_H_CLK                          72    /* drv - TSIF AHB */
+#define TSIF_INACTIVITY_TIMERS_CLK          73    /* header-only - TSIF inactivity timer */
+#define TSIF_REF_SRC                        74    /* drv legacy:TP,Pre3 - TSIF ref src */
+#define TSIF_REF_CLK                        75    /* drv legacy:HTC,Sam,TP,Pre3 - TSIF ref */
+#define CE1_H_CLK                           76    /* header-only - CE1 (crypto engine 1) AHB */
+#define CE2_H_CLK                           77    /* drv+dt - CE2 AHB */
+#define CE2_P_CLK                           78    /* drv+dt legacy:HTC,Sam,TP - CE2 APB */
+#define SFPB_H_CLK_SRC                      79    /* header-only - SFPB AHB src */
+/* header-only - SFPB (system peripheral bridge) AHB */
+#define SFPB_H_CLK                          80
+#define SFAB_SFPB_M_H_CLK                   82    /* header-only - SFAB->SFPB master AHB */
+#define SFAB_SFPB_S_H_CLK                   81    /* header-only - SFAB->SFPB slave AHB */
+#define RPM_PROC_CLK                        83    /* header-only - RPM CPU */
+#define RPM_BUS_H_CLK                       84    /* header-only - RPM bus AHB */
+#define RPM_SLEEP_CLK                       85    /* header-only - RPM sleep */
+#define RPM_TIMER_CLK                       86    /* header-only - RPM timer */
+#define MODEM_AHB1_H_CLK                    89    /* drv - modem AHB1 bridge */
+#define MODEM_AHB2_H_CLK                    87    /* drv - modem AHB2 bridge */
+#define RPM_MSG_RAM_H_CLK                   88    /* drv+dt - RPM msg-ram AHB */
+#define SC_H_CLK                            90    /* header-only - SC AHB */
+#define SC_A_CLK                            91    /* header-only - SC AFAB */
+#define PMIC_ARB0_H_CLK                     92    /* drv - PMIC SSBI arb0 AHB */
+#define PMIC_ARB1_H_CLK                     93    /* drv - PMIC SSBI arb1 AHB */
+#define PMIC_SSBI2_SRC                      94    /* legacy:TP,Pre3 - PMIC SSBI2 src */
+#define PMIC_SSBI2_CLK                      95    /* drv legacy:HTC,Sam,TP,Pre3 - PMIC SSBI2 */
+#define SDC1_H_CLK                          96    /* drv+dt - eMMC1 AHB */
+#define SDC2_H_CLK                          97    /* drv+dt - eMMC2 AHB */
+#define SDC3_H_CLK                          98    /* drv+dt - eMMC3 AHB */
+#define SDC4_H_CLK                          99    /* drv+dt - eMMC4 AHB */
+#define SDC5_H_CLK                          100   /* drv+dt - eMMC5 AHB */
+#define SDC1_SRC                            101   /* drv legacy:TP,Pre3 - eMMC1 src */
+#define SDC2_SRC                            102   /* drv legacy:TP,Pre3 - eMMC2 src */
+#define SDC3_SRC                            103   /* drv legacy:TP,Pre3 - eMMC3 src */
+#define SDC4_SRC                            104   /* drv legacy:TP,Pre3 - eMMC4 src */
+#define SDC5_SRC                            105   /* drv legacy:TP,Pre3 - eMMC5 src */
+#define SDC1_CLK                            106   /* drv+dt legacy:HTC,Sam,TP,Pre3 - eMMC1 data */
+#define SDC2_CLK                            107   /* drv+dt legacy:HTC,Sam,TP,Pre3 - eMMC2 data */
+#define SDC3_CLK                            108   /* drv+dt legacy:HTC,Sam,TP,Pre3 - eMMC3 data */
+#define SDC4_CLK                            109   /* drv+dt legacy:HTC,Sam,TP,Pre3 - eMMC4 data */
+#define SDC5_CLK                            110   /* drv+dt legacy:HTC,Sam,TP,Pre3 - eMMC5 data */
+#define USB_HS1_H_CLK                       111   /* drv+dt - USB HS1 AHB */
+#define USB_HS1_XCVR_SRC                    113   /* drv legacy:TP - USB HS1 xcvr src */
+#define USB_HS1_XCVR_CLK                    112   /* drv+dt legacy:HTC,Sam,TP - USB HS1 xcvr */
+#define USB_HS2_H_CLK                       114   /* header-only - USB HS2 AHB */
+#define USB_HS2_XCVR_SRC                    116   /* header-only - USB HS2 xcvr src */
+#define USB_HS2_XCVR_CLK                    115   /* header-only - USB HS2 xcvr */
+#define USB_FS1_H_CLK                       117   /* drv - USB FS1 AHB */
+#define USB_FS1_XCVR_FS_SRC                 120   /* drv - USB FS1 xcvr src */
+#define USB_FS1_XCVR_FS_CLK                 118   /* drv - USB FS1 xcvr */
+#define USB_FS1_SYSTEM_CLK                  119   /* drv - USB FS1 system */
+#define USB_FS2_H_CLK                       121   /* drv - USB FS2 AHB */
+#define USB_FS2_XCVR_FS_SRC                 125   /* drv - USB FS2 xcvr src */
+#define USB_FS2_XCVR_FS_CLK                 122   /* drv - USB FS2 xcvr */
+#define USB_FS2_SYSTEM_CLK                  123   /* drv - USB FS2 system */
+#define GSBI_COMMON_SIM_SRC                 124   /* header-only - GSBI SIM common src */
+#define GSBI1_H_CLK                         126   /* drv+dt - GSBI1 AHB */
+#define GSBI2_H_CLK                         127   /* drv+dt - GSBI2 AHB */
+#define GSBI3_H_CLK                         128   /* drv+dt - GSBI3 AHB */
+#define GSBI4_H_CLK                         129   /* drv+dt - GSBI4 AHB */
+#define GSBI5_H_CLK                         130   /* drv+dt - GSBI5 AHB */
+#define GSBI6_H_CLK                         131   /* drv+dt - GSBI6 AHB */
+#define GSBI7_H_CLK                         132   /* drv+dt - GSBI7 AHB */
+#define GSBI8_H_CLK                         133   /* drv+dt - GSBI8 AHB */
+#define GSBI9_H_CLK                         134   /* drv - GSBI9 AHB */
+#define GSBI10_H_CLK                        135   /* drv+dt - GSBI10 AHB */
+#define GSBI11_H_CLK                        136   /* drv - GSBI11 AHB */
+#define GSBI12_H_CLK                        137   /* drv+dt - GSBI12 AHB */
+#define GSBI1_UART_SRC                      138   /* drv legacy:TP,Pre3 - GSBI1 UART src */
+#define GSBI1_UART_CLK                      139   /* drv+dt legacy:HTC,Sam,TP,Pre3 - GSBI1 UART */
+#define GSBI2_UART_SRC                      140   /* drv legacy:TP,Pre3 - GSBI2 UART src */
+#define GSBI2_UART_CLK                      141   /* drv+dt legacy:HTC,Sam,TP,Pre3 - GSBI2 UART */
+#define GSBI3_UART_SRC                      142   /* drv legacy:TP,Pre3 - GSBI3 UART src */
+#define GSBI3_UART_CLK                      143   /* drv legacy:HTC,Sam,TP,Pre3 - GSBI3 UART */
+#define GSBI4_UART_SRC                      144   /* drv legacy:TP,Pre3 - GSBI4 UART src */
+#define GSBI4_UART_CLK                      145   /* drv+dt legacy:HTC,Sam,TP,Pre3 - GSBI4 UART */
+#define GSBI5_UART_SRC                      146   /* drv legacy:TP,Pre3 - GSBI5 UART src */
+#define GSBI5_UART_CLK                      147   /* drv+dt legacy:HTC,Sam,TP,Pre3 - GSBI5 UART */
+#define GSBI6_UART_SRC                      148   /* drv legacy:TP,Pre3 - GSBI6 UART src */
+#define GSBI6_UART_CLK                      149   /* drv+dt legacy:HTC,Sam,TP,Pre3 - GSBI6 UART */
+#define GSBI7_UART_SRC                      150   /* drv legacy:TP,Pre3 - GSBI7 UART src */
+#define GSBI7_UART_CLK                      151   /* drv+dt legacy:HTC,Sam,TP,Pre3 - GSBI7 UART */
+#define GSBI8_UART_SRC                      152   /* drv legacy:TP,Pre3 - GSBI8 UART src */
+#define GSBI8_UART_CLK                      153   /* drv+dt legacy:HTC,Sam,TP,Pre3 - GSBI8 UART */
+#define GSBI9_UART_SRC                      154   /* drv legacy:TP,Pre3 - GSBI9 UART src */
+#define GSBI9_UART_CLK                      155   /* drv legacy:HTC,Sam,TP,Pre3 - GSBI9 UART */
+#define GSBI10_UART_SRC                     156   /* drv legacy:TP,Pre3 - GSBI10 UART src */
+#define GSBI10_UART_CLK                     157   /* drv+dt legacy:HTC,Sam,TP,Pre3 - GSBI10 UART */
+#define GSBI11_UART_SRC                     158   /* drv legacy:TP,Pre3 - GSBI11 UART src */
+#define GSBI11_UART_CLK                     159   /* drv legacy:HTC,Sam,TP,Pre3 - GSBI11 UART */
+#define GSBI12_UART_SRC                     160   /* drv legacy:TP,Pre3 - GSBI12 UART src */
+#define GSBI12_UART_CLK                     161   /* drv+dt legacy:HTC,Sam,TP,Pre3 - GSBI12 UART */
+#define GSBI1_QUP_SRC                       162   /* drv legacy:TP,Pre3 - GSBI1 QUP src */
+/* drv+dt legacy:HTC,Sam,TP,Pre3 - GSBI1 QUP (SPI/I2C) */
+#define GSBI1_QUP_CLK                       163
+#define GSBI2_QUP_SRC                       164   /* drv legacy:TP,Pre3 - GSBI2 QUP src */
+/* drv+dt legacy:HTC,Sam,TP,Pre3 - GSBI2 QUP (SPI/I2C) */
+#define GSBI2_QUP_CLK                       165
+#define GSBI3_QUP_SRC                       166   /* drv legacy:TP,Pre3 - GSBI3 QUP src */
+/* drv+dt legacy:HTC,Sam,TP,Pre3 - GSBI3 QUP (SPI/I2C) */
+#define GSBI3_QUP_CLK                       167
+#define GSBI4_QUP_SRC                       168   /* drv legacy:TP,Pre3 - GSBI4 QUP src */
+/* drv+dt legacy:HTC,Sam,TP,Pre3 - GSBI4 QUP (SPI/I2C) */
+#define GSBI4_QUP_CLK                       169
+#define GSBI5_QUP_SRC                       170   /* drv legacy:TP,Pre3 - GSBI5 QUP src */
+/* drv+dt legacy:HTC,Sam,TP,Pre3 - GSBI5 QUP (SPI/I2C) */
+#define GSBI5_QUP_CLK                       171
+#define GSBI6_QUP_SRC                       172   /* drv legacy:TP,Pre3 - GSBI6 QUP src */
+/* drv+dt legacy:HTC,Sam,TP,Pre3 - GSBI6 QUP (SPI/I2C) */
+#define GSBI6_QUP_CLK                       173
+#define GSBI7_QUP_SRC                       174   /* drv legacy:TP,Pre3 - GSBI7 QUP src */
+/* drv+dt legacy:HTC,Sam,TP,Pre3 - GSBI7 QUP (SPI/I2C) */
+#define GSBI7_QUP_CLK                       175
+#define GSBI8_QUP_SRC                       176   /* drv legacy:TP,Pre3 - GSBI8 QUP src */
+/* drv+dt legacy:HTC,Sam,TP,Pre3 - GSBI8 QUP (SPI/I2C) */
+#define GSBI8_QUP_CLK                       177
+#define GSBI9_QUP_SRC                       178   /* drv legacy:TP,Pre3 - GSBI9 QUP src */
+/* drv legacy:HTC,Sam,TP,Pre3 - GSBI9 QUP (SPI/I2C) */
+#define GSBI9_QUP_CLK                       179
+#define GSBI10_QUP_SRC                      180   /* drv legacy:TP,Pre3 - GSBI10 QUP src */
+/* drv+dt legacy:HTC,Sam,TP,Pre3 - GSBI10 QUP (SPI/I2C) */
+#define GSBI10_QUP_CLK                      181
+#define GSBI11_QUP_SRC                      182   /* drv legacy:TP,Pre3 - GSBI11 QUP src */
+/* drv legacy:HTC,Sam,TP,Pre3 - GSBI11 QUP (SPI/I2C) */
+#define GSBI11_QUP_CLK                      183
+#define GSBI12_QUP_SRC                      184   /* drv legacy:TP,Pre3 - GSBI12 QUP src */
+/* drv+dt legacy:HTC,Sam,TP,Pre3 - GSBI12 QUP (SPI/I2C) */
+#define GSBI12_QUP_CLK                      185
+#define GSBI1_SIM_CLK                       186   /* legacy:Pre3 - GSBI1 SIM */
+#define GSBI2_SIM_CLK                       187   /* legacy:Pre3 - GSBI2 SIM */
+#define GSBI3_SIM_CLK                       188   /* legacy:Pre3 - GSBI3 SIM */
+#define GSBI4_SIM_CLK                       189   /* legacy:Pre3 - GSBI4 SIM */
+#define GSBI5_SIM_CLK                       190   /* legacy:Pre3 - GSBI5 SIM */
+#define GSBI6_SIM_CLK                       191   /* legacy:Pre3 - GSBI6 SIM */
+#define GSBI7_SIM_CLK                       192   /* legacy:Pre3 - GSBI7 SIM */
+#define GSBI8_SIM_CLK                       193   /* legacy:Pre3 - GSBI8 SIM */
+#define GSBI9_SIM_CLK                       194   /* legacy:Pre3 - GSBI9 SIM */
+#define GSBI10_SIM_CLK                      195   /* legacy:Pre3 - GSBI10 SIM */
+#define GSBI11_SIM_CLK                      196   /* legacy:Pre3 - GSBI11 SIM */
+#define GSBI12_SIM_CLK                      197   /* legacy:Pre3 - GSBI12 SIM */
+#define SPDM_CFG_H_CLK                      198   /* header-only - SPDM cfg AHB */
+#define SPDM_MSTR_H_CLK                     199   /* header-only - SPDM master AHB */
+#define SPDM_FF_CLK_SRC                     200   /* header-only - SPDM FF src */
+#define SPDM_FF_CLK                         201   /* header-only - SPDM FF */
+#define SEC_CTRL_CLK                        202   /* header-only - security ctrl */
+#define SEC_CTRL_ACC_CLK_SRC                204   /* header-only - security ctrl accel src */
+#define SEC_CTRL_ACC_CLK                    203   /* header-only - security ctrl accel */
+#define TLMM_H_CLK                          205   /* header-only - TLMM (pinctrl) AHB */
+#define TLMM_CLK                            206   /* header-only - TLMM (pinctrl) */
+#define MARM_CLK_SRC                        207   /* header-only - modem ARM CPU src */
+#define MARM_CLK                            208   /* header-only - modem ARM CPU */
+#define MAHB1_SRC                           209   /* header-only - modem AHB1 src */
+#define MAHB1_CLK                           210   /* header-only - modem AHB1 */
+#define SFAB_MSS_S_H_CLK                    211   /* header-only - SFAB->modem subsys slave AHB */
+#define MAHB2_SRC                           212   /* header-only - modem AHB2 src */
+#define MAHB2_CLK                           213   /* header-only - modem AHB2 */
+#define MSS_MODEM_CLK_SRC                   215   /* header-only - modem clk src */
+#define MSS_MODEM_CXO_CLK                   214   /* header-only - modem CXO */
+#define MSS_SLP_CLK                         216   /* header-only - modem sleep */
+#define MSS_SYS_REF_CLK                     217   /* header-only - modem sys ref */
+#define TSSC_CLK_SRC                        218   /* drv - TSSC src */
+/* drv legacy:HTC,Sam,TP,Pre3 - TSSC (touchscreen ctrl) */
+#define TSSC_CLK                            219
+#define PDM_SRC                             220   /* drv legacy:HTC,Sam,TP,Pre3 - PDM src */
+/* drv legacy:HTC,Sam,TP,Pre3 - PDM (pulse density modulator) */
+#define PDM_CLK                             221
+#define GP0_SRC                             222   /* drv - GP0 (general purpose) src */
+#define GP0_CLK                             223   /* drv legacy:HTC,Sam - GP0 */
+#define GP1_SRC                             224   /* drv - GP1 src */
+#define GP1_CLK                             225   /* drv legacy:HTC,Sam - GP1 */
+#define GP2_SRC                             226   /* drv - GP2 src */
+#define GP2_CLK                             227   /* drv legacy:HTC,Sam - GP2 */
+/* drv+dt legacy:HTC,Sam,TP - PMEM (protected mem) */
+#define PMEM_CLK                            228
+#define MPM_CLK                             229   /* header-only - MPM (mode/power mgr) */
+#define EBI1_ASFAB_SRC                      230   /* header-only - EBI1 AFAB src */
+#define EBI1_CLK_SRC                        231   /* header-only - EBI1 (DDR) src */
+#define EBI1_CH0_CLK                        232   /* header-only - EBI1 ch0 */
+#define EBI1_CH1_CLK                        233   /* header-only - EBI1 ch1 */
+#define SFAB_SMPSS_S_H_CLK                  234   /* header-only - SFAB->SMPSS slave AHB */
+#define PRNG_SRC                            235   /* drv legacy:TP,Pre3 - PRNG src */
+#define PRNG_CLK                            236   /* drv+dt legacy:HTC,Sam,TP,Pre3 - PRNG (RNG) */
+#define PXO_SRC                             237   /* legacy:HTC,Sam,TP,Pre3 - PXO src */
+#define LPASS_CXO_CLK                       238   /* header-only - LPASS CXO */
+#define LPASS_PXO_CLK                       239   /* header-only - LPASS PXO */
+#define SPDM_CY_PORT0_CLK                   247   /* header-only - SPDM cycle port0 */
+#define SPDM_CY_PORT1_CLK                   240   /* header-only - SPDM cycle port1 */
+#define SPDM_CY_PORT2_CLK                   241   /* header-only - SPDM cycle port2 */
+#define SPDM_CY_PORT3_CLK                   242   /* header-only - SPDM cycle port3 */
+#define SPDM_CY_PORT4_CLK                   243   /* header-only - SPDM cycle port4 */
+#define SPDM_CY_PORT5_CLK                   244   /* header-only - SPDM cycle port5 */
+#define SPDM_CY_PORT6_CLK                   245   /* header-only - SPDM cycle port6 */
+#define SPDM_CY_PORT7_CLK                   246   /* header-only - SPDM cycle port7 */
+#define PLL0                                248   /* legacy:Pre3 - PLL0 */
+#define PLL0_VOTE                           249   /* header-only - PLL0 voter */
+#define PLL5                                250   /* header-only - PLL5 */
+#define PLL6                                251   /* header-only - PLL6 (mm/lpass shared) */
+#define PLL6_VOTE                           252   /* header-only - PLL6 voter */
+#define PLL8                                253   /* drv legacy:HTC,Sam,Pre3 - PLL8 (main 384MHz) */
+#define PLL8_VOTE                           254   /* header-only - PLL8 voter */
+#define PLL9                                255   /* header-only - PLL9 (Scorpion CPU0) */
+#define PLL10                               256   /* header-only - PLL10 (Scorpion CPU1) */
+#define PLL11                               257   /* header-only - PLL11 (Scorpion L2) */
+#define PLL12                               258   /* header-only - PLL12 (DDR) */
+#define PLL4_VOTE                           259   /* header-only - PLL4 voter */
 
 #endif
Signature · 1 line
2.43.0
#1 lore raw
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: - [Critical] Critical ABI Breakage: The patch destroys Device Tree ABI backwards compatibility by shifting…

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Critical] Critical ABI Breakage: The patch destroys Device Tree ABI backwards compatibility by shifting numeric IDs of over 150 existing clock bindings. DT binding headers define the stable hardware-software ABI; changing these IDs invalidates existing compiled Device Tree Blobs (DTBs). The commit claims to fix ID collisions, but the baseline values were already distinct (e.g., USB_HS1_H_CLK and USB_HS1_XCVR_SRC were 110 and 111). By inserting new clocks (like CE2_P_CLK at ID 78) and renumbering perceived "collisions", the patch shifts all subsequent clocks. For example, SDC1_H_CLK shifted from 95 to 96, and GSBI1_H_CLK from 125 to 126. --

commit 41cfc5d6ae5f24f8a2e508765d49af3a6921e1a7
Author: Herman van Hazendonk <[email protected]>

dt-bindings: clock: qcom,gcc-msm8660: collision fixes + per-clock annotations

This commit adds trailing documentation comments to per-clock definitions and attempts to fix perceived ID collisions. However, it alters the numeric values of numerous existing clock definitions.

Quoted 4 lines
include/dt-bindings/clock/qcom,gcc-msm8660.h +0 -0
index 4777c002711a1..354e9d8657b92 100644

[ ... ]

Quoted 5 lines
include/dt-bindings/clock/qcom,gcc-msm8660.h +0 -5
-#define CE1_H_CLK				76
-#define CE2_H_CLK				77
-#define SFPB_H_CLK_SRC				78
-#define SFPB_H_CLK				79
-#define SFAB_SFPB_M_H_CLK			80

[ ... ]

include/dt-bindings/clock/qcom,gcc-msm8660.h line 94

Quoted 6 lines
include/dt-bindings/clock/qcom,gcc-msm8660.h +6 -0
+#define CE1_H_CLK                           76    /* header-only - CE1 (crypto engine 1) AHB */
+#define CE2_H_CLK                           77    /* drv+dt - CE2 AHB */
+#define CE2_P_CLK                           78    /* drv+dt legacy:HTC,Sam,TP - CE2 APB */
+#define SFPB_H_CLK_SRC                      79    /* header-only - SFPB AHB src */
+/* header-only - SFPB (system peripheral bridge) AHB */
+#define SFPB_H_CLK                          80

[Severity: Critical]
Does this cause a regression in DT ABI backwards compatibility by shifting the numeric IDs of existing clock bindings?

It looks like inserting CE2_P_CLK at ID 78 shifts the values of subsequent clocks. Device Tree bindings represent a stable ABI, and changing these IDs means older compiled Device Tree Blobs (DTBs) running on this kernel will request incorrect clocks.

[ ... ]

Quoted 3 lines
include/dt-bindings/clock/qcom,gcc-msm8660.h +0 -3
-#define PMIC_SSBI2_CLK				94
-#define SDC1_H_CLK				95
-#define SDC2_H_CLK				96

[ ... ]

include/dt-bindings/clock/qcom,gcc-msm8660.h line 111

Quoted 3 lines
include/dt-bindings/clock/qcom,gcc-msm8660.h +3 -0
+#define PMIC_SSBI2_CLK                      95    /* drv legacy:HTC,Sam,TP,Pre3 - PMIC SSBI2 */
+#define SDC1_H_CLK                          96    /* drv+dt - eMMC1 AHB */
+#define SDC2_H_CLK                          97    /* drv+dt - eMMC2 AHB */

[Severity: Critical]
Will this shift result in boot failures for older DTBs?

Because SDC1_H_CLK shifted from 95 to 96, a DTB requesting ID 95 will now receive PMIC_SSBI2_CLK instead of SDC1_H_CLK.

When drivers attempt to access hardware registers without the correct clocks enabled, it can trigger synchronous external aborts and system hangs.

Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=1
#2 lore raw

PATCH v2 1/1 dt-bindings: clock: qcom,gcc-msm8660: add CE2_P_CLK, PLL4_VOTE + per-clock annotations

In reply to Herman van Hazendonk

Annotate each clock with provenance and consumer information cross- referenced against the GCC driver, the downstream HTC/Samsung/Palm sources and the legacy TouchPad / Pre3 vendor trees, so reviewers adding new MSM8x60 board DTs can tell at a glance whether a given clock is wired up in the GCC driver, in the device tree, or both.

Add two clocks that the in-tree driver and downstream consumers already use but which were missing from the header:

- CE2_P_CLK (Crypto Engine 2 APB) - needed by drivers/crypto/qce for the MSM8x60 CE2 path that the qcom,msm8660-qce binding adds.
- PLL4_VOTE - software-vote handle for the LPASS PLL4 used by both lcc-msm8660 and the modem subsystem.

Both new IDs are appended at the end of the existing numbering (258 and 259) so that every previously-allocated ID in the header keeps its current value. This preserves DT ABI for any existing DTB compiled against the prior header.

---
 include/dt-bindings/clock/qcom,gcc-msm8660.h | 502 ++++++++++---------
 1 file changed, 264 insertions(+), 238 deletions(-)
include/dt-bindings/clock/qcom,gcc-msm8660.h +264 -238
index 4777c002711a..7d03b16c1b9e 100644
@@ -6,263 +6,289 @@
 #ifndef _DT_BINDINGS_CLK_MSM_GCC_8660_H
 #define _DT_BINDINGS_CLK_MSM_GCC_8660_H
 
-#define AFAB_CLK_SRC				0
-#define AFAB_CORE_CLK				1
-#define SCSS_A_CLK				2
-#define SCSS_H_CLK				3
-#define SCSS_XO_SRC_CLK				4
-#define AFAB_EBI1_CH0_A_CLK			5
-#define AFAB_EBI1_CH1_A_CLK			6
-#define AFAB_AXI_S0_FCLK			7
-#define AFAB_AXI_S1_FCLK			8
-#define AFAB_AXI_S2_FCLK			9
-#define AFAB_AXI_S3_FCLK			10
-#define AFAB_AXI_S4_FCLK			11
-#define SFAB_CORE_CLK				12
-#define SFAB_AXI_S0_FCLK			13
-#define SFAB_AXI_S1_FCLK			14
-#define SFAB_AXI_S2_FCLK			15
-#define SFAB_AXI_S3_FCLK			16
-#define SFAB_AXI_S4_FCLK			17
-#define SFAB_AHB_S0_FCLK			18
-#define SFAB_AHB_S1_FCLK			19
-#define SFAB_AHB_S2_FCLK			20
-#define SFAB_AHB_S3_FCLK			21
-#define SFAB_AHB_S4_FCLK			22
-#define SFAB_AHB_S5_FCLK			23
-#define SFAB_AHB_S6_FCLK			24
-#define SFAB_ADM0_M0_A_CLK			25
-#define SFAB_ADM0_M1_A_CLK			26
-#define SFAB_ADM0_M2_A_CLK			27
+#define AFAB_CLK_SRC                        0       /* header-only - AFAB (app fabric) src */
+#define AFAB_CORE_CLK                       1       /* header-only - AFAB core */
+#define SCSS_A_CLK                          2       /* header-only - Scorpion subsys AFAB */
+#define SCSS_H_CLK                          3       /* header-only - Scorpion subsys AHB */
+#define SCSS_XO_SRC_CLK                     4       /* header-only - Scorpion XO src */
+#define AFAB_EBI1_CH0_A_CLK                 5       /* header-only - AFAB->EBI1 ch0 AFAB */
+#define AFAB_EBI1_CH1_A_CLK                 6       /* header-only - AFAB->EBI1 ch1 AFAB */
+#define AFAB_AXI_S0_FCLK                    7       /* header-only - AFAB AXI slave0 fabric */
+#define AFAB_AXI_S1_FCLK                    8       /* header-only - AFAB AXI slave1 fabric */
+#define AFAB_AXI_S2_FCLK                    9       /* header-only - AFAB AXI slave2 fabric */
+#define AFAB_AXI_S3_FCLK                    10      /* header-only - AFAB AXI slave3 fabric */
+#define AFAB_AXI_S4_FCLK                    11      /* header-only - AFAB AXI slave4 fabric */
+#define SFAB_CORE_CLK                       12      /* header-only - SFAB (system fabric) core */
+#define SFAB_AXI_S0_FCLK                    13      /* header-only - SFAB AXI slave0 fabric */
+#define SFAB_AXI_S1_FCLK                    14      /* header-only - SFAB AXI slave1 fabric */
+#define SFAB_AXI_S2_FCLK                    15      /* header-only - SFAB AXI slave2 fabric */
+#define SFAB_AXI_S3_FCLK                    16      /* header-only - SFAB AXI slave3 fabric */
+#define SFAB_AXI_S4_FCLK                    17      /* header-only - SFAB AXI slave4 fabric */
+#define SFAB_AHB_S0_FCLK                    18      /* header-only - SFAB AHB slave0 fabric */
+#define SFAB_AHB_S1_FCLK                    19      /* header-only - SFAB AHB slave1 fabric */
+#define SFAB_AHB_S2_FCLK                    20      /* header-only - SFAB AHB slave2 fabric */
+#define SFAB_AHB_S3_FCLK                    21      /* header-only - SFAB AHB slave3 fabric */
+#define SFAB_AHB_S4_FCLK                    22      /* header-only - SFAB AHB slave4 fabric */
+#define SFAB_AHB_S5_FCLK                    23      /* header-only - SFAB AHB slave5 fabric */
+#define SFAB_AHB_S6_FCLK                    24      /* header-only - SFAB AHB slave6 fabric */
+#define SFAB_ADM0_M0_A_CLK                  25      /* header-only - SFAB->ADM0 master0 AFAB */
+#define SFAB_ADM0_M1_A_CLK                  26      /* header-only - SFAB->ADM0 master1 AFAB */
+#define SFAB_ADM0_M2_A_CLK                  27      /* header-only - SFAB->ADM0 master2 AFAB */
+/* drv+dt legacy:HTC,Sam,TP,Pre3 - ADM0 (DMA controller) */
 #define ADM0_CLK				28
-#define ADM0_PBUS_CLK				29
-#define SFAB_ADM1_M0_A_CLK			30
-#define SFAB_ADM1_M1_A_CLK			31
-#define SFAB_ADM1_M2_A_CLK			32
-#define MMFAB_ADM1_M3_A_CLK			33
+#define ADM0_PBUS_CLK                       29      /* drv+dt - ADM0 APB */
+#define SFAB_ADM1_M0_A_CLK                  30      /* header-only - SFAB->ADM1 master0 AFAB */
+#define SFAB_ADM1_M1_A_CLK                  31      /* header-only - SFAB->ADM1 master1 AFAB */
+#define SFAB_ADM1_M2_A_CLK                  32      /* header-only - SFAB->ADM1 master2 AFAB */
+#define MMFAB_ADM1_M3_A_CLK                 33      /* header-only - MMFAB->ADM1 master3 AFAB */
+/* drv+dt legacy:HTC,Sam,TP,Pre3 - ADM1 (DMA controller) */
 #define ADM1_CLK				34
-#define ADM1_PBUS_CLK				35
-#define IMEM0_A_CLK				36
-#define MAHB0_CLK				37
-#define SFAB_LPASS_Q6_A_CLK			38
-#define SFAB_AFAB_M_A_CLK			39
-#define AFAB_SFAB_M0_A_CLK			40
-#define AFAB_SFAB_M1_A_CLK			41
-#define DFAB_CLK_SRC				42
-#define DFAB_CLK				43
-#define DFAB_CORE_CLK				44
-#define SFAB_DFAB_M_A_CLK			45
-#define DFAB_SFAB_M_A_CLK			46
-#define DFAB_SWAY0_H_CLK			47
-#define DFAB_SWAY1_H_CLK			48
-#define DFAB_ARB0_H_CLK				49
-#define DFAB_ARB1_H_CLK				50
+#define ADM1_PBUS_CLK                       35      /* drv+dt - ADM1 APB */
+#define IMEM0_A_CLK                         36      /* header-only - IMEM0 AFAB */
+#define MAHB0_CLK                           37      /* header-only - MAHB0 */
+#define SFAB_LPASS_Q6_A_CLK                 38      /* header-only - SFAB LPASS Q6 AFAB */
+#define SFAB_AFAB_M_A_CLK                   39      /* header-only - SFAB->AFAB master AFAB */
+#define AFAB_SFAB_M0_A_CLK                  40      /* header-only - AFAB->SFAB master0 AFAB */
+#define AFAB_SFAB_M1_A_CLK                  41      /* header-only - AFAB->SFAB master1 AFAB */
+#define DFAB_CLK_SRC                        42      /* header-only - DFAB (display fabric) src */
+#define DFAB_CLK                            43      /* legacy:HTC,Sam - DFAB clock */
+#define DFAB_CORE_CLK                       44      /* header-only - DFAB core */
+#define SFAB_DFAB_M_A_CLK                   45      /* header-only - SFAB->DFAB master AFAB */
+#define DFAB_SFAB_M_A_CLK                   46      /* header-only - DFAB->SFAB master AFAB */
+#define DFAB_SWAY0_H_CLK                    47      /* header-only - DFAB sway0 AHB */
+#define DFAB_SWAY1_H_CLK                    48      /* header-only - DFAB sway1 AHB */
+#define DFAB_ARB0_H_CLK                     49      /* header-only - DFAB arb0 AHB */
+#define DFAB_ARB1_H_CLK                     50      /* header-only - DFAB arb1 AHB */
+/* drv+dt - PPSS (peripheral periodic sample subsys) AHB */
 #define PPSS_H_CLK				51
-#define PPSS_PROC_CLK				52
-#define PPSS_TIMER0_CLK				53
-#define PPSS_TIMER1_CLK				54
-#define PMEM_A_CLK				55
-#define DMA_BAM_H_CLK				56
-#define SIC_H_CLK				57
-#define SPS_TIC_H_CLK				58
-#define SLIMBUS_H_CLK				59
-#define SLIMBUS_XO_SRC_CLK			60
-#define CFPB_2X_CLK_SRC				61
+#define PPSS_PROC_CLK                       52      /* header-only - PPSS CPU */
+#define PPSS_TIMER0_CLK                     53      /* header-only - PPSS timer0 */
+#define PPSS_TIMER1_CLK                     54      /* header-only - PPSS timer1 */
+#define PMEM_A_CLK                          55      /* header-only - PMEM AFAB */
+#define DMA_BAM_H_CLK                       56      /* header-only - DMA BAM AHB */
+#define SIC_H_CLK                           57      /* header-only - SIC AHB */
+#define SPS_TIC_H_CLK                       58      /* header-only - SPS TIC AHB */
+#define SLIMBUS_H_CLK                       59      /* header-only - SLIMbus AHB */
+#define SLIMBUS_XO_SRC_CLK                  60      /* header-only - SLIMbus XO src */
+#define CFPB_2X_CLK_SRC                     61      /* header-only - CFPB 2x src */
+/* legacy:HTC,Sam,TP - CFPB (config peripheral bridge) */
 #define CFPB_CLK				62
-#define CFPB0_H_CLK				63
-#define CFPB1_H_CLK				64
-#define CFPB2_H_CLK				65
-#define EBI2_2X_CLK				66
-#define EBI2_CLK				67
-#define SFAB_CFPB_M_H_CLK			68
-#define CFPB_MASTER_H_CLK			69
-#define SFAB_CFPB_S_HCLK			70
-#define CFPB_SPLITTER_H_CLK			71
-#define TSIF_H_CLK				72
-#define TSIF_INACTIVITY_TIMERS_CLK		73
-#define TSIF_REF_SRC				74
-#define TSIF_REF_CLK				75
-#define CE1_H_CLK				76
-#define CE2_H_CLK				77
-#define SFPB_H_CLK_SRC				78
+#define CFPB0_H_CLK                         63      /* header-only - CFPB0 AHB */
+#define CFPB1_H_CLK                         64      /* header-only - CFPB1 AHB */
+#define CFPB2_H_CLK                         65      /* header-only - CFPB2 AHB */
+#define EBI2_2X_CLK                         66      /* drv+dt legacy:HTC,Sam - EBI2 (NAND) 2x */
+#define EBI2_CLK                            67      /* drv+dt legacy:HTC,Sam - EBI2 (NAND) */
+#define SFAB_CFPB_M_H_CLK                   68      /* header-only - SFAB->CFPB master AHB */
+#define CFPB_MASTER_H_CLK                   69      /* header-only - CFPB master AHB */
+#define SFAB_CFPB_S_HCLK                    70      /* header-only - SFAB->CFPB slave AHB */
+#define CFPB_SPLITTER_H_CLK                 71      /* header-only - CFPB splitter AHB */
+#define TSIF_H_CLK                          72      /* drv - TSIF AHB */
+#define TSIF_INACTIVITY_TIMERS_CLK          73      /* header-only - TSIF inactivity timer */
+#define TSIF_REF_SRC                        74      /* drv legacy:TP,Pre3 - TSIF ref src */
+#define TSIF_REF_CLK                        75      /* drv legacy:HTC,Sam,TP,Pre3 - TSIF ref */
+#define CE1_H_CLK                           76      /* header-only - CE1 (crypto engine 1) AHB */
+#define CE2_H_CLK                           77      /* drv+dt - CE2 AHB */
+#define SFPB_H_CLK_SRC                      78      /* header-only - SFPB AHB src */
+/* header-only - SFPB (system peripheral bridge) AHB */
 #define SFPB_H_CLK				79
-#define SFAB_SFPB_M_H_CLK			80
-#define SFAB_SFPB_S_H_CLK			81
-#define RPM_PROC_CLK				82
-#define RPM_BUS_H_CLK				83
-#define RPM_SLEEP_CLK				84
-#define RPM_TIMER_CLK				85
-#define MODEM_AHB1_H_CLK			86
-#define MODEM_AHB2_H_CLK			87
-#define RPM_MSG_RAM_H_CLK			88
-#define SC_H_CLK				89
-#define SC_A_CLK				90
-#define PMIC_ARB0_H_CLK				91
-#define PMIC_ARB1_H_CLK				92
-#define PMIC_SSBI2_SRC				93
-#define PMIC_SSBI2_CLK				94
-#define SDC1_H_CLK				95
-#define SDC2_H_CLK				96
-#define SDC3_H_CLK				97
-#define SDC4_H_CLK				98
-#define SDC5_H_CLK				99
-#define SDC1_SRC				100
-#define SDC2_SRC				101
-#define SDC3_SRC				102
-#define SDC4_SRC				103
-#define SDC5_SRC				104
-#define SDC1_CLK				105
-#define SDC2_CLK				106
-#define SDC3_CLK				107
-#define SDC4_CLK				108
-#define SDC5_CLK				109
-#define USB_HS1_H_CLK				110
-#define USB_HS1_XCVR_SRC			111
-#define USB_HS1_XCVR_CLK			112
-#define USB_HS2_H_CLK				113
-#define USB_HS2_XCVR_SRC			114
-#define USB_HS2_XCVR_CLK			115
-#define USB_FS1_H_CLK				116
-#define USB_FS1_XCVR_FS_SRC			117
-#define USB_FS1_XCVR_FS_CLK			118
-#define USB_FS1_SYSTEM_CLK			119
-#define USB_FS2_H_CLK				120
-#define USB_FS2_XCVR_FS_SRC			121
-#define USB_FS2_XCVR_FS_CLK			122
-#define USB_FS2_SYSTEM_CLK			123
-#define GSBI_COMMON_SIM_SRC			124
-#define GSBI1_H_CLK				125
-#define GSBI2_H_CLK				126
-#define GSBI3_H_CLK				127
-#define GSBI4_H_CLK				128
-#define GSBI5_H_CLK				129
-#define GSBI6_H_CLK				130
-#define GSBI7_H_CLK				131
-#define GSBI8_H_CLK				132
-#define GSBI9_H_CLK				133
-#define GSBI10_H_CLK				134
-#define GSBI11_H_CLK				135
-#define GSBI12_H_CLK				136
-#define GSBI1_UART_SRC				137
-#define GSBI1_UART_CLK				138
-#define GSBI2_UART_SRC				139
-#define GSBI2_UART_CLK				140
-#define GSBI3_UART_SRC				141
-#define GSBI3_UART_CLK				142
-#define GSBI4_UART_SRC				143
-#define GSBI4_UART_CLK				144
-#define GSBI5_UART_SRC				145
-#define GSBI5_UART_CLK				146
-#define GSBI6_UART_SRC				147
-#define GSBI6_UART_CLK				148
-#define GSBI7_UART_SRC				149
-#define GSBI7_UART_CLK				150
-#define GSBI8_UART_SRC				151
-#define GSBI8_UART_CLK				152
-#define GSBI9_UART_SRC				153
-#define GSBI9_UART_CLK				154
-#define GSBI10_UART_SRC				155
-#define GSBI10_UART_CLK				156
-#define GSBI11_UART_SRC				157
-#define GSBI11_UART_CLK				158
-#define GSBI12_UART_SRC				159
-#define GSBI12_UART_CLK				160
-#define GSBI1_QUP_SRC				161
+#define SFAB_SFPB_M_H_CLK                   80      /* header-only - SFAB->SFPB master AHB */
+#define SFAB_SFPB_S_H_CLK                   81      /* header-only - SFAB->SFPB slave AHB */
+#define RPM_PROC_CLK                        82      /* header-only - RPM CPU */
+#define RPM_BUS_H_CLK                       83      /* header-only - RPM bus AHB */
+#define RPM_SLEEP_CLK                       84      /* header-only - RPM sleep */
+#define RPM_TIMER_CLK                       85      /* header-only - RPM timer */
+#define MODEM_AHB1_H_CLK                    86      /* drv - modem AHB1 bridge */
+#define MODEM_AHB2_H_CLK                    87      /* drv - modem AHB2 bridge */
+#define RPM_MSG_RAM_H_CLK                   88      /* drv+dt - RPM msg-ram AHB */
+#define SC_H_CLK                            89      /* header-only - SC AHB */
+#define SC_A_CLK                            90      /* header-only - SC AFAB */
+#define PMIC_ARB0_H_CLK                     91      /* drv - PMIC SSBI arb0 AHB */
+#define PMIC_ARB1_H_CLK                     92      /* drv - PMIC SSBI arb1 AHB */
+#define PMIC_SSBI2_SRC                      93      /* legacy:TP,Pre3 - PMIC SSBI2 src */
+#define PMIC_SSBI2_CLK                      94      /* drv legacy:HTC,Sam,TP,Pre3 - PMIC SSBI2 */
+#define SDC1_H_CLK                          95      /* drv+dt - eMMC1 AHB */
+#define SDC2_H_CLK                          96      /* drv+dt - eMMC2 AHB */
+#define SDC3_H_CLK                          97      /* drv+dt - eMMC3 AHB */
+#define SDC4_H_CLK                          98      /* drv+dt - eMMC4 AHB */
+#define SDC5_H_CLK                          99      /* drv+dt - eMMC5 AHB */
+#define SDC1_SRC                            100     /* drv legacy:TP,Pre3 - eMMC1 src */
+#define SDC2_SRC                            101     /* drv legacy:TP,Pre3 - eMMC2 src */
+#define SDC3_SRC                            102     /* drv legacy:TP,Pre3 - eMMC3 src */
+#define SDC4_SRC                            103     /* drv legacy:TP,Pre3 - eMMC4 src */
+#define SDC5_SRC                            104     /* drv legacy:TP,Pre3 - eMMC5 src */
+#define SDC1_CLK                            105     /* drv+dt legacy:HTC,Sam,TP,Pre3 - eMMC1 data */
+#define SDC2_CLK                            106     /* drv+dt legacy:HTC,Sam,TP,Pre3 - eMMC2 data */
+#define SDC3_CLK                            107     /* drv+dt legacy:HTC,Sam,TP,Pre3 - eMMC3 data */
+#define SDC4_CLK                            108     /* drv+dt legacy:HTC,Sam,TP,Pre3 - eMMC4 data */
+#define SDC5_CLK                            109     /* drv+dt legacy:HTC,Sam,TP,Pre3 - eMMC5 data */
+#define USB_HS1_H_CLK                       110     /* drv+dt - USB HS1 AHB */
+#define USB_HS1_XCVR_SRC                    111     /* drv legacy:TP - USB HS1 xcvr src */
+#define USB_HS1_XCVR_CLK                    112     /* drv+dt legacy:HTC,Sam,TP - USB HS1 xcvr */
+#define USB_HS2_H_CLK                       113     /* header-only - USB HS2 AHB */
+#define USB_HS2_XCVR_SRC                    114     /* header-only - USB HS2 xcvr src */
+#define USB_HS2_XCVR_CLK                    115     /* header-only - USB HS2 xcvr */
+#define USB_FS1_H_CLK                       116     /* drv - USB FS1 AHB */
+#define USB_FS1_XCVR_FS_SRC                 117     /* drv - USB FS1 xcvr src */
+#define USB_FS1_XCVR_FS_CLK                 118     /* drv - USB FS1 xcvr */
+#define USB_FS1_SYSTEM_CLK                  119     /* drv - USB FS1 system */
+#define USB_FS2_H_CLK                       120     /* drv - USB FS2 AHB */
+#define USB_FS2_XCVR_FS_SRC                 121     /* drv - USB FS2 xcvr src */
+#define USB_FS2_XCVR_FS_CLK                 122     /* drv - USB FS2 xcvr */
+#define USB_FS2_SYSTEM_CLK                  123     /* drv - USB FS2 system */
+#define GSBI_COMMON_SIM_SRC                 124     /* header-only - GSBI SIM common src */
+#define GSBI1_H_CLK                         125     /* drv+dt - GSBI1 AHB */
+#define GSBI2_H_CLK                         126     /* drv+dt - GSBI2 AHB */
+#define GSBI3_H_CLK                         127     /* drv+dt - GSBI3 AHB */
+#define GSBI4_H_CLK                         128     /* drv+dt - GSBI4 AHB */
+#define GSBI5_H_CLK                         129     /* drv+dt - GSBI5 AHB */
+#define GSBI6_H_CLK                         130     /* drv+dt - GSBI6 AHB */
+#define GSBI7_H_CLK                         131     /* drv+dt - GSBI7 AHB */
+#define GSBI8_H_CLK                         132     /* drv+dt - GSBI8 AHB */
+#define GSBI9_H_CLK                         133     /* drv - GSBI9 AHB */
+#define GSBI10_H_CLK                        134     /* drv+dt - GSBI10 AHB */
+#define GSBI11_H_CLK                        135     /* drv - GSBI11 AHB */
+#define GSBI12_H_CLK                        136     /* drv+dt - GSBI12 AHB */
+#define GSBI1_UART_SRC                      137     /* drv legacy:TP,Pre3 - GSBI1 UART src */
+#define GSBI1_UART_CLK                      138     /* drv+dt legacy:HTC,Sam,TP,Pre3 - GSBI1 UART */
+#define GSBI2_UART_SRC                      139     /* drv legacy:TP,Pre3 - GSBI2 UART src */
+#define GSBI2_UART_CLK                      140     /* drv+dt legacy:HTC,Sam,TP,Pre3 - GSBI2 UART */
+#define GSBI3_UART_SRC                      141     /* drv legacy:TP,Pre3 - GSBI3 UART src */
+#define GSBI3_UART_CLK                      142     /* drv legacy:HTC,Sam,TP,Pre3 - GSBI3 UART */
+#define GSBI4_UART_SRC                      143     /* drv legacy:TP,Pre3 - GSBI4 UART src */
+#define GSBI4_UART_CLK                      144     /* drv+dt legacy:HTC,Sam,TP,Pre3 - GSBI4 UART */
+#define GSBI5_UART_SRC                      145     /* drv legacy:TP,Pre3 - GSBI5 UART src */
+#define GSBI5_UART_CLK                      146     /* drv+dt legacy:HTC,Sam,TP,Pre3 - GSBI5 UART */
+#define GSBI6_UART_SRC                      147     /* drv legacy:TP,Pre3 - GSBI6 UART src */
+#define GSBI6_UART_CLK                      148     /* drv+dt legacy:HTC,Sam,TP,Pre3 - GSBI6 UART */
+#define GSBI7_UART_SRC                      149     /* drv legacy:TP,Pre3 - GSBI7 UART src */
+#define GSBI7_UART_CLK                      150     /* drv+dt legacy:HTC,Sam,TP,Pre3 - GSBI7 UART */
+#define GSBI8_UART_SRC                      151     /* drv legacy:TP,Pre3 - GSBI8 UART src */
+#define GSBI8_UART_CLK                      152     /* drv+dt legacy:HTC,Sam,TP,Pre3 - GSBI8 UART */
+#define GSBI9_UART_SRC                      153     /* drv legacy:TP,Pre3 - GSBI9 UART src */
+#define GSBI9_UART_CLK                      154     /* drv legacy:HTC,Sam,TP,Pre3 - GSBI9 UART */
+#define GSBI10_UART_SRC                     155     /* drv legacy:TP,Pre3 - GSBI10 UART src */
+#define GSBI10_UART_CLK                     156     /* drv+dt legacy:HTC,Sam,TP,Pre3 - GSBI10 UART */
+#define GSBI11_UART_SRC                     157     /* drv legacy:TP,Pre3 - GSBI11 UART src */
+#define GSBI11_UART_CLK                     158     /* drv legacy:HTC,Sam,TP,Pre3 - GSBI11 UART */
+#define GSBI12_UART_SRC                     159     /* drv legacy:TP,Pre3 - GSBI12 UART src */
+#define GSBI12_UART_CLK                     160     /* drv+dt legacy:HTC,Sam,TP,Pre3 - GSBI12 UART */
+#define GSBI1_QUP_SRC                       161     /* drv legacy:TP,Pre3 - GSBI1 QUP src */
+/* drv+dt legacy:HTC,Sam,TP,Pre3 - GSBI1 QUP (SPI/I2C) */
 #define GSBI1_QUP_CLK				162
-#define GSBI2_QUP_SRC				163
+#define GSBI2_QUP_SRC                       163     /* drv legacy:TP,Pre3 - GSBI2 QUP src */
+/* drv+dt legacy:HTC,Sam,TP,Pre3 - GSBI2 QUP (SPI/I2C) */
 #define GSBI2_QUP_CLK				164
-#define GSBI3_QUP_SRC				165
+#define GSBI3_QUP_SRC                       165     /* drv legacy:TP,Pre3 - GSBI3 QUP src */
+/* drv+dt legacy:HTC,Sam,TP,Pre3 - GSBI3 QUP (SPI/I2C) */
 #define GSBI3_QUP_CLK				166
-#define GSBI4_QUP_SRC				167
+#define GSBI4_QUP_SRC                       167     /* drv legacy:TP,Pre3 - GSBI4 QUP src */
+/* drv+dt legacy:HTC,Sam,TP,Pre3 - GSBI4 QUP (SPI/I2C) */
 #define GSBI4_QUP_CLK				168
-#define GSBI5_QUP_SRC				169
+#define GSBI5_QUP_SRC                       169     /* drv legacy:TP,Pre3 - GSBI5 QUP src */
+/* drv+dt legacy:HTC,Sam,TP,Pre3 - GSBI5 QUP (SPI/I2C) */
 #define GSBI5_QUP_CLK				170
-#define GSBI6_QUP_SRC				171
+#define GSBI6_QUP_SRC                       171     /* drv legacy:TP,Pre3 - GSBI6 QUP src */
+/* drv+dt legacy:HTC,Sam,TP,Pre3 - GSBI6 QUP (SPI/I2C) */
 #define GSBI6_QUP_CLK				172
-#define GSBI7_QUP_SRC				173
+#define GSBI7_QUP_SRC                       173     /* drv legacy:TP,Pre3 - GSBI7 QUP src */
+/* drv+dt legacy:HTC,Sam,TP,Pre3 - GSBI7 QUP (SPI/I2C) */
 #define GSBI7_QUP_CLK				174
-#define GSBI8_QUP_SRC				175
+#define GSBI8_QUP_SRC                       175     /* drv legacy:TP,Pre3 - GSBI8 QUP src */
+/* drv+dt legacy:HTC,Sam,TP,Pre3 - GSBI8 QUP (SPI/I2C) */
 #define GSBI8_QUP_CLK				176
-#define GSBI9_QUP_SRC				177
+#define GSBI9_QUP_SRC                       177     /* drv legacy:TP,Pre3 - GSBI9 QUP src */
+/* drv legacy:HTC,Sam,TP,Pre3 - GSBI9 QUP (SPI/I2C) */
 #define GSBI9_QUP_CLK				178
-#define GSBI10_QUP_SRC				179
+#define GSBI10_QUP_SRC                      179     /* drv legacy:TP,Pre3 - GSBI10 QUP src */
+/* drv+dt legacy:HTC,Sam,TP,Pre3 - GSBI10 QUP (SPI/I2C) */
 #define GSBI10_QUP_CLK				180
-#define GSBI11_QUP_SRC				181
+#define GSBI11_QUP_SRC                      181     /* drv legacy:TP,Pre3 - GSBI11 QUP src */
+/* drv legacy:HTC,Sam,TP,Pre3 - GSBI11 QUP (SPI/I2C) */
 #define GSBI11_QUP_CLK				182
-#define GSBI12_QUP_SRC				183
+#define GSBI12_QUP_SRC                      183     /* drv legacy:TP,Pre3 - GSBI12 QUP src */
+/* drv+dt legacy:HTC,Sam,TP,Pre3 - GSBI12 QUP (SPI/I2C) */
 #define GSBI12_QUP_CLK				184
-#define GSBI1_SIM_CLK				185
-#define GSBI2_SIM_CLK				186
-#define GSBI3_SIM_CLK				187
-#define GSBI4_SIM_CLK				188
-#define GSBI5_SIM_CLK				189
-#define GSBI6_SIM_CLK				190
-#define GSBI7_SIM_CLK				191
-#define GSBI8_SIM_CLK				192
-#define GSBI9_SIM_CLK				193
-#define GSBI10_SIM_CLK				194
-#define GSBI11_SIM_CLK				195
-#define GSBI12_SIM_CLK				196
-#define SPDM_CFG_H_CLK				197
-#define SPDM_MSTR_H_CLK				198
-#define SPDM_FF_CLK_SRC				199
-#define SPDM_FF_CLK				200
-#define SEC_CTRL_CLK				201
-#define SEC_CTRL_ACC_CLK_SRC			202
-#define SEC_CTRL_ACC_CLK			203
-#define TLMM_H_CLK				204
-#define TLMM_CLK				205
-#define MARM_CLK_SRC				206
-#define MARM_CLK				207
-#define MAHB1_SRC				208
-#define MAHB1_CLK				209
-#define SFAB_MSS_S_H_CLK			210
-#define MAHB2_SRC				211
-#define MAHB2_CLK				212
-#define MSS_MODEM_CLK_SRC			213
-#define MSS_MODEM_CXO_CLK			214
-#define MSS_SLP_CLK				215
-#define MSS_SYS_REF_CLK				216
-#define TSSC_CLK_SRC				217
+#define GSBI1_SIM_CLK                       185     /* legacy:Pre3 - GSBI1 SIM */
+#define GSBI2_SIM_CLK                       186     /* legacy:Pre3 - GSBI2 SIM */
+#define GSBI3_SIM_CLK                       187     /* legacy:Pre3 - GSBI3 SIM */
+#define GSBI4_SIM_CLK                       188     /* legacy:Pre3 - GSBI4 SIM */
+#define GSBI5_SIM_CLK                       189     /* legacy:Pre3 - GSBI5 SIM */
+#define GSBI6_SIM_CLK                       190     /* legacy:Pre3 - GSBI6 SIM */
+#define GSBI7_SIM_CLK                       191     /* legacy:Pre3 - GSBI7 SIM */
+#define GSBI8_SIM_CLK                       192     /* legacy:Pre3 - GSBI8 SIM */
+#define GSBI9_SIM_CLK                       193     /* legacy:Pre3 - GSBI9 SIM */
+#define GSBI10_SIM_CLK                      194     /* legacy:Pre3 - GSBI10 SIM */
+#define GSBI11_SIM_CLK                      195     /* legacy:Pre3 - GSBI11 SIM */
+#define GSBI12_SIM_CLK                      196     /* legacy:Pre3 - GSBI12 SIM */
+#define SPDM_CFG_H_CLK                      197     /* header-only - SPDM cfg AHB */
+#define SPDM_MSTR_H_CLK                     198     /* header-only - SPDM master AHB */
+#define SPDM_FF_CLK_SRC                     199     /* header-only - SPDM FF src */
+#define SPDM_FF_CLK                         200     /* header-only - SPDM FF */
+#define SEC_CTRL_CLK                        201     /* header-only - security ctrl */
+#define SEC_CTRL_ACC_CLK_SRC                202     /* header-only - security ctrl accel src */
+#define SEC_CTRL_ACC_CLK                    203     /* header-only - security ctrl accel */
+#define TLMM_H_CLK                          204     /* header-only - TLMM (pinctrl) AHB */
+#define TLMM_CLK                            205     /* header-only - TLMM (pinctrl) */
+#define MARM_CLK_SRC                        206     /* header-only - modem ARM CPU src */
+#define MARM_CLK                            207     /* header-only - modem ARM CPU */
+#define MAHB1_SRC                           208     /* header-only - modem AHB1 src */
+#define MAHB1_CLK                           209     /* header-only - modem AHB1 */
+#define SFAB_MSS_S_H_CLK                    210     /* header-only - SFAB->modem subsys slave AHB */
+#define MAHB2_SRC                           211     /* header-only - modem AHB2 src */
+#define MAHB2_CLK                           212     /* header-only - modem AHB2 */
+#define MSS_MODEM_CLK_SRC                   213     /* header-only - modem clk src */
+#define MSS_MODEM_CXO_CLK                   214     /* header-only - modem CXO */
+#define MSS_SLP_CLK                         215     /* header-only - modem sleep */
+#define MSS_SYS_REF_CLK                     216     /* header-only - modem sys ref */
+#define TSSC_CLK_SRC                        217     /* drv - TSSC src */
+/* drv legacy:HTC,Sam,TP,Pre3 - TSSC (touchscreen ctrl) */
 #define TSSC_CLK				218
-#define PDM_SRC					219
+#define PDM_SRC                             219     /* drv legacy:HTC,Sam,TP,Pre3 - PDM src */
+/* drv legacy:HTC,Sam,TP,Pre3 - PDM (pulse density modulator) */
 #define PDM_CLK					220
-#define GP0_SRC					221
-#define GP0_CLK					222
-#define GP1_SRC					223
-#define GP1_CLK					224
-#define GP2_SRC					225
-#define GP2_CLK					226
+#define GP0_SRC                             221     /* drv - GP0 (general purpose) src */
+#define GP0_CLK                             222     /* drv legacy:HTC,Sam - GP0 */
+#define GP1_SRC                             223     /* drv - GP1 src */
+#define GP1_CLK                             224     /* drv legacy:HTC,Sam - GP1 */
+#define GP2_SRC                             225     /* drv - GP2 src */
+#define GP2_CLK                             226     /* drv legacy:HTC,Sam - GP2 */
+/* drv+dt legacy:HTC,Sam,TP - PMEM (protected mem) */
 #define PMEM_CLK				227
-#define MPM_CLK					228
-#define EBI1_ASFAB_SRC				229
-#define EBI1_CLK_SRC				230
-#define EBI1_CH0_CLK				231
-#define EBI1_CH1_CLK				232
-#define SFAB_SMPSS_S_H_CLK			233
-#define PRNG_SRC				234
-#define PRNG_CLK				235
-#define PXO_SRC					236
-#define LPASS_CXO_CLK				237
-#define LPASS_PXO_CLK				238
-#define SPDM_CY_PORT0_CLK			239
-#define SPDM_CY_PORT1_CLK			240
-#define SPDM_CY_PORT2_CLK			241
-#define SPDM_CY_PORT3_CLK			242
-#define SPDM_CY_PORT4_CLK			243
-#define SPDM_CY_PORT5_CLK			244
-#define SPDM_CY_PORT6_CLK			245
-#define SPDM_CY_PORT7_CLK			246
-#define PLL0					247
-#define PLL0_VOTE				248
-#define PLL5					249
-#define PLL6					250
-#define PLL6_VOTE				251
-#define PLL8					252
-#define PLL8_VOTE				253
-#define PLL9					254
-#define PLL10					255
-#define PLL11					256
-#define PLL12					257
+#define MPM_CLK                             228     /* header-only - MPM (mode/power mgr) */
+#define EBI1_ASFAB_SRC                      229     /* header-only - EBI1 AFAB src */
+#define EBI1_CLK_SRC                        230     /* header-only - EBI1 (DDR) src */
+#define EBI1_CH0_CLK                        231     /* header-only - EBI1 ch0 */
+#define EBI1_CH1_CLK                        232     /* header-only - EBI1 ch1 */
+#define SFAB_SMPSS_S_H_CLK                  233     /* header-only - SFAB->SMPSS slave AHB */
+#define PRNG_SRC                            234     /* drv legacy:TP,Pre3 - PRNG src */
+#define PRNG_CLK                            235     /* drv+dt legacy:HTC,Sam,TP,Pre3 - PRNG (RNG) */
+#define PXO_SRC                             236     /* legacy:HTC,Sam,TP,Pre3 - PXO src */
+#define LPASS_CXO_CLK                       237     /* header-only - LPASS CXO */
+#define LPASS_PXO_CLK                       238     /* header-only - LPASS PXO */
+#define SPDM_CY_PORT0_CLK                   239     /* header-only - SPDM cycle port0 */
+#define SPDM_CY_PORT1_CLK                   240     /* header-only - SPDM cycle port1 */
+#define SPDM_CY_PORT2_CLK                   241     /* header-only - SPDM cycle port2 */
+#define SPDM_CY_PORT3_CLK                   242     /* header-only - SPDM cycle port3 */
+#define SPDM_CY_PORT4_CLK                   243     /* header-only - SPDM cycle port4 */
+#define SPDM_CY_PORT5_CLK                   244     /* header-only - SPDM cycle port5 */
+#define SPDM_CY_PORT6_CLK                   245     /* header-only - SPDM cycle port6 */
+#define SPDM_CY_PORT7_CLK                   246     /* header-only - SPDM cycle port7 */
+#define PLL0                                247     /* legacy:Pre3 - PLL0 */
+#define PLL0_VOTE                           248     /* header-only - PLL0 voter */
+#define PLL5                                249     /* header-only - PLL5 */
+#define PLL6                                250     /* header-only - PLL6 (mm/lpass shared) */
+#define PLL6_VOTE                           251     /* header-only - PLL6 voter */
+#define PLL8                                252     /* drv legacy:HTC,Sam,Pre3 - PLL8 (main 384MHz) */
+#define PLL8_VOTE                           253     /* header-only - PLL8 voter */
+#define PLL9                                254     /* header-only - PLL9 (Scorpion CPU0) */
+#define PLL10                               255     /* header-only - PLL10 (Scorpion CPU1) */
+#define PLL11                               256     /* header-only - PLL11 (Scorpion L2) */
+#define PLL12                               257     /* header-only - PLL12 (DDR) */
+
+/* New clock IDs added in this cleanup. Append-only — never insert in the
+ * middle of the existing numbering, since that would shift IDs of
+ * earlier entries and break DT ABI for boards already using them. */
+#define CE2_P_CLK                           258     /* drv+dt legacy:HTC,Sam,TP - CE2 APB (newly assigned, was missing) */
+#define PLL4_VOTE                           259     /* drv legacy - PLL4 software vote */
 
 #endif
Signature · 1 line
2.43.0
#3 lore raw

Re: [PATCH v2] dt-bindings: clock: qcom,gcc-msm8660: add CE2_P_CLK, PLL4_VOTE + per-clock annotations

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: - [High] The commit adds new clock IDs `CE2_P_CLK` (258) and `PLL4_VOTE` (259) to the device tree bindings…

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] The commit adds new clock IDs CE2_P_CLK (258) and PLL4_VOTE (259) to the device tree bindings header, but fails to update or pad the corresponding clock provider array (gcc_msm8660_clks) in the driver. Because the array is sized automatically by its designated initializers (with the maximum explicitly initialized index being PLL8_VOTE = 253), ARRAY_SIZE(gcc_msm8660_clks) evaluates to 254. When consumers request the newly added clocks via the device tree, the request will be deterministically rejected with -EINVAL by qcom_cc_clk_hw_get() because the requested index (258 or 259) is out of bounds (>= 254), leading to probe failures for dependent drivers like qce. --

commit e7b40c3edcde948b05e3c3366897a0d2ad0b785e
Author: Herman van Hazendonk <[email protected]>

dt-bindings: clock: qcom,gcc-msm8660: add CE2_P_CLK, PLL4_VOTE + per-clock annotations

This commit annotates each clock with provenance and consumer information cross-referenced against various sources. It also appends two clocks, CE2_P_CLK and PLL4_VOTE, which are needed by downstream consumers but were missing from the header.

Quoted 4 lines
include/dt-bindings/clock/qcom,gcc-msm8660.h +0 -0
index 4777c002711a1..7d03b16c1b9e4 100644

[ ... ]

include/dt-bindings/clock/qcom,gcc-msm8660.h line 292

Quoted 10 lines
include/dt-bindings/clock/qcom,gcc-msm8660.h +8 -2
-#define PLL11					256
-#define PLL12					257
+#define PLL11                               256     /* header-only - PLL11 (Scorpion L2) */
+#define PLL12                               257     /* header-only - PLL12 (DDR) */
+
+/* New clock IDs added in this cleanup. Append-only — never insert in the
+ * middle of the existing numbering, since that would shift IDs of
+ * earlier entries and break DT ABI for boards already using them. */
+#define CE2_P_CLK                           258     /* drv+dt legacy:HTC,Sam,TP - CE2 APB (newly assigned, was missing) */
+#define PLL4_VOTE                           259     /* drv legacy - PLL4 software vote */

[Severity: High]
Does adding these new clock IDs at 258 and 259 exceed the array bounds of the driver's clock provider array?

In drivers/clk/qcom/gcc-msm8660.c, the gcc_msm8660_clks[] array is populated using designated initializers, with the highest explicitly initialized index being PLL8_VOTE (253).

Since the array size isn't padded to cover the new indices, ARRAY_SIZE(gcc_msm8660_clks) evaluates to 254.

When consumers request these newly added clocks via the device tree, will qcom_cc_clk_hw_get() reject them with -EINVAL because the requested index (258 or 259) is out of bounds (>= 254)?

Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/c36dcf40802d89a4b43255394386fff974a6301c.1780197117.git.github.com@herrie.org?part=1
#4 lore raw

Re: [PATCH v2] dt-bindings: clock: qcom,gcc-msm8660: add CE2_P_CLK, PLL4_VOTE + per-clock annotations

In reply to Herman van Hazendonk
Quoted 5 lines · Herman van Hazendonk

Annotate each clock with provenance and consumer information cross- referenced against the GCC driver, the downstream HTC/Samsung/Palm sources and the legacy TouchPad / Pre3 vendor trees, so reviewers adding new MSM8x60 board DTs can tell at a glance whether a given clock is wired up in the GCC driver, in the device tree, or both.

I don't understand what problem you are solving. ABI is fixed, you cannot change it. This document does not describe usage, but ABI with clock IDs.

I suggest to start commit msg with clear description of existing problem.

Quoted 8 lines

Add two clocks that the in-tree driver and downstream consumers already use but which were missing from the header:

- CE2_P_CLK (Crypto Engine 2 APB) - needed by drivers/crypto/qce for the MSM8x60 CE2 path that the qcom,msm8660-qce binding adds.
- PLL4_VOTE - software-vote handle for the LPASS PLL4 used by both lcc-msm8660 and the modem subsystem.

Don't mix up completely independent work.

Best regards,
Krzysztof

#5 lore raw

Re: [PATCH v2] dt-bindings: clock: qcom,gcc-msm8660: add CE2_P_CLK, PLL4_VOTE + per-clock annotations

In reply to Herman van Hazendonk
Quoted 14 lines · Herman van Hazendonk

Annotate each clock with provenance and consumer information cross- referenced against the GCC driver, the downstream HTC/Samsung/Palm sources and the legacy TouchPad / Pre3 vendor trees, so reviewers adding new MSM8x60 board DTs can tell at a glance whether a given clock is wired up in the GCC driver, in the device tree, or both.

Add two clocks that the in-tree driver and downstream consumers already use but which were missing from the header:

- CE2_P_CLK (Crypto Engine 2 APB) - needed by drivers/crypto/qce for the MSM8x60 CE2 path that the qcom,msm8660-qce binding adds.
- PLL4_VOTE - software-vote handle for the LPASS PLL4 used by both lcc-msm8660 and the modem subsystem.

Quoted 4 lines

Both new IDs are appended at the end of the existing numbering (258 and 259) so that every previously-allocated ID in the header keeps its current value. This preserves DT ABI for any existing DTB compiled against the prior header.

Is this claude talking?

If not, while this is indeed true, it's something implicit and definitely not adding value in an individual platform's header..

Konrad