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

Configure Feed

Select the types of activity you want to include in your feed.

clk: qcom: gcc-msm8939: Add missing CSI2 related clocks

When adding in the indexes for this clock-controller we missed
GCC_CAMSS_CSI2_AHB_CLK, GCC_CAMSS_CSI2_CLK, GCC_CAMSS_CSI2PHY_CLK,
GCC_CAMSS_CSI2PIX_CLK and GCC_CAMSS_CSI2RDI_CLK.

Add them in now and rename ftbl_gcc_camss_csi0_1_clk
to account for csi2 also using it.

Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Vincent Knecht <vincent.knecht@mailoo.org>
Link: https://lore.kernel.org/r/20231029061948.505883-2-vincent.knecht@mailoo.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org>

authored by

Vincent Knecht and committed by
Bjorn Andersson
8f799d30 3f373de6

+107 -3
+107 -3
drivers/clk/qcom/gcc-msm8939.c
··· 696 696 }, 697 697 }; 698 698 699 - static const struct freq_tbl ftbl_gcc_camss_csi0_1_clk[] = { 699 + static const struct freq_tbl ftbl_gcc_camss_csi0_1_2_clk[] = { 700 700 F(100000000, P_GPLL0, 8, 0, 0), 701 701 F(200000000, P_GPLL0, 4, 0, 0), 702 702 { } ··· 706 706 .cmd_rcgr = 0x4e020, 707 707 .hid_width = 5, 708 708 .parent_map = gcc_xo_gpll0_map, 709 - .freq_tbl = ftbl_gcc_camss_csi0_1_clk, 709 + .freq_tbl = ftbl_gcc_camss_csi0_1_2_clk, 710 710 .clkr.hw.init = &(struct clk_init_data){ 711 711 .name = "csi0_clk_src", 712 712 .parent_data = gcc_xo_gpll0_parent_data, ··· 719 719 .cmd_rcgr = 0x4f020, 720 720 .hid_width = 5, 721 721 .parent_map = gcc_xo_gpll0_map, 722 - .freq_tbl = ftbl_gcc_camss_csi0_1_clk, 722 + .freq_tbl = ftbl_gcc_camss_csi0_1_2_clk, 723 723 .clkr.hw.init = &(struct clk_init_data){ 724 724 .name = "csi1_clk_src", 725 + .parent_data = gcc_xo_gpll0_parent_data, 726 + .num_parents = ARRAY_SIZE(gcc_xo_gpll0_parent_data), 727 + .ops = &clk_rcg2_ops, 728 + }, 729 + }; 730 + 731 + static struct clk_rcg2 csi2_clk_src = { 732 + .cmd_rcgr = 0x3c020, 733 + .hid_width = 5, 734 + .parent_map = gcc_xo_gpll0_map, 735 + .freq_tbl = ftbl_gcc_camss_csi0_1_2_clk, 736 + .clkr.hw.init = &(struct clk_init_data){ 737 + .name = "csi2_clk_src", 725 738 .parent_data = gcc_xo_gpll0_parent_data, 726 739 .num_parents = ARRAY_SIZE(gcc_xo_gpll0_parent_data), 727 740 .ops = &clk_rcg2_ops, ··· 2398 2385 }, 2399 2386 }; 2400 2387 2388 + static struct clk_branch gcc_camss_csi2_ahb_clk = { 2389 + .halt_reg = 0x3c040, 2390 + .clkr = { 2391 + .enable_reg = 0x3c040, 2392 + .enable_mask = BIT(0), 2393 + .hw.init = &(struct clk_init_data){ 2394 + .name = "gcc_camss_csi2_ahb_clk", 2395 + .parent_hws = (const struct clk_hw*[]){ 2396 + &camss_ahb_clk_src.clkr.hw, 2397 + }, 2398 + .num_parents = 1, 2399 + .flags = CLK_SET_RATE_PARENT, 2400 + .ops = &clk_branch2_ops, 2401 + }, 2402 + }, 2403 + }; 2404 + 2405 + static struct clk_branch gcc_camss_csi2_clk = { 2406 + .halt_reg = 0x3c03c, 2407 + .clkr = { 2408 + .enable_reg = 0x3c03c, 2409 + .enable_mask = BIT(0), 2410 + .hw.init = &(struct clk_init_data){ 2411 + .name = "gcc_camss_csi2_clk", 2412 + .parent_hws = (const struct clk_hw*[]){ 2413 + &csi2_clk_src.clkr.hw, 2414 + }, 2415 + .num_parents = 1, 2416 + .flags = CLK_SET_RATE_PARENT, 2417 + .ops = &clk_branch2_ops, 2418 + }, 2419 + }, 2420 + }; 2421 + 2422 + static struct clk_branch gcc_camss_csi2phy_clk = { 2423 + .halt_reg = 0x3c048, 2424 + .clkr = { 2425 + .enable_reg = 0x3c048, 2426 + .enable_mask = BIT(0), 2427 + .hw.init = &(struct clk_init_data){ 2428 + .name = "gcc_camss_csi2phy_clk", 2429 + .parent_hws = (const struct clk_hw*[]){ 2430 + &csi2_clk_src.clkr.hw, 2431 + }, 2432 + .num_parents = 1, 2433 + .flags = CLK_SET_RATE_PARENT, 2434 + .ops = &clk_branch2_ops, 2435 + }, 2436 + }, 2437 + }; 2438 + 2439 + static struct clk_branch gcc_camss_csi2pix_clk = { 2440 + .halt_reg = 0x3c058, 2441 + .clkr = { 2442 + .enable_reg = 0x3c058, 2443 + .enable_mask = BIT(0), 2444 + .hw.init = &(struct clk_init_data){ 2445 + .name = "gcc_camss_csi2pix_clk", 2446 + .parent_hws = (const struct clk_hw*[]){ 2447 + &csi2_clk_src.clkr.hw, 2448 + }, 2449 + .num_parents = 1, 2450 + .flags = CLK_SET_RATE_PARENT, 2451 + .ops = &clk_branch2_ops, 2452 + }, 2453 + }, 2454 + }; 2455 + 2456 + static struct clk_branch gcc_camss_csi2rdi_clk = { 2457 + .halt_reg = 0x3c050, 2458 + .clkr = { 2459 + .enable_reg = 0x3c050, 2460 + .enable_mask = BIT(0), 2461 + .hw.init = &(struct clk_init_data){ 2462 + .name = "gcc_camss_csi2rdi_clk", 2463 + .parent_hws = (const struct clk_hw*[]){ 2464 + &csi2_clk_src.clkr.hw, 2465 + }, 2466 + .num_parents = 1, 2467 + .flags = CLK_SET_RATE_PARENT, 2468 + .ops = &clk_branch2_ops, 2469 + }, 2470 + }, 2471 + }; 2472 + 2401 2473 static struct clk_branch gcc_camss_csi_vfe0_clk = { 2402 2474 .halt_reg = 0x58050, 2403 2475 .clkr = { ··· 3780 3682 [APSS_AHB_CLK_SRC] = &apss_ahb_clk_src.clkr, 3781 3683 [CSI0_CLK_SRC] = &csi0_clk_src.clkr, 3782 3684 [CSI1_CLK_SRC] = &csi1_clk_src.clkr, 3685 + [CSI2_CLK_SRC] = &csi2_clk_src.clkr, 3783 3686 [GFX3D_CLK_SRC] = &gfx3d_clk_src.clkr, 3784 3687 [VFE0_CLK_SRC] = &vfe0_clk_src.clkr, 3785 3688 [BLSP1_QUP1_I2C_APPS_CLK_SRC] = &blsp1_qup1_i2c_apps_clk_src.clkr, ··· 3850 3751 [GCC_CAMSS_CSI1PHY_CLK] = &gcc_camss_csi1phy_clk.clkr, 3851 3752 [GCC_CAMSS_CSI1PIX_CLK] = &gcc_camss_csi1pix_clk.clkr, 3852 3753 [GCC_CAMSS_CSI1RDI_CLK] = &gcc_camss_csi1rdi_clk.clkr, 3754 + [GCC_CAMSS_CSI2_AHB_CLK] = &gcc_camss_csi2_ahb_clk.clkr, 3755 + [GCC_CAMSS_CSI2_CLK] = &gcc_camss_csi2_clk.clkr, 3756 + [GCC_CAMSS_CSI2PHY_CLK] = &gcc_camss_csi2phy_clk.clkr, 3757 + [GCC_CAMSS_CSI2PIX_CLK] = &gcc_camss_csi2pix_clk.clkr, 3758 + [GCC_CAMSS_CSI2RDI_CLK] = &gcc_camss_csi2rdi_clk.clkr, 3853 3759 [GCC_CAMSS_CSI_VFE0_CLK] = &gcc_camss_csi_vfe0_clk.clkr, 3854 3760 [GCC_CAMSS_GP0_CLK] = &gcc_camss_gp0_clk.clkr, 3855 3761 [GCC_CAMSS_GP1_CLK] = &gcc_camss_gp1_clk.clkr,