Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

clk: sunxi-ng: h6-r: Add R_APB2_RSB clock and reset

While no information about the H6 RSB controller is included in the
datasheet or manual, the vendor BSP and power management blob both
reference the RSB clock parent and register address. These values were
verified by experimentation.

Since this clock/reset are added late, the specifier is added at the end
to maintain the existing DT binding. The code is kept in register order.

Signed-off-by: Samuel Holland <samuel@sholland.org>
Acked-by: Maxime Ripard <mripard@kernel.org>
Signed-off-by: Chen-Yu Tsai <wens@csie.org>

authored by

Samuel Holland and committed by
Chen-Yu Tsai
0482a4e6 5c8fe583

+9 -1
+5
drivers/clk/sunxi-ng/ccu-sun50i-h6-r.c
··· 91 91 0x18c, BIT(0), 0); 92 92 static SUNXI_CCU_GATE(r_apb2_i2c_clk, "r-apb2-i2c", "r-apb2", 93 93 0x19c, BIT(0), 0); 94 + static SUNXI_CCU_GATE(r_apb2_rsb_clk, "r-apb2-rsb", "r-apb2", 95 + 0x1bc, BIT(0), 0); 94 96 static SUNXI_CCU_GATE(r_apb1_ir_clk, "r-apb1-ir", "r-apb1", 95 97 0x1cc, BIT(0), 0); 96 98 static SUNXI_CCU_GATE(r_apb1_w1_clk, "r-apb1-w1", "r-apb1", ··· 132 130 &r_apb1_pwm_clk.common, 133 131 &r_apb2_uart_clk.common, 134 132 &r_apb2_i2c_clk.common, 133 + &r_apb2_rsb_clk.common, 135 134 &r_apb1_ir_clk.common, 136 135 &r_apb1_w1_clk.common, 137 136 &ir_clk.common, ··· 150 147 [CLK_R_APB1_PWM] = &r_apb1_pwm_clk.common.hw, 151 148 [CLK_R_APB2_UART] = &r_apb2_uart_clk.common.hw, 152 149 [CLK_R_APB2_I2C] = &r_apb2_i2c_clk.common.hw, 150 + [CLK_R_APB2_RSB] = &r_apb2_rsb_clk.common.hw, 153 151 [CLK_R_APB1_IR] = &r_apb1_ir_clk.common.hw, 154 152 [CLK_R_APB1_W1] = &r_apb1_w1_clk.common.hw, 155 153 [CLK_IR] = &ir_clk.common.hw, ··· 165 161 [RST_R_APB1_PWM] = { 0x13c, BIT(16) }, 166 162 [RST_R_APB2_UART] = { 0x18c, BIT(16) }, 167 163 [RST_R_APB2_I2C] = { 0x19c, BIT(16) }, 164 + [RST_R_APB2_RSB] = { 0x1bc, BIT(16) }, 168 165 [RST_R_APB1_IR] = { 0x1cc, BIT(16) }, 169 166 [RST_R_APB1_W1] = { 0x1ec, BIT(16) }, 170 167 };
+1 -1
drivers/clk/sunxi-ng/ccu-sun50i-h6-r.h
··· 14 14 15 15 #define CLK_R_APB2 3 16 16 17 - #define CLK_NUMBER (CLK_W1 + 1) 17 + #define CLK_NUMBER (CLK_R_APB2_RSB + 1) 18 18 19 19 #endif /* _CCU_SUN50I_H6_R_H */
+2
include/dt-bindings/clock/sun50i-h6-r-ccu.h
··· 21 21 #define CLK_IR 11 22 22 #define CLK_W1 12 23 23 24 + #define CLK_R_APB2_RSB 13 25 + 24 26 #endif /* _DT_BINDINGS_CLK_SUN50I_H6_R_CCU_H_ */
+1
include/dt-bindings/reset/sun50i-h6-r-ccu.h
··· 13 13 #define RST_R_APB2_I2C 4 14 14 #define RST_R_APB1_IR 5 15 15 #define RST_R_APB1_W1 6 16 + #define RST_R_APB2_RSB 7 16 17 17 18 #endif /* _DT_BINDINGS_RST_SUN50I_H6_R_CCU_H_ */