Merge branches 'clk-loongson' and 'clk-qcom' into clk-next
* clk-loongson: dt-bindings: clock: add loongson-2 clock dt-bindings: clock: add loongson-2 clock include file * clk-qcom: (143 commits) clk: qcom: apcs-msm8986: Include bitfield.h for FIELD_PREP clk: qcom: Revert sync_state based clk_disable_unused dt-bindings: clock: Merge qcom,gpucc-sm8350 into qcom,gpucc.yaml clk: qcom: gpucc-sdm845: fix clk_dis_wait being programmed for CX GDSC clk: qcom: gpucc-sc7180: fix clk_dis_wait being programmed for CX GDSC dt-bindings: clock: qcom,sa8775p-gcc: add the power-domains property clk: qcom: cpu-8996: add missing cputype include clk: qcom: gcc-sa8775p: remove unused variables clk: qcom: smd-rpm: provide RPM_SMD_XO_CLK_SRC on MSM8996 platform clk: qcom: add msm8996 Core Bus Framework (CBF) support dt-bindings: clock: qcom,msm8996-cbf: Describe the MSM8996 CBF clock controller clk: qcom: add the driver for the MSM8996 APCS clocks clk: qcom: gcc-qcs404: fix duplicate initializer warning clk: qcom: cpu-8996: change setup sequence to follow vendor kernel clk: qcom: cpu-8996: fix PLL clock ops clk: qcom: cpu-8996: fix ACD initialization clk: qcom: cpu-8996: fix PLL configuration sequence clk: qcom: cpu-8996: move qcom_cpu_clk_msm8996_acd_init call clk: qcom: cpu-8996: setup PLLs before registering clocks clk: qcom: cpu-8996: simplify the cpu_clk_notifier_cb ...
This commit is contained in:
commit
b64baafa24
@ -0,0 +1,63 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/clock/loongson,ls2k-clk.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Loongson-2 SoC Clock Control Module
|
||||
|
||||
maintainers:
|
||||
- Yinbo Zhu <zhuyinbo@loongson.cn>
|
||||
|
||||
description: |
|
||||
Loongson-2 SoC clock control module is an integrated clock controller, which
|
||||
generates and supplies to all modules.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- loongson,ls2k-clk
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: 100m ref
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: ref_100m
|
||||
|
||||
'#clock-cells':
|
||||
const: 1
|
||||
description:
|
||||
The clock consumer should specify the desired clock by having the clock
|
||||
ID in its "clocks" phandle cell. See include/dt-bindings/clock/loongson,ls2k-clk.h
|
||||
for the full list of Loongson-2 SoC clock IDs.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- clock-names
|
||||
- '#clock-cells'
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
ref_100m: clock-ref-100m {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <100000000>;
|
||||
clock-output-names = "ref_100m";
|
||||
};
|
||||
|
||||
clk: clock-controller@1fe00480 {
|
||||
compatible = "loongson,ls2k-clk";
|
||||
reg = <0x1fe00480 0x58>;
|
||||
#clock-cells = <1>;
|
||||
clocks = <&ref_100m>;
|
||||
clock-names = "ref_100m";
|
||||
};
|
@ -21,12 +21,16 @@ properties:
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: AHB
|
||||
- description: Board XO source
|
||||
- description: Board active XO source
|
||||
- description: Sleep clock source
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: iface
|
||||
- const: bi_tcxo
|
||||
- const: bi_tcxo_ao
|
||||
- const: sleep_clk
|
||||
|
||||
'#clock-cells':
|
||||
@ -38,9 +42,18 @@ properties:
|
||||
'#power-domain-cells':
|
||||
const: 1
|
||||
|
||||
power-domains:
|
||||
items:
|
||||
- description: MMCX power domain
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
required-opps:
|
||||
maxItems: 1
|
||||
description:
|
||||
OPP node describing required MMCX performance point.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
@ -54,13 +67,16 @@ additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/qcom,gcc-sm8250.h>
|
||||
#include <dt-bindings/clock/qcom,rpmh.h>
|
||||
clock-controller@ad00000 {
|
||||
compatible = "qcom,sm8250-camcc";
|
||||
reg = <0x0ad00000 0x10000>;
|
||||
clocks = <&rpmhcc RPMH_CXO_CLK>,
|
||||
clocks = <&gcc GCC_CAMERA_AHB_CLK>,
|
||||
<&rpmhcc RPMH_CXO_CLK>,
|
||||
<&rpmhcc RPMH_CXO_CLK_A>,
|
||||
<&sleep_clk>;
|
||||
clock-names = "bi_tcxo", "sleep_clk";
|
||||
clock-names = "iface", "bi_tcxo", "bi_tcxo_ao", "sleep_clk";
|
||||
#clock-cells = <1>;
|
||||
#reset-cells = <1>;
|
||||
#power-domain-cells = <1>;
|
||||
|
@ -25,6 +25,30 @@ properties:
|
||||
compatible:
|
||||
const: qcom,gcc-apq8084
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: XO source
|
||||
- description: Sleep clock source
|
||||
- description: UFS RX symbol 0 clock
|
||||
- description: UFS RX symbol 1 clock
|
||||
- description: UFS TX symbol 0 clock
|
||||
- description: UFS TX symbol 1 clock
|
||||
- description: SATA ASIC0 clock
|
||||
- description: SATA RX clock
|
||||
- description: PCIe PIPE clock
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: xo
|
||||
- const: sleep_clk
|
||||
- const: ufs_rx_symbol_0_clk_src
|
||||
- const: ufs_rx_symbol_1_clk_src
|
||||
- const: ufs_tx_symbol_0_clk_src
|
||||
- const: ufs_tx_symbol_1_clk_src
|
||||
- const: sata_asic0_clk
|
||||
- const: sata_rx_clk
|
||||
- const: pcie_pipe
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
||||
@ -32,11 +56,31 @@ unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
/* UFS PHY on APQ8084 is not supported (yet), so these bindings just serve an example */
|
||||
clock-controller@fc400000 {
|
||||
compatible = "qcom,gcc-apq8084";
|
||||
reg = <0xfc400000 0x4000>;
|
||||
#clock-cells = <1>;
|
||||
#reset-cells = <1>;
|
||||
#power-domain-cells = <1>;
|
||||
|
||||
clocks = <&xo_board>,
|
||||
<&sleep_clk>,
|
||||
<&ufsphy 0>,
|
||||
<&ufsphy 1>,
|
||||
<&ufsphy 2>,
|
||||
<&ufsphy 3>,
|
||||
<&sata 0>,
|
||||
<&sata 1>,
|
||||
<&pcie_phy>;
|
||||
clock-names = "xo",
|
||||
"sleep_clk",
|
||||
"ufs_rx_symbol_0_clk_src",
|
||||
"ufs_rx_symbol_1_clk_src",
|
||||
"ufs_tx_symbol_0_clk_src",
|
||||
"ufs_tx_symbol_1_clk_src",
|
||||
"sata_asic0_clk",
|
||||
"sata_rx_clk",
|
||||
"pcie_pipe";
|
||||
};
|
||||
...
|
||||
|
@ -25,7 +25,6 @@ properties:
|
||||
- description: Board XO source
|
||||
- description: Sleep clock source
|
||||
- description: Audio reference clock (Optional clock)
|
||||
- description: PLL test clock source (Optional clock)
|
||||
minItems: 2
|
||||
|
||||
clock-names:
|
||||
@ -33,7 +32,6 @@ properties:
|
||||
- const: xo
|
||||
- const: sleep_clk
|
||||
- const: aud_ref_clk # Optional clock
|
||||
- const: core_bi_pll_test_se # Optional clock
|
||||
minItems: 2
|
||||
|
||||
required:
|
||||
@ -57,11 +55,9 @@ examples:
|
||||
reg = <0x00100000 0xb0000>;
|
||||
clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>,
|
||||
<&sleep>,
|
||||
<0>,
|
||||
<0>;
|
||||
clock-names = "xo",
|
||||
"sleep_clk",
|
||||
"aud_ref_clk",
|
||||
"core_bi_pll_test_se";
|
||||
"aud_ref_clk";
|
||||
};
|
||||
...
|
||||
|
@ -20,26 +20,31 @@ properties:
|
||||
compatible:
|
||||
const: qcom,gcc-qcs404
|
||||
|
||||
'#clock-cells':
|
||||
const: 1
|
||||
clocks:
|
||||
items:
|
||||
- description: XO source
|
||||
- description: Sleep clock source
|
||||
- description: PCIe 0 PIPE clock (optional)
|
||||
- description: DSI phy instance 0 dsi clock
|
||||
- description: DSI phy instance 0 byte clock
|
||||
- description: HDMI phy PLL clock
|
||||
|
||||
'#reset-cells':
|
||||
const: 1
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
protected-clocks:
|
||||
description:
|
||||
Protected clock specifier list as per common clock binding.
|
||||
clock-names:
|
||||
items:
|
||||
- const: cxo
|
||||
- const: sleep_clk
|
||||
- const: pcie_0_pipe_clk_src
|
||||
- const: dsi0pll
|
||||
- const: dsi0pllbyte
|
||||
- const: hdmi_pll
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- '#clock-cells'
|
||||
- '#reset-cells'
|
||||
|
||||
additionalProperties: false
|
||||
allOf:
|
||||
- $ref: qcom,gcc.yaml#
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
@ -48,5 +53,6 @@ examples:
|
||||
reg = <0x01800000 0x80000>;
|
||||
#clock-cells = <1>;
|
||||
#reset-cells = <1>;
|
||||
#power-domain-cells = <1>;
|
||||
};
|
||||
...
|
||||
|
@ -55,6 +55,10 @@ properties:
|
||||
- description: First EMAC controller reference clock
|
||||
- description: Second EMAC controller reference clock
|
||||
|
||||
power-domains:
|
||||
items:
|
||||
- description: CX domain
|
||||
|
||||
protected-clocks:
|
||||
maxItems: 389
|
||||
|
||||
@ -70,6 +74,8 @@ unevaluatedProperties: false
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/qcom,rpmh.h>
|
||||
#include <dt-bindings/power/qcom-rpmpd.h>
|
||||
|
||||
clock-controller@100000 {
|
||||
compatible = "qcom,gcc-sc8280xp";
|
||||
reg = <0x00100000 0x1f0000>;
|
||||
@ -106,6 +112,7 @@ examples:
|
||||
<&pcie4_lane>,
|
||||
<&rxc0_ref_clk>,
|
||||
<&rxc1_ref_clk>;
|
||||
power-domains = <&rpmhpd SC8280XP_CX>;
|
||||
|
||||
#clock-cells = <1>;
|
||||
#reset-cells = <1>;
|
||||
|
@ -24,15 +24,11 @@ properties:
|
||||
items:
|
||||
- description: Board XO source
|
||||
- description: Sleep clock source
|
||||
- description: PLL test clock source (Optional clock)
|
||||
minItems: 2
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: bi_tcxo
|
||||
- const: sleep_clk
|
||||
- const: core_bi_pll_test_se # Optional clock
|
||||
minItems: 2
|
||||
|
||||
required:
|
||||
- compatible
|
||||
@ -51,8 +47,9 @@ examples:
|
||||
compatible = "qcom,gcc-sdx55";
|
||||
reg = <0x00100000 0x1f0000>;
|
||||
clocks = <&rpmhcc RPMH_CXO_CLK>,
|
||||
<&sleep_clk>, <&pll_test_clk>;
|
||||
clock-names = "bi_tcxo", "sleep_clk", "core_bi_pll_test_se";
|
||||
<&sleep_clk>;
|
||||
clock-names = "bi_tcxo",
|
||||
"sleep_clk";
|
||||
#clock-cells = <1>;
|
||||
#reset-cells = <1>;
|
||||
#power-domain-cells = <1>;
|
||||
|
@ -26,8 +26,6 @@ properties:
|
||||
- description: Sleep clock source
|
||||
- description: PCIE Pipe clock source
|
||||
- description: USB3 phy wrapper pipe clock source
|
||||
- description: PLL test clock source (Optional clock)
|
||||
minItems: 5
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
@ -36,8 +34,6 @@ properties:
|
||||
- const: sleep_clk
|
||||
- const: pcie_pipe_clk
|
||||
- const: usb3_phy_wrapper_gcc_usb30_pipe_clk
|
||||
- const: core_bi_pll_test_se # Optional clock
|
||||
minItems: 5
|
||||
|
||||
required:
|
||||
- compatible
|
||||
@ -56,9 +52,9 @@ examples:
|
||||
compatible = "qcom,gcc-sdx65";
|
||||
reg = <0x100000 0x1f7400>;
|
||||
clocks = <&rpmhcc RPMH_CXO_CLK>, <&rpmhcc RPMH_CXO_CLK_A>, <&sleep_clk>,
|
||||
<&pcie_pipe_clk>, <&usb3_phy_wrapper_gcc_usb30_pipe_clk>, <&pll_test_clk>;
|
||||
<&pcie_pipe_clk>, <&usb3_phy_wrapper_gcc_usb30_pipe_clk>;
|
||||
clock-names = "bi_tcxo", "bi_tcxo_ao", "sleep_clk",
|
||||
"pcie_pipe_clk", "usb3_phy_wrapper_gcc_usb30_pipe_clk", "core_bi_pll_test_se";
|
||||
"pcie_pipe_clk", "usb3_phy_wrapper_gcc_usb30_pipe_clk";
|
||||
#clock-cells = <1>;
|
||||
#reset-cells = <1>;
|
||||
#power-domain-cells = <1>;
|
||||
|
@ -23,7 +23,6 @@ properties:
|
||||
items:
|
||||
- description: Board XO source
|
||||
- description: Sleep clock source
|
||||
- description: PLL test clock source (Optional clock)
|
||||
- description: PCIE 0 Pipe clock source (Optional clock)
|
||||
- description: PCIE 1 Pipe clock source (Optional clock)
|
||||
- description: UFS card Rx symbol 0 clock source (Optional clock)
|
||||
@ -40,7 +39,6 @@ properties:
|
||||
items:
|
||||
- const: bi_tcxo
|
||||
- const: sleep_clk
|
||||
- const: core_bi_pll_test_se # Optional clock
|
||||
- const: pcie_0_pipe_clk # Optional clock
|
||||
- const: pcie_1_pipe_clk # Optional clock
|
||||
- const: ufs_card_rx_symbol_0_clk # Optional clock
|
||||
|
@ -1,71 +0,0 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/clock/qcom,gpucc-sm8350.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Qualcomm Graphics Clock & Reset Controller on SM8350
|
||||
|
||||
maintainers:
|
||||
- Robert Foss <robert.foss@linaro.org>
|
||||
|
||||
description: |
|
||||
Qualcomm graphics clock control module provides the clocks, resets and power
|
||||
domains on Qualcomm SoCs.
|
||||
|
||||
See also:: include/dt-bindings/clock/qcom,gpucc-sm8350.h
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- qcom,sm8350-gpucc
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: Board XO source
|
||||
- description: GPLL0 main branch source
|
||||
- description: GPLL0 div branch source
|
||||
|
||||
'#clock-cells':
|
||||
const: 1
|
||||
|
||||
'#reset-cells':
|
||||
const: 1
|
||||
|
||||
'#power-domain-cells':
|
||||
const: 1
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- '#clock-cells'
|
||||
- '#reset-cells'
|
||||
- '#power-domain-cells'
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/qcom,gcc-sm8350.h>
|
||||
#include <dt-bindings/clock/qcom,rpmh.h>
|
||||
|
||||
soc {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
clock-controller@3d90000 {
|
||||
compatible = "qcom,sm8350-gpucc";
|
||||
reg = <0 0x03d90000 0 0x9000>;
|
||||
clocks = <&rpmhcc RPMH_CXO_CLK>,
|
||||
<&gcc GCC_GPU_GPLL0_CLK_SRC>,
|
||||
<&gcc GCC_GPU_GPLL0_DIV_CLK_SRC>;
|
||||
#clock-cells = <1>;
|
||||
#reset-cells = <1>;
|
||||
#power-domain-cells = <1>;
|
||||
};
|
||||
};
|
||||
...
|
@ -21,6 +21,7 @@ description: |
|
||||
include/dt-bindings/clock/qcom,gpucc-sm6350.h
|
||||
include/dt-bindings/clock/qcom,gpucc-sm8150.h
|
||||
include/dt-bindings/clock/qcom,gpucc-sm8250.h
|
||||
include/dt-bindings/clock/qcom,gpucc-sm8350.h
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
@ -33,6 +34,7 @@ properties:
|
||||
- qcom,sm6350-gpucc
|
||||
- qcom,sm8150-gpucc
|
||||
- qcom,sm8250-gpucc
|
||||
- qcom,sm8350-gpucc
|
||||
|
||||
clocks:
|
||||
items:
|
||||
|
@ -32,11 +32,11 @@ properties:
|
||||
|
||||
clocks:
|
||||
minItems: 8
|
||||
maxItems: 10
|
||||
maxItems: 13
|
||||
|
||||
clock-names:
|
||||
minItems: 8
|
||||
maxItems: 10
|
||||
maxItems: 13
|
||||
|
||||
'#clock-cells':
|
||||
const: 1
|
||||
@ -137,6 +137,46 @@ allOf:
|
||||
- const: edp_link_clk
|
||||
- const: edp_vco_div
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- qcom,mmcc-apq8084
|
||||
then:
|
||||
properties:
|
||||
clocks:
|
||||
items:
|
||||
- description: Board XO source
|
||||
- description: Board sleep source
|
||||
- description: MMSS GPLL0 voted clock
|
||||
- description: GPLL0 clock
|
||||
- description: GPLL0 voted clock
|
||||
- description: GPLL1 clock
|
||||
- description: DSI phy instance 0 dsi clock
|
||||
- description: DSI phy instance 0 byte clock
|
||||
- description: DSI phy instance 1 dsi clock
|
||||
- description: DSI phy instance 1 byte clock
|
||||
- description: HDMI phy PLL clock
|
||||
- description: eDP phy PLL link clock
|
||||
- description: eDP phy PLL vco clock
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: xo
|
||||
- const: sleep_clk
|
||||
- const: mmss_gpll0_vote
|
||||
- const: gpll0
|
||||
- const: gpll0_vote
|
||||
- const: gpll1
|
||||
- const: dsi0pll
|
||||
- const: dsi0pllbyte
|
||||
- const: dsi1pll
|
||||
- const: dsi1pllbyte
|
||||
- const: hdmipll
|
||||
- const: edp_link_clk
|
||||
- const: edp_vco_div
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
@ -229,7 +269,6 @@ allOf:
|
||||
- description: HDMI phy PLL clock
|
||||
- description: DisplayPort phy PLL link clock
|
||||
- description: DisplayPort phy PLL vco clock
|
||||
- description: Test clock
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
@ -242,7 +281,6 @@ allOf:
|
||||
- const: hdmipll
|
||||
- const: dplink
|
||||
- const: dpvco
|
||||
- const: core_bi_pll_test_se
|
||||
|
||||
- if:
|
||||
properties:
|
||||
|
@ -27,10 +27,12 @@ properties:
|
||||
clocks:
|
||||
items:
|
||||
- description: XO source
|
||||
- description: SYS APCS AUX clock
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: xo
|
||||
- const: sys_apcs_aux
|
||||
|
||||
required:
|
||||
- compatible
|
||||
@ -48,6 +50,6 @@ examples:
|
||||
reg = <0x6400000 0x90000>;
|
||||
#clock-cells = <1>;
|
||||
|
||||
clocks = <&xo_board>;
|
||||
clock-names = "xo";
|
||||
clocks = <&xo_board>, <&apcs_glb>;
|
||||
clock-names = "xo", "sys_apcs_aux";
|
||||
};
|
||||
|
@ -0,0 +1,53 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/clock/qcom,msm8996-cbf.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Qualcomm MSM8996 Core Bus Fabric (CBF) clock controller
|
||||
|
||||
maintainers:
|
||||
- Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
|
||||
|
||||
description: >
|
||||
The clock controller for the Qualcomm MSM8996 CBF clock, which drives the
|
||||
interconnect between two CPU clusters.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: qcom,msm8996-cbf
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: XO source
|
||||
- description: SYS APCS AUX clock
|
||||
|
||||
'#clock-cells':
|
||||
const: 0
|
||||
|
||||
'#interconnect-cells':
|
||||
const: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- '#clock-cells'
|
||||
- '#interconnect-cells'
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/qcom,rpmcc.h>
|
||||
clock-controller@9a11000 {
|
||||
compatible = "qcom,msm8996-cbf";
|
||||
reg = <0x09a11000 0x10000>;
|
||||
clocks = <&rpmcc RPM_SMD_BB_CLK1>, <&apcs_glb>;
|
||||
#clock-cells = <0>;
|
||||
#interconnect-cells = <1>;
|
||||
};
|
||||
...
|
@ -0,0 +1,51 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/clock/qcom,qdu1000-gcc.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Qualcomm Global Clock & Reset Controller for QDU1000 and QRU1000
|
||||
|
||||
maintainers:
|
||||
- Melody Olvera <quic_molvera@quicinc.com>
|
||||
|
||||
description: |
|
||||
Qualcomm global clock control module which supports the clocks, resets and
|
||||
power domains on QDU1000 and QRU1000
|
||||
|
||||
See also:: include/dt-bindings/clock/qcom,qdu1000-gcc.h
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: qcom,qdu1000-gcc
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: Board XO source
|
||||
- description: Sleep clock source
|
||||
- description: PCIE 0 Pipe clock source
|
||||
- description: PCIE 0 Phy Auxiliary clock source
|
||||
- description: USB3 Phy wrapper pipe clock source
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- clocks
|
||||
|
||||
allOf:
|
||||
- $ref: qcom,gcc.yaml#
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/qcom,rpmh.h>
|
||||
clock-controller@100000 {
|
||||
compatible = "qcom,qdu1000-gcc";
|
||||
reg = <0x00100000 0x001f4200>;
|
||||
clocks = <&rpmhcc RPMH_CXO_CLK>, <&sleep_clk>,
|
||||
<&pcie_0_pipe_clk>, <&pcie_0_phy_aux_clk>,
|
||||
<&usb3_phy_wrapper_pipe_clk>;
|
||||
#clock-cells = <1>;
|
||||
#reset-cells = <1>;
|
||||
#power-domain-cells = <1>;
|
||||
};
|
@ -18,6 +18,7 @@ properties:
|
||||
compatible:
|
||||
enum:
|
||||
- qcom,qdu1000-rpmh-clk
|
||||
- qcom,sa8775p-rpmh-clk
|
||||
- qcom,sc7180-rpmh-clk
|
||||
- qcom,sc7280-rpmh-clk
|
||||
- qcom,sc8180x-rpmh-clk
|
||||
@ -31,6 +32,7 @@ properties:
|
||||
- qcom,sm8250-rpmh-clk
|
||||
- qcom,sm8350-rpmh-clk
|
||||
- qcom,sm8450-rpmh-clk
|
||||
- qcom,sm8550-rpmh-clk
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
@ -0,0 +1,84 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/clock/qcom,sa8775p-gcc.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Qualcomm Global Clock & Reset Controller on sa8775p
|
||||
|
||||
maintainers:
|
||||
- Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
|
||||
|
||||
description: |
|
||||
Qualcomm global clock control module provides the clocks, resets and
|
||||
power domains on sa8775p.
|
||||
|
||||
See also:: include/dt-bindings/clock/qcom,sa8775p-gcc.h
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: qcom,sa8775p-gcc
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: XO reference clock
|
||||
- description: Sleep clock
|
||||
- description: UFS memory first RX symbol clock
|
||||
- description: UFS memory second RX symbol clock
|
||||
- description: UFS memory first TX symbol clock
|
||||
- description: UFS card first RX symbol clock
|
||||
- description: UFS card second RX symbol clock
|
||||
- description: UFS card first TX symbol clock
|
||||
- description: Primary USB3 PHY wrapper pipe clock
|
||||
- description: Secondary USB3 PHY wrapper pipe clock
|
||||
- description: PCIe 0 pipe clock
|
||||
- description: PCIe 1 pipe clock
|
||||
- description: PCIe PHY clock
|
||||
- description: First EMAC controller reference clock
|
||||
- description: Second EMAC controller reference clock
|
||||
|
||||
protected-clocks:
|
||||
maxItems: 240
|
||||
|
||||
power-domains:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- clocks
|
||||
|
||||
allOf:
|
||||
- $ref: qcom,gcc.yaml#
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/qcom,rpmh.h>
|
||||
#include <dt-bindings/power/qcom-rpmpd.h>
|
||||
|
||||
gcc: clock-controller@100000 {
|
||||
compatible = "qcom,sa8775p-gcc";
|
||||
reg = <0x100000 0xc7018>;
|
||||
clocks = <&rpmhcc RPMH_CXO_CLK>,
|
||||
<&sleep_clk>,
|
||||
<&ufs_phy_rx_symbol_0_clk>,
|
||||
<&ufs_phy_rx_symbol_1_clk>,
|
||||
<&ufs_phy_tx_symbol_0_clk>,
|
||||
<&ufs_card_rx_symbol_0_clk>,
|
||||
<&ufs_card_rx_symbol_1_clk>,
|
||||
<&ufs_card_tx_symbol_0_clk>,
|
||||
<&usb_0_ssphy>,
|
||||
<&usb_1_ssphy>,
|
||||
<&pcie_0_pipe_clk>,
|
||||
<&pcie_1_pipe_clk>,
|
||||
<&pcie_phy_pipe_clk>,
|
||||
<&rxc0_ref_clk>,
|
||||
<&rxc1_ref_clk>;
|
||||
power-domains = <&rpmhpd SA8775P_CX>;
|
||||
|
||||
#clock-cells = <1>;
|
||||
#reset-cells = <1>;
|
||||
#power-domain-cells = <1>;
|
||||
};
|
||||
...
|
@ -0,0 +1,49 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/clock/qcom,sm6350-camcc.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Qualcomm Camera Clock & Reset Controller on SM6350
|
||||
|
||||
maintainers:
|
||||
- Konrad Dybcio <konrad.dybcio@linaro.org>
|
||||
|
||||
description: |
|
||||
Qualcomm camera clock control module provides the clocks, resets and power
|
||||
domains on SM6350.
|
||||
|
||||
See also:: include/dt-bindings/clock/qcom,sm6350-camcc.h
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: qcom,sm6350-camcc
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: Board XO source
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- clocks
|
||||
|
||||
allOf:
|
||||
- $ref: qcom,gcc.yaml#
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/qcom,rpmh.h>
|
||||
clock-controller@ad00000 {
|
||||
compatible = "qcom,sm6350-camcc";
|
||||
reg = <0x0ad00000 0x16000>;
|
||||
clocks = <&rpmhcc RPMH_CXO_CLK>;
|
||||
#clock-cells = <1>;
|
||||
#reset-cells = <1>;
|
||||
#power-domain-cells = <1>;
|
||||
};
|
||||
...
|
105
Documentation/devicetree/bindings/clock/qcom,sm8550-dispcc.yaml
Normal file
105
Documentation/devicetree/bindings/clock/qcom,sm8550-dispcc.yaml
Normal file
@ -0,0 +1,105 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/clock/qcom,sm8550-dispcc.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Qualcomm Display Clock & Reset Controller for SM8550
|
||||
|
||||
maintainers:
|
||||
- Bjorn Andersson <andersson@kernel.org>
|
||||
- Neil Armstrong <neil.armstrong@linaro.org>
|
||||
|
||||
description: |
|
||||
Qualcomm display clock control module provides the clocks, resets and power
|
||||
domains on SM8550.
|
||||
|
||||
See also:: include/dt-bindings/clock/qcom,sm8550-dispcc.h
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- qcom,sm8550-dispcc
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: Board XO source
|
||||
- description: Board Always On XO source
|
||||
- description: Display's AHB clock
|
||||
- description: sleep clock
|
||||
- description: Byte clock from DSI PHY0
|
||||
- description: Pixel clock from DSI PHY0
|
||||
- description: Byte clock from DSI PHY1
|
||||
- description: Pixel clock from DSI PHY1
|
||||
- description: Link clock from DP PHY0
|
||||
- description: VCO DIV clock from DP PHY0
|
||||
- description: Link clock from DP PHY1
|
||||
- description: VCO DIV clock from DP PHY1
|
||||
- description: Link clock from DP PHY2
|
||||
- description: VCO DIV clock from DP PHY2
|
||||
- description: Link clock from DP PHY3
|
||||
- description: VCO DIV clock from DP PHY3
|
||||
|
||||
'#clock-cells':
|
||||
const: 1
|
||||
|
||||
'#reset-cells':
|
||||
const: 1
|
||||
|
||||
'#power-domain-cells':
|
||||
const: 1
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
power-domains:
|
||||
description:
|
||||
A phandle and PM domain specifier for the MMCX power domain.
|
||||
maxItems: 1
|
||||
|
||||
required-opps:
|
||||
description:
|
||||
A phandle to an OPP node describing required MMCX performance point.
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- '#clock-cells'
|
||||
- '#reset-cells'
|
||||
- '#power-domain-cells'
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/qcom,sm8550-gcc.h>
|
||||
#include <dt-bindings/clock/qcom,rpmh.h>
|
||||
#include <dt-bindings/power/qcom-rpmpd.h>
|
||||
clock-controller@af00000 {
|
||||
compatible = "qcom,sm8550-dispcc";
|
||||
reg = <0x0af00000 0x10000>;
|
||||
clocks = <&rpmhcc RPMH_CXO_CLK>,
|
||||
<&rpmhcc RPMH_CXO_CLK_A>,
|
||||
<&gcc GCC_DISP_AHB_CLK>,
|
||||
<&sleep_clk>,
|
||||
<&dsi0_phy 0>,
|
||||
<&dsi0_phy 1>,
|
||||
<&dsi1_phy 0>,
|
||||
<&dsi1_phy 1>,
|
||||
<&dp0_phy 0>,
|
||||
<&dp0_phy 1>,
|
||||
<&dp1_phy 0>,
|
||||
<&dp1_phy 1>,
|
||||
<&dp2_phy 0>,
|
||||
<&dp2_phy 1>,
|
||||
<&dp3_phy 0>,
|
||||
<&dp3_phy 1>;
|
||||
#clock-cells = <1>;
|
||||
#reset-cells = <1>;
|
||||
#power-domain-cells = <1>;
|
||||
power-domains = <&rpmhpd SM8550_MMCX>;
|
||||
required-opps = <&rpmhpd_opp_low_svs>;
|
||||
};
|
||||
...
|
@ -0,0 +1,55 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/clock/qcom,sm8550-tcsr.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Qualcomm TCSR Clock Controller on SM8550
|
||||
|
||||
maintainers:
|
||||
- Bjorn Andersson <andersson@kernel.org>
|
||||
|
||||
description: |
|
||||
Qualcomm TCSR clock control module provides the clocks, resets and
|
||||
power domains on SM8550
|
||||
|
||||
See also:: include/dt-bindings/clock/qcom,sm8550-tcsr.h
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
items:
|
||||
- const: qcom,sm8550-tcsr
|
||||
- const: syscon
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: TCXO pad clock
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
'#clock-cells':
|
||||
const: 1
|
||||
|
||||
'#reset-cells':
|
||||
const: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- clocks
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/qcom,rpmh.h>
|
||||
|
||||
clock-controller@1fc0000 {
|
||||
compatible = "qcom,sm8550-tcsr", "syscon";
|
||||
reg = <0x1fc0000 0x30000>;
|
||||
clocks = <&rpmhcc RPMH_CXO_CLK>;
|
||||
#clock-cells = <1>;
|
||||
#reset-cells = <1>;
|
||||
};
|
||||
|
||||
...
|
@ -1,59 +0,0 @@
|
||||
Qualcomm Technologies, Inc. SPMI PMIC clock divider (clkdiv)
|
||||
|
||||
clkdiv configures the clock frequency of a set of outputs on the PMIC.
|
||||
These clocks are typically wired through alternate functions on
|
||||
gpio pins.
|
||||
|
||||
=======================
|
||||
Properties
|
||||
=======================
|
||||
|
||||
- compatible
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: must be "qcom,spmi-clkdiv".
|
||||
|
||||
- reg
|
||||
Usage: required
|
||||
Value type: <prop-encoded-array>
|
||||
Definition: base address of CLKDIV peripherals.
|
||||
|
||||
- qcom,num-clkdivs
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: number of CLKDIV peripherals.
|
||||
|
||||
- clocks:
|
||||
Usage: required
|
||||
Value type: <prop-encoded-array>
|
||||
Definition: reference to the xo clock.
|
||||
|
||||
- clock-names:
|
||||
Usage: required
|
||||
Value type: <stringlist>
|
||||
Definition: must be "xo".
|
||||
|
||||
- #clock-cells:
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: shall contain 1.
|
||||
|
||||
=======
|
||||
Example
|
||||
=======
|
||||
|
||||
pm8998_clk_divs: clock-controller@5b00 {
|
||||
compatible = "qcom,spmi-clkdiv";
|
||||
reg = <0x5b00>;
|
||||
#clock-cells = <1>;
|
||||
qcom,num-clkdivs = <3>;
|
||||
clocks = <&xo_board>;
|
||||
clock-names = "xo";
|
||||
|
||||
assigned-clocks = <&pm8998_clk_divs 1>,
|
||||
<&pm8998_clk_divs 2>,
|
||||
<&pm8998_clk_divs 3>;
|
||||
assigned-clock-rates = <9600000>,
|
||||
<9600000>,
|
||||
<9600000>;
|
||||
};
|
@ -0,0 +1,71 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/clock/qcom,spmi-clkdiv.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Qualcomm SPMI PMIC clock divider
|
||||
|
||||
maintainers:
|
||||
- Bjorn Andersson <andersson@kernel.org>
|
||||
- Stephen Boyd <sboyd@kernel.org>
|
||||
|
||||
description: |
|
||||
Qualcomm SPMI PMIC clock divider configures the clock frequency of a set of
|
||||
outputs on the PMIC. These clocks are typically wired through alternate
|
||||
functions on GPIO pins.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: qcom,spmi-clkdiv
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: Board XO source
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: xo
|
||||
|
||||
"#clock-cells":
|
||||
const: 1
|
||||
|
||||
qcom,num-clkdivs:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: Number of CLKDIV peripherals.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- clock-names
|
||||
- "#clock-cells"
|
||||
- qcom,num-clkdivs
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
pmic {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
clock-controller@5b00 {
|
||||
compatible = "qcom,spmi-clkdiv";
|
||||
reg = <0x5b00>;
|
||||
clocks = <&xo_board>;
|
||||
clock-names = "xo";
|
||||
#clock-cells = <1>;
|
||||
qcom,num-clkdivs = <3>;
|
||||
|
||||
assigned-clocks = <&pm8998_clk_divs 1>,
|
||||
<&pm8998_clk_divs 2>,
|
||||
<&pm8998_clk_divs 3>;
|
||||
assigned-clock-rates = <9600000>,
|
||||
<9600000>,
|
||||
<9600000>;
|
||||
};
|
||||
};
|
@ -30,12 +30,12 @@ properties:
|
||||
- qcom,sm8250-videocc
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: Board XO source
|
||||
minItems: 1
|
||||
maxItems: 3
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: bi_tcxo
|
||||
minItems: 1
|
||||
maxItems: 3
|
||||
|
||||
'#clock-cells':
|
||||
const: 1
|
||||
@ -68,6 +68,57 @@ required:
|
||||
- '#reset-cells'
|
||||
- '#power-domain-cells'
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- qcom,sc7180-videocc
|
||||
- qcom,sdm845-videocc
|
||||
- qcom,sm8150-videocc
|
||||
then:
|
||||
properties:
|
||||
clocks:
|
||||
items:
|
||||
- description: Board XO source
|
||||
clock-names:
|
||||
items:
|
||||
- const: bi_tcxo
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- qcom,sc7280-videocc
|
||||
then:
|
||||
properties:
|
||||
clocks:
|
||||
items:
|
||||
- description: Board XO source
|
||||
- description: Board active XO source
|
||||
clock-names:
|
||||
items:
|
||||
- const: bi_tcxo
|
||||
- const: bi_tcxo_ao
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- qcom,sm8250-videocc
|
||||
then:
|
||||
properties:
|
||||
clocks:
|
||||
items:
|
||||
- description: AHB
|
||||
- description: Board XO source
|
||||
- description: Board active XO source
|
||||
clock-names:
|
||||
items:
|
||||
- const: iface
|
||||
- const: bi_tcxo
|
||||
- const: bi_tcxo_ao
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
|
@ -12195,6 +12195,13 @@ S: Maintained
|
||||
F: Documentation/devicetree/bindings/pinctrl/loongson,ls2k-pinctrl.yaml
|
||||
F: drivers/pinctrl/pinctrl-loongson2.c
|
||||
|
||||
LOONGSON-2 SOC SERIES CLOCK DRIVER
|
||||
M: Yinbo Zhu <zhuyinbo@loongson.cn>
|
||||
L: linux-clk@vger.kernel.org
|
||||
S: Maintained
|
||||
F: Documentation/devicetree/bindings/clock/loongson,ls2k-clk.yaml
|
||||
F: include/dt-bindings/clock/loongson,ls2k-clk.h
|
||||
|
||||
LSILOGIC MPT FUSION DRIVERS (FC/SAS/SPI)
|
||||
M: Sathya Prakash <sathya.prakash@broadcom.com>
|
||||
M: Sreekanth Reddy <sreekanth.reddy@broadcom.com>
|
||||
|
@ -2272,7 +2272,7 @@
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&rx_swr_active>;
|
||||
compatible = "qcom,sm8250-lpass-rx-macro";
|
||||
reg = <0 0x3200000 0 0x1000>;
|
||||
reg = <0 0x03200000 0 0x1000>;
|
||||
status = "disabled";
|
||||
|
||||
clocks = <&q6afecc LPASS_CLK_ID_TX_CORE_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
|
||||
@ -2290,7 +2290,7 @@
|
||||
};
|
||||
|
||||
swr1: soundwire-controller@3210000 {
|
||||
reg = <0 0x3210000 0 0x2000>;
|
||||
reg = <0 0x03210000 0 0x2000>;
|
||||
compatible = "qcom,soundwire-v1.5.1";
|
||||
status = "disabled";
|
||||
interrupts = <GIC_SPI 298 IRQ_TYPE_LEVEL_HIGH>;
|
||||
@ -2319,7 +2319,7 @@
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&tx_swr_active>;
|
||||
compatible = "qcom,sm8250-lpass-tx-macro";
|
||||
reg = <0 0x3220000 0 0x1000>;
|
||||
reg = <0 0x03220000 0 0x1000>;
|
||||
status = "disabled";
|
||||
|
||||
clocks = <&q6afecc LPASS_CLK_ID_TX_CORE_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
|
||||
@ -2340,7 +2340,7 @@
|
||||
|
||||
/* tx macro */
|
||||
swr2: soundwire-controller@3230000 {
|
||||
reg = <0 0x3230000 0 0x2000>;
|
||||
reg = <0 0x03230000 0 0x2000>;
|
||||
compatible = "qcom,soundwire-v1.5.1";
|
||||
interrupts-extended = <&intc GIC_SPI 297 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "core";
|
||||
|
@ -519,6 +519,31 @@ ktime_t dev_pm_genpd_get_next_hrtimer(struct device *dev)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(dev_pm_genpd_get_next_hrtimer);
|
||||
|
||||
/*
|
||||
* dev_pm_genpd_synced_poweroff - Next power off should be synchronous
|
||||
*
|
||||
* @dev: A device that is attached to the genpd.
|
||||
*
|
||||
* Allows a consumer of the genpd to notify the provider that the next power off
|
||||
* should be synchronous.
|
||||
*
|
||||
* It is assumed that the users guarantee that the genpd wouldn't be detached
|
||||
* while this routine is getting called.
|
||||
*/
|
||||
void dev_pm_genpd_synced_poweroff(struct device *dev)
|
||||
{
|
||||
struct generic_pm_domain *genpd;
|
||||
|
||||
genpd = dev_to_genpd_safe(dev);
|
||||
if (!genpd)
|
||||
return;
|
||||
|
||||
genpd_lock(genpd);
|
||||
genpd->synced_poweroff = true;
|
||||
genpd_unlock(genpd);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(dev_pm_genpd_synced_poweroff);
|
||||
|
||||
static int _genpd_power_on(struct generic_pm_domain *genpd, bool timed)
|
||||
{
|
||||
unsigned int state_idx = genpd->state_idx;
|
||||
@ -562,6 +587,7 @@ static int _genpd_power_on(struct generic_pm_domain *genpd, bool timed)
|
||||
|
||||
out:
|
||||
raw_notifier_call_chain(&genpd->power_notifiers, GENPD_NOTIFY_ON, NULL);
|
||||
genpd->synced_poweroff = false;
|
||||
return 0;
|
||||
err:
|
||||
raw_notifier_call_chain(&genpd->power_notifiers, GENPD_NOTIFY_OFF,
|
||||
|
@ -410,6 +410,15 @@ config SC_DISPCC_8280XP
|
||||
Say Y if you want to support display devices and functionality such as
|
||||
splash screen.
|
||||
|
||||
config SA_GCC_8775P
|
||||
tristate "SA8775 Global Clock Controller"
|
||||
select QCOM_GDSC
|
||||
depends on COMMON_CLK_QCOM
|
||||
help
|
||||
Support for the global clock controller on SA8775 devices.
|
||||
Say Y if you want to use peripheral devices such as UART, SPI,
|
||||
I2C, USB, UFS, SDCC, etc.
|
||||
|
||||
config SC_GCC_7180
|
||||
tristate "SC7180 Global Clock Controller"
|
||||
select QCOM_GDSC
|
||||
@ -569,6 +578,14 @@ config QCS_Q6SSTOP_404
|
||||
Say Y if you want to use the Q6SSTOP branch clocks of the WCSS clock
|
||||
controller to reset the Q6SSTOP subsystem.
|
||||
|
||||
config QDU_GCC_1000
|
||||
tristate "QDU1000/QRU1000 Global Clock Controller"
|
||||
select QCOM_GDSC
|
||||
help
|
||||
Support for the global clock controller on QDU1000 and
|
||||
QRU1000 devices. Say Y if you want to use peripheral
|
||||
devices such as UART, SPI, I2C, USB, SD, PCIe, etc.
|
||||
|
||||
config SDM_GCC_845
|
||||
tristate "SDM845/SDM670 Global Clock Controller"
|
||||
select QCOM_GDSC
|
||||
@ -627,6 +644,13 @@ config SDX_GCC_65
|
||||
Say Y if you want to use peripheral devices such as UART,
|
||||
SPI, I2C, USB, SD/UFS, PCIe etc.
|
||||
|
||||
config SM_CAMCC_6350
|
||||
tristate "SM6350 Camera Clock Controller"
|
||||
select SM_GCC_6350
|
||||
help
|
||||
Support for the camera clock controller on SM6350 devices.
|
||||
Say Y if you want to support camera devices and camera functionality.
|
||||
|
||||
config SM_CAMCC_8250
|
||||
tristate "SM8250 Camera Clock Controller"
|
||||
select SM_GCC_8250
|
||||
@ -695,6 +719,15 @@ config SM_DISPCC_8450
|
||||
Say Y if you want to support display devices and functionality such as
|
||||
splash screen.
|
||||
|
||||
config SM_DISPCC_8550
|
||||
tristate "SM8550 Display Clock Controller"
|
||||
depends on SM_GCC_8550
|
||||
help
|
||||
Support for the display clock controller on Qualcomm Technologies, Inc
|
||||
SM8550 devices.
|
||||
Say Y if you want to support display devices and functionality such as
|
||||
splash screen.
|
||||
|
||||
config SM_GCC_6115
|
||||
tristate "SM6115 and SM4250 Global Clock Controller"
|
||||
select QCOM_GDSC
|
||||
@ -797,6 +830,13 @@ config SM_GPUCC_8350
|
||||
Say Y if you want to support graphics controller devices and
|
||||
functionality such as 3D graphics.
|
||||
|
||||
config SM_TCSRCC_8550
|
||||
tristate "SM8550 TCSR Clock Controller"
|
||||
select QCOM_GDSC
|
||||
help
|
||||
Support for the TCSR clock controller on SM8550 devices.
|
||||
Say Y if you want to use peripheral devices such as SD/UFS.
|
||||
|
||||
config SM_VIDEOCC_8150
|
||||
tristate "SM8150 Video Clock Controller"
|
||||
select SM_GCC_8150
|
||||
|
@ -52,7 +52,7 @@ obj-$(CONFIG_MSM_MMCC_8998) += mmcc-msm8998.o
|
||||
obj-$(CONFIG_QCOM_A53PLL) += a53-pll.o
|
||||
obj-$(CONFIG_QCOM_A7PLL) += a7-pll.o
|
||||
obj-$(CONFIG_QCOM_CLK_APCS_MSM8916) += apcs-msm8916.o
|
||||
obj-$(CONFIG_QCOM_CLK_APCC_MSM8996) += clk-cpu-8996.o
|
||||
obj-$(CONFIG_QCOM_CLK_APCC_MSM8996) += apcs-msm8996.o clk-cpu-8996.o clk-cbf-8996.o
|
||||
obj-$(CONFIG_QCOM_CLK_APCS_SDX55) += apcs-sdx55.o
|
||||
obj-$(CONFIG_QCOM_CLK_RPM) += clk-rpm.o
|
||||
obj-$(CONFIG_QCOM_CLK_RPMH) += clk-rpmh.o
|
||||
@ -62,11 +62,13 @@ obj-$(CONFIG_QCM_DISPCC_2290) += dispcc-qcm2290.o
|
||||
obj-$(CONFIG_QCS_GCC_404) += gcc-qcs404.o
|
||||
obj-$(CONFIG_QCS_Q6SSTOP_404) += q6sstop-qcs404.o
|
||||
obj-$(CONFIG_QCS_TURING_404) += turingcc-qcs404.o
|
||||
obj-$(CONFIG_QDU_GCC_1000) += gcc-qdu1000.o
|
||||
obj-$(CONFIG_SC_CAMCC_7180) += camcc-sc7180.o
|
||||
obj-$(CONFIG_SC_CAMCC_7280) += camcc-sc7280.o
|
||||
obj-$(CONFIG_SC_DISPCC_7180) += dispcc-sc7180.o
|
||||
obj-$(CONFIG_SC_DISPCC_7280) += dispcc-sc7280.o
|
||||
obj-$(CONFIG_SC_DISPCC_8280XP) += dispcc-sc8280xp.o
|
||||
obj-$(CONFIG_SA_GCC_8775P) += gcc-sa8775p.o
|
||||
obj-$(CONFIG_SC_GCC_7180) += gcc-sc7180.o
|
||||
obj-$(CONFIG_SC_GCC_7280) += gcc-sc7280.o
|
||||
obj-$(CONFIG_SC_GCC_8180X) += gcc-sc8180x.o
|
||||
@ -91,6 +93,7 @@ obj-$(CONFIG_SDM_LPASSCC_845) += lpasscc-sdm845.o
|
||||
obj-$(CONFIG_SDM_VIDEOCC_845) += videocc-sdm845.o
|
||||
obj-$(CONFIG_SDX_GCC_55) += gcc-sdx55.o
|
||||
obj-$(CONFIG_SDX_GCC_65) += gcc-sdx65.o
|
||||
obj-$(CONFIG_SM_CAMCC_6350) += camcc-sm6350.o
|
||||
obj-$(CONFIG_SM_CAMCC_8250) += camcc-sm8250.o
|
||||
obj-$(CONFIG_SM_CAMCC_8450) += camcc-sm8450.o
|
||||
obj-$(CONFIG_SM_DISPCC_6115) += dispcc-sm6115.o
|
||||
@ -99,6 +102,7 @@ obj-$(CONFIG_SM_DISPCC_6350) += dispcc-sm6350.o
|
||||
obj-$(CONFIG_SM_DISPCC_6375) += dispcc-sm6375.o
|
||||
obj-$(CONFIG_SM_DISPCC_8250) += dispcc-sm8250.o
|
||||
obj-$(CONFIG_SM_DISPCC_8450) += dispcc-sm8450.o
|
||||
obj-$(CONFIG_SM_DISPCC_8550) += dispcc-sm8550.o
|
||||
obj-$(CONFIG_SM_GCC_6115) += gcc-sm6115.o
|
||||
obj-$(CONFIG_SM_GCC_6125) += gcc-sm6125.o
|
||||
obj-$(CONFIG_SM_GCC_6350) += gcc-sm6350.o
|
||||
@ -112,6 +116,7 @@ obj-$(CONFIG_SM_GPUCC_6350) += gpucc-sm6350.o
|
||||
obj-$(CONFIG_SM_GPUCC_8150) += gpucc-sm8150.o
|
||||
obj-$(CONFIG_SM_GPUCC_8250) += gpucc-sm8250.o
|
||||
obj-$(CONFIG_SM_GPUCC_8350) += gpucc-sm8350.o
|
||||
obj-$(CONFIG_SM_TCSRCC_8550) += tcsrcc-sm8550.o
|
||||
obj-$(CONFIG_SM_VIDEOCC_8150) += videocc-sm8150.o
|
||||
obj-$(CONFIG_SM_VIDEOCC_8250) += videocc-sm8250.o
|
||||
obj-$(CONFIG_SPMI_PMIC_CLKDIV) += clk-spmi-pmic-div.o
|
||||
|
89
drivers/clk/qcom/apcs-msm8996.c
Normal file
89
drivers/clk/qcom/apcs-msm8996.c
Normal file
@ -0,0 +1,89 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* Qualcomm APCS clock controller driver
|
||||
*
|
||||
* Copyright (c) 2022, Linaro Limited
|
||||
* Author: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
|
||||
*/
|
||||
|
||||
#include <linux/bits.h>
|
||||
#include <linux/bitfield.h>
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
#define APCS_AUX_OFFSET 0x50
|
||||
|
||||
#define APCS_AUX_DIV_MASK GENMASK(17, 16)
|
||||
#define APCS_AUX_DIV_2 0x1
|
||||
|
||||
static int qcom_apcs_msm8996_clk_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct device *dev = &pdev->dev;
|
||||
struct device *parent = dev->parent;
|
||||
struct regmap *regmap;
|
||||
struct clk_hw *hw;
|
||||
unsigned int val;
|
||||
int ret = -ENODEV;
|
||||
|
||||
regmap = dev_get_regmap(parent, NULL);
|
||||
if (!regmap) {
|
||||
dev_err(dev, "failed to get regmap: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
regmap_read(regmap, APCS_AUX_OFFSET, &val);
|
||||
regmap_update_bits(regmap, APCS_AUX_OFFSET, APCS_AUX_DIV_MASK,
|
||||
FIELD_PREP(APCS_AUX_DIV_MASK, APCS_AUX_DIV_2));
|
||||
|
||||
/*
|
||||
* This clock is used during CPU cluster setup while setting up CPU PLLs.
|
||||
* Add hardware mandated delay to make sure that the sys_apcs_aux clock
|
||||
* is stable (after setting the divider) before continuing
|
||||
* bootstrapping to keep CPUs from ending up in a weird state.
|
||||
*/
|
||||
udelay(5);
|
||||
|
||||
/*
|
||||
* As this clocks is a parent of the CPU cluster clocks and is actually
|
||||
* used as a parent during CPU clocks setup, we want for it to register
|
||||
* as early as possible, without letting fw_devlink to delay probing of
|
||||
* either of the drivers.
|
||||
*
|
||||
* The sys_apcs_aux is a child (divider) of gpll0, but we register it
|
||||
* as a fixed rate clock instead to ease bootstrapping procedure. By
|
||||
* doing this we make sure that CPU cluster clocks are able to be setup
|
||||
* early during the boot process (as it is recommended by Qualcomm).
|
||||
*/
|
||||
hw = devm_clk_hw_register_fixed_rate(dev, "sys_apcs_aux", NULL, 0, 300000000);
|
||||
if (IS_ERR(hw))
|
||||
return PTR_ERR(hw);
|
||||
|
||||
return devm_of_clk_add_hw_provider(dev, of_clk_hw_simple_get, hw);
|
||||
}
|
||||
|
||||
static struct platform_driver qcom_apcs_msm8996_clk_driver = {
|
||||
.probe = qcom_apcs_msm8996_clk_probe,
|
||||
.driver = {
|
||||
.name = "qcom-apcs-msm8996-clk",
|
||||
},
|
||||
};
|
||||
|
||||
/* Register early enough to fix the clock to be used for other cores */
|
||||
static int __init qcom_apcs_msm8996_clk_init(void)
|
||||
{
|
||||
return platform_driver_register(&qcom_apcs_msm8996_clk_driver);
|
||||
}
|
||||
postcore_initcall(qcom_apcs_msm8996_clk_init);
|
||||
|
||||
static void __exit qcom_apcs_msm8996_clk_exit(void)
|
||||
{
|
||||
platform_driver_unregister(&qcom_apcs_msm8996_clk_driver);
|
||||
}
|
||||
module_exit(qcom_apcs_msm8996_clk_exit);
|
||||
|
||||
MODULE_AUTHOR("Dmitry Baryshkov <dmitry.baryshkov@linaro.org>");
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_DESCRIPTION("Qualcomm MSM8996 APCS clock driver");
|
@ -88,8 +88,8 @@ static struct clk_alpha_pll_postdiv cam_cc_pll0_out_even = {
|
||||
.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
|
||||
.clkr.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_pll0_out_even",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_pll0.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_pll0.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -111,8 +111,8 @@ static struct clk_alpha_pll_postdiv cam_cc_pll0_out_odd = {
|
||||
.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
|
||||
.clkr.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_pll0_out_odd",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_pll0.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_pll0.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -163,8 +163,8 @@ static struct clk_alpha_pll_postdiv cam_cc_pll1_out_even = {
|
||||
.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
|
||||
.clkr.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_pll1_out_even",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_pll1.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_pll1.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -213,8 +213,8 @@ static struct clk_alpha_pll_postdiv cam_cc_pll2_out_aux = {
|
||||
.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_ZONDA],
|
||||
.clkr.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_pll2_out_aux",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_pll2.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_pll2.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -236,8 +236,8 @@ static struct clk_alpha_pll_postdiv cam_cc_pll2_out_aux2 = {
|
||||
.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_ZONDA],
|
||||
.clkr.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_pll2_out_aux2",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_pll2.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_pll2.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -288,8 +288,8 @@ static struct clk_alpha_pll_postdiv cam_cc_pll3_out_even = {
|
||||
.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
|
||||
.clkr.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_pll3_out_even",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_pll3.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_pll3.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -340,8 +340,8 @@ static struct clk_alpha_pll_postdiv cam_cc_pll4_out_even = {
|
||||
.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
|
||||
.clkr.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_pll4_out_even",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_pll4.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_pll4.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -392,8 +392,8 @@ static struct clk_alpha_pll_postdiv cam_cc_pll5_out_even = {
|
||||
.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
|
||||
.clkr.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_pll5_out_even",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_pll5.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_pll5.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -444,8 +444,8 @@ static struct clk_alpha_pll_postdiv cam_cc_pll6_out_even = {
|
||||
.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
|
||||
.clkr.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_pll6_out_even",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_pll6.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_pll6.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -467,8 +467,8 @@ static struct clk_alpha_pll_postdiv cam_cc_pll6_out_odd = {
|
||||
.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
|
||||
.clkr.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_pll6_out_odd",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_pll6.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_pll6.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1227,8 +1227,8 @@ static struct clk_branch cam_cc_bps_ahb_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_bps_ahb_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_slow_ahb_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_slow_ahb_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1245,8 +1245,8 @@ static struct clk_branch cam_cc_bps_areg_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_bps_areg_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_fast_ahb_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_fast_ahb_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1263,8 +1263,8 @@ static struct clk_branch cam_cc_bps_axi_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_bps_axi_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_camnoc_axi_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_camnoc_axi_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1281,8 +1281,8 @@ static struct clk_branch cam_cc_bps_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_bps_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_bps_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_bps_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1299,8 +1299,8 @@ static struct clk_branch cam_cc_camnoc_axi_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_camnoc_axi_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_camnoc_axi_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_camnoc_axi_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1317,8 +1317,8 @@ static struct clk_branch cam_cc_camnoc_dcd_xo_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_camnoc_dcd_xo_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_xo_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_xo_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1335,8 +1335,8 @@ static struct clk_branch cam_cc_cci_0_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_cci_0_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_cci_0_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_cci_0_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1353,8 +1353,8 @@ static struct clk_branch cam_cc_cci_1_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_cci_1_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_cci_1_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_cci_1_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1371,8 +1371,8 @@ static struct clk_branch cam_cc_core_ahb_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_core_ahb_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_slow_ahb_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_slow_ahb_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1389,8 +1389,8 @@ static struct clk_branch cam_cc_cpas_ahb_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_cpas_ahb_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_slow_ahb_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_slow_ahb_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1407,8 +1407,8 @@ static struct clk_branch cam_cc_csi0phytimer_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_csi0phytimer_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_csi0phytimer_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_csi0phytimer_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1425,8 +1425,8 @@ static struct clk_branch cam_cc_csi1phytimer_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_csi1phytimer_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_csi1phytimer_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_csi1phytimer_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1443,8 +1443,8 @@ static struct clk_branch cam_cc_csi2phytimer_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_csi2phytimer_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_csi2phytimer_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_csi2phytimer_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1461,8 +1461,8 @@ static struct clk_branch cam_cc_csi3phytimer_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_csi3phytimer_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_csi3phytimer_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_csi3phytimer_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1479,8 +1479,8 @@ static struct clk_branch cam_cc_csi4phytimer_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_csi4phytimer_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_csi4phytimer_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_csi4phytimer_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1497,8 +1497,8 @@ static struct clk_branch cam_cc_csiphy0_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_csiphy0_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_cphy_rx_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_cphy_rx_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1515,8 +1515,8 @@ static struct clk_branch cam_cc_csiphy1_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_csiphy1_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_cphy_rx_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_cphy_rx_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1533,8 +1533,8 @@ static struct clk_branch cam_cc_csiphy2_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_csiphy2_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_cphy_rx_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_cphy_rx_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1551,8 +1551,8 @@ static struct clk_branch cam_cc_csiphy3_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_csiphy3_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_cphy_rx_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_cphy_rx_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1569,8 +1569,8 @@ static struct clk_branch cam_cc_csiphy4_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_csiphy4_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_cphy_rx_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_cphy_rx_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1587,8 +1587,8 @@ static struct clk_branch cam_cc_gdsc_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_gdsc_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_xo_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_xo_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_IS_CRITICAL | CLK_SET_RATE_PARENT,
|
||||
@ -1605,8 +1605,8 @@ static struct clk_branch cam_cc_icp_ahb_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_icp_ahb_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_slow_ahb_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_slow_ahb_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1623,8 +1623,8 @@ static struct clk_branch cam_cc_icp_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_icp_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_icp_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_icp_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1641,8 +1641,8 @@ static struct clk_branch cam_cc_ife_0_axi_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_ife_0_axi_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_camnoc_axi_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_camnoc_axi_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1659,8 +1659,8 @@ static struct clk_branch cam_cc_ife_0_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_ife_0_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_ife_0_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_ife_0_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1677,8 +1677,8 @@ static struct clk_branch cam_cc_ife_0_cphy_rx_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_ife_0_cphy_rx_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_cphy_rx_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_cphy_rx_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1695,8 +1695,8 @@ static struct clk_branch cam_cc_ife_0_csid_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_ife_0_csid_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_ife_0_csid_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_ife_0_csid_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1713,8 +1713,8 @@ static struct clk_branch cam_cc_ife_0_dsp_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_ife_0_dsp_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_ife_0_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_ife_0_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1731,8 +1731,8 @@ static struct clk_branch cam_cc_ife_1_axi_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_ife_1_axi_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_camnoc_axi_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_camnoc_axi_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1749,8 +1749,8 @@ static struct clk_branch cam_cc_ife_1_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_ife_1_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_ife_1_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_ife_1_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1767,8 +1767,8 @@ static struct clk_branch cam_cc_ife_1_cphy_rx_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_ife_1_cphy_rx_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_cphy_rx_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_cphy_rx_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1785,8 +1785,8 @@ static struct clk_branch cam_cc_ife_1_csid_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_ife_1_csid_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_ife_1_csid_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_ife_1_csid_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1803,8 +1803,8 @@ static struct clk_branch cam_cc_ife_1_dsp_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_ife_1_dsp_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_ife_1_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_ife_1_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1821,8 +1821,8 @@ static struct clk_branch cam_cc_ife_2_axi_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_ife_2_axi_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_camnoc_axi_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_camnoc_axi_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1839,8 +1839,8 @@ static struct clk_branch cam_cc_ife_2_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_ife_2_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_ife_2_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_ife_2_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1857,8 +1857,8 @@ static struct clk_branch cam_cc_ife_2_cphy_rx_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_ife_2_cphy_rx_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_cphy_rx_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_cphy_rx_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1875,8 +1875,8 @@ static struct clk_branch cam_cc_ife_2_csid_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_ife_2_csid_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_ife_2_csid_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_ife_2_csid_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1893,8 +1893,8 @@ static struct clk_branch cam_cc_ife_2_dsp_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_ife_2_dsp_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_ife_2_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_ife_2_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1911,8 +1911,8 @@ static struct clk_branch cam_cc_ife_lite_0_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_ife_lite_0_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_ife_lite_0_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_ife_lite_0_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1929,8 +1929,8 @@ static struct clk_branch cam_cc_ife_lite_0_cphy_rx_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_ife_lite_0_cphy_rx_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_cphy_rx_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_cphy_rx_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1947,8 +1947,8 @@ static struct clk_branch cam_cc_ife_lite_0_csid_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_ife_lite_0_csid_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_ife_lite_0_csid_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_ife_lite_0_csid_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1965,8 +1965,8 @@ static struct clk_branch cam_cc_ife_lite_1_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_ife_lite_1_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_ife_lite_1_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_ife_lite_1_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1983,8 +1983,8 @@ static struct clk_branch cam_cc_ife_lite_1_cphy_rx_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_ife_lite_1_cphy_rx_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_cphy_rx_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_cphy_rx_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2001,8 +2001,8 @@ static struct clk_branch cam_cc_ife_lite_1_csid_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_ife_lite_1_csid_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_ife_lite_1_csid_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_ife_lite_1_csid_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2019,8 +2019,8 @@ static struct clk_branch cam_cc_ipe_0_ahb_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_ipe_0_ahb_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_slow_ahb_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_slow_ahb_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2037,8 +2037,8 @@ static struct clk_branch cam_cc_ipe_0_areg_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_ipe_0_areg_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_fast_ahb_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_fast_ahb_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2055,8 +2055,8 @@ static struct clk_branch cam_cc_ipe_0_axi_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_ipe_0_axi_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_camnoc_axi_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_camnoc_axi_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2073,8 +2073,8 @@ static struct clk_branch cam_cc_ipe_0_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_ipe_0_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_ipe_0_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_ipe_0_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2091,8 +2091,8 @@ static struct clk_branch cam_cc_jpeg_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_jpeg_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_jpeg_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_jpeg_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2109,8 +2109,8 @@ static struct clk_branch cam_cc_lrme_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_lrme_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_lrme_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_lrme_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2127,8 +2127,8 @@ static struct clk_branch cam_cc_mclk0_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_mclk0_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_mclk0_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_mclk0_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2145,8 +2145,8 @@ static struct clk_branch cam_cc_mclk1_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_mclk1_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_mclk1_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_mclk1_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2163,8 +2163,8 @@ static struct clk_branch cam_cc_mclk2_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_mclk2_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_mclk2_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_mclk2_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2181,8 +2181,8 @@ static struct clk_branch cam_cc_mclk3_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_mclk3_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_mclk3_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_mclk3_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2199,8 +2199,8 @@ static struct clk_branch cam_cc_mclk4_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_mclk4_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_mclk4_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_mclk4_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2217,8 +2217,8 @@ static struct clk_branch cam_cc_mclk5_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_mclk5_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_mclk5_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_mclk5_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2235,8 +2235,8 @@ static struct clk_branch cam_cc_sleep_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cam_cc_sleep_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &cam_cc_sleep_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_sleep_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
|
1906
drivers/clk/qcom/camcc-sm6350.c
Normal file
1906
drivers/clk/qcom/camcc-sm6350.c
Normal file
File diff suppressed because it is too large
Load Diff
@ -95,8 +95,8 @@ static struct clk_alpha_pll_postdiv cam_cc_pll0_out_even = {
|
||||
.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
|
||||
.clkr.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_pll0_out_even",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_pll0.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_pll0.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -118,8 +118,8 @@ static struct clk_alpha_pll_postdiv cam_cc_pll0_out_odd = {
|
||||
.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
|
||||
.clkr.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_pll0_out_odd",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_pll0.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_pll0.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -166,8 +166,8 @@ static struct clk_alpha_pll_postdiv cam_cc_pll1_out_even = {
|
||||
.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
|
||||
.clkr.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_pll1_out_even",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_pll1.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_pll1.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -237,8 +237,8 @@ static struct clk_alpha_pll_postdiv cam_cc_pll3_out_even = {
|
||||
.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
|
||||
.clkr.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_pll3_out_even",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_pll3.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_pll3.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -285,8 +285,8 @@ static struct clk_alpha_pll_postdiv cam_cc_pll4_out_even = {
|
||||
.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
|
||||
.clkr.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_pll4_out_even",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_pll4.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_pll4.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -333,8 +333,8 @@ static struct clk_alpha_pll_postdiv cam_cc_pll5_out_even = {
|
||||
.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
|
||||
.clkr.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_pll5_out_even",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_pll5.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_pll5.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -381,8 +381,8 @@ static struct clk_alpha_pll_postdiv cam_cc_pll6_out_even = {
|
||||
.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
|
||||
.clkr.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_pll6_out_even",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_pll6.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_pll6.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -429,8 +429,8 @@ static struct clk_alpha_pll_postdiv cam_cc_pll7_out_even = {
|
||||
.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
|
||||
.clkr.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_pll7_out_even",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_pll7.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_pll7.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -477,8 +477,8 @@ static struct clk_alpha_pll_postdiv cam_cc_pll8_out_even = {
|
||||
.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
|
||||
.clkr.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_pll8_out_even",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_pll8.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_pll8.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1268,8 +1268,8 @@ static struct clk_branch cam_cc_gdsc_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_gdsc_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_xo_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_xo_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_IS_CRITICAL | CLK_SET_RATE_PARENT,
|
||||
@ -1286,8 +1286,8 @@ static struct clk_branch cam_cc_bps_ahb_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_bps_ahb_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_slow_ahb_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_slow_ahb_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1304,8 +1304,8 @@ static struct clk_branch cam_cc_bps_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_bps_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_bps_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_bps_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1322,8 +1322,8 @@ static struct clk_branch cam_cc_bps_fast_ahb_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_bps_fast_ahb_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_fast_ahb_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_fast_ahb_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1340,8 +1340,8 @@ static struct clk_branch cam_cc_camnoc_axi_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_camnoc_axi_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_camnoc_axi_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_camnoc_axi_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1358,8 +1358,8 @@ static struct clk_branch cam_cc_camnoc_dcd_xo_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_camnoc_dcd_xo_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_xo_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_xo_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1376,8 +1376,8 @@ static struct clk_branch cam_cc_cci_0_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_cci_0_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_cci_0_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_cci_0_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1394,8 +1394,8 @@ static struct clk_branch cam_cc_cci_1_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_cci_1_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_cci_1_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_cci_1_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1412,8 +1412,8 @@ static struct clk_branch cam_cc_core_ahb_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_core_ahb_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_slow_ahb_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_slow_ahb_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1430,8 +1430,8 @@ static struct clk_branch cam_cc_cpas_ahb_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_cpas_ahb_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_slow_ahb_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_slow_ahb_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1448,8 +1448,8 @@ static struct clk_branch cam_cc_cpas_bps_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_cpas_bps_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_bps_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_bps_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1466,8 +1466,8 @@ static struct clk_branch cam_cc_cpas_fast_ahb_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_cpas_fast_ahb_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_fast_ahb_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_fast_ahb_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1484,8 +1484,8 @@ static struct clk_branch cam_cc_cpas_ife_0_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_cpas_ife_0_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_ife_0_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_ife_0_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1502,8 +1502,8 @@ static struct clk_branch cam_cc_cpas_ife_1_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_cpas_ife_1_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_ife_1_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_ife_1_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1520,8 +1520,8 @@ static struct clk_branch cam_cc_cpas_ife_2_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_cpas_ife_2_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_ife_2_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_ife_2_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1538,8 +1538,8 @@ static struct clk_branch cam_cc_cpas_ife_lite_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_cpas_ife_lite_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_ife_lite_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_ife_lite_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1556,8 +1556,8 @@ static struct clk_branch cam_cc_cpas_ipe_nps_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_cpas_ipe_nps_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_ipe_nps_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_ipe_nps_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1574,8 +1574,8 @@ static struct clk_branch cam_cc_cpas_sbi_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_cpas_sbi_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_ife_0_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_ife_0_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1592,8 +1592,8 @@ static struct clk_branch cam_cc_cpas_sfe_0_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_cpas_sfe_0_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_sfe_0_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_sfe_0_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1610,8 +1610,8 @@ static struct clk_branch cam_cc_cpas_sfe_1_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_cpas_sfe_1_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_sfe_1_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_sfe_1_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1628,8 +1628,8 @@ static struct clk_branch cam_cc_csi0phytimer_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_csi0phytimer_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_csi0phytimer_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_csi0phytimer_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1646,8 +1646,8 @@ static struct clk_branch cam_cc_csi1phytimer_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_csi1phytimer_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_csi1phytimer_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_csi1phytimer_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1664,8 +1664,8 @@ static struct clk_branch cam_cc_csi2phytimer_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_csi2phytimer_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_csi2phytimer_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_csi2phytimer_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1682,8 +1682,8 @@ static struct clk_branch cam_cc_csi3phytimer_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_csi3phytimer_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_csi3phytimer_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_csi3phytimer_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1700,8 +1700,8 @@ static struct clk_branch cam_cc_csi4phytimer_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_csi4phytimer_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_csi4phytimer_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_csi4phytimer_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1718,8 +1718,8 @@ static struct clk_branch cam_cc_csi5phytimer_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_csi5phytimer_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_csi5phytimer_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_csi5phytimer_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1736,8 +1736,8 @@ static struct clk_branch cam_cc_csid_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_csid_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_csid_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_csid_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1754,8 +1754,8 @@ static struct clk_branch cam_cc_csid_csiphy_rx_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_csid_csiphy_rx_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_cphy_rx_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_cphy_rx_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1772,8 +1772,8 @@ static struct clk_branch cam_cc_csiphy0_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_csiphy0_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_cphy_rx_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_cphy_rx_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1790,8 +1790,8 @@ static struct clk_branch cam_cc_csiphy1_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_csiphy1_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_cphy_rx_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_cphy_rx_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1808,8 +1808,8 @@ static struct clk_branch cam_cc_csiphy2_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_csiphy2_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_cphy_rx_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_cphy_rx_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1826,8 +1826,8 @@ static struct clk_branch cam_cc_csiphy3_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_csiphy3_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_cphy_rx_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_cphy_rx_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1844,8 +1844,8 @@ static struct clk_branch cam_cc_csiphy4_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_csiphy4_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_cphy_rx_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_cphy_rx_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1862,8 +1862,8 @@ static struct clk_branch cam_cc_csiphy5_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_csiphy5_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_cphy_rx_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_cphy_rx_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1880,8 +1880,8 @@ static struct clk_branch cam_cc_icp_ahb_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_icp_ahb_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_slow_ahb_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_slow_ahb_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1898,8 +1898,8 @@ static struct clk_branch cam_cc_icp_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_icp_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_icp_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_icp_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1916,8 +1916,8 @@ static struct clk_branch cam_cc_ife_0_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_ife_0_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_ife_0_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_ife_0_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1934,8 +1934,8 @@ static struct clk_branch cam_cc_ife_0_dsp_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_ife_0_dsp_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_ife_0_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_ife_0_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1952,8 +1952,8 @@ static struct clk_branch cam_cc_ife_0_fast_ahb_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_ife_0_fast_ahb_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_fast_ahb_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_fast_ahb_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1970,8 +1970,8 @@ static struct clk_branch cam_cc_ife_1_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_ife_1_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_ife_1_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_ife_1_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1988,8 +1988,8 @@ static struct clk_branch cam_cc_ife_1_dsp_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_ife_1_dsp_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_ife_1_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_ife_1_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2006,8 +2006,8 @@ static struct clk_branch cam_cc_ife_1_fast_ahb_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_ife_1_fast_ahb_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_fast_ahb_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_fast_ahb_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2024,8 +2024,8 @@ static struct clk_branch cam_cc_ife_2_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_ife_2_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_ife_2_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_ife_2_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2042,8 +2042,8 @@ static struct clk_branch cam_cc_ife_2_dsp_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_ife_2_dsp_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_ife_2_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_ife_2_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2060,8 +2060,8 @@ static struct clk_branch cam_cc_ife_2_fast_ahb_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_ife_2_fast_ahb_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_fast_ahb_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_fast_ahb_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2078,8 +2078,8 @@ static struct clk_branch cam_cc_ife_lite_ahb_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_ife_lite_ahb_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_slow_ahb_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_slow_ahb_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2096,8 +2096,8 @@ static struct clk_branch cam_cc_ife_lite_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_ife_lite_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_ife_lite_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_ife_lite_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2114,8 +2114,8 @@ static struct clk_branch cam_cc_ife_lite_cphy_rx_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_ife_lite_cphy_rx_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_cphy_rx_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_cphy_rx_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2132,8 +2132,8 @@ static struct clk_branch cam_cc_ife_lite_csid_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_ife_lite_csid_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_ife_lite_csid_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_ife_lite_csid_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2150,8 +2150,8 @@ static struct clk_branch cam_cc_ipe_nps_ahb_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_ipe_nps_ahb_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_slow_ahb_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_slow_ahb_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2168,8 +2168,8 @@ static struct clk_branch cam_cc_ipe_nps_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_ipe_nps_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_ipe_nps_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_ipe_nps_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2186,8 +2186,8 @@ static struct clk_branch cam_cc_ipe_nps_fast_ahb_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_ipe_nps_fast_ahb_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_fast_ahb_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_fast_ahb_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2204,8 +2204,8 @@ static struct clk_branch cam_cc_ipe_pps_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_ipe_pps_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_ipe_nps_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_ipe_nps_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2222,8 +2222,8 @@ static struct clk_branch cam_cc_ipe_pps_fast_ahb_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_ipe_pps_fast_ahb_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_fast_ahb_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_fast_ahb_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2240,8 +2240,8 @@ static struct clk_branch cam_cc_jpeg_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_jpeg_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_jpeg_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_jpeg_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2258,8 +2258,8 @@ static struct clk_branch cam_cc_mclk0_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_mclk0_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_mclk0_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_mclk0_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2276,8 +2276,8 @@ static struct clk_branch cam_cc_mclk1_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_mclk1_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_mclk1_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_mclk1_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2294,8 +2294,8 @@ static struct clk_branch cam_cc_mclk2_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_mclk2_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_mclk2_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_mclk2_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2312,8 +2312,8 @@ static struct clk_branch cam_cc_mclk3_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_mclk3_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_mclk3_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_mclk3_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2330,8 +2330,8 @@ static struct clk_branch cam_cc_mclk4_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_mclk4_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_mclk4_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_mclk4_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2348,8 +2348,8 @@ static struct clk_branch cam_cc_mclk5_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_mclk5_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_mclk5_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_mclk5_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2366,8 +2366,8 @@ static struct clk_branch cam_cc_mclk6_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_mclk6_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_mclk6_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_mclk6_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2384,8 +2384,8 @@ static struct clk_branch cam_cc_mclk7_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_mclk7_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_mclk7_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_mclk7_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2402,8 +2402,8 @@ static struct clk_branch cam_cc_qdss_debug_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_qdss_debug_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_qdss_debug_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_qdss_debug_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2420,8 +2420,8 @@ static struct clk_branch cam_cc_qdss_debug_xo_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_qdss_debug_xo_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_xo_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_xo_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2438,8 +2438,8 @@ static struct clk_branch cam_cc_sbi_ahb_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_sbi_ahb_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_slow_ahb_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_slow_ahb_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2456,8 +2456,8 @@ static struct clk_branch cam_cc_sbi_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_sbi_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_ife_0_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_ife_0_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2474,8 +2474,8 @@ static struct clk_branch cam_cc_sfe_0_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_sfe_0_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_sfe_0_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_sfe_0_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2492,8 +2492,8 @@ static struct clk_branch cam_cc_sfe_0_fast_ahb_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_sfe_0_fast_ahb_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_fast_ahb_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_fast_ahb_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2510,8 +2510,8 @@ static struct clk_branch cam_cc_sfe_1_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_sfe_1_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_sfe_1_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_sfe_1_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2528,8 +2528,8 @@ static struct clk_branch cam_cc_sfe_1_fast_ahb_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_sfe_1_fast_ahb_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_fast_ahb_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_fast_ahb_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2546,8 +2546,8 @@ static struct clk_branch cam_cc_sleep_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "cam_cc_sleep_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &cam_cc_sleep_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&cam_cc_sleep_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
|
@ -358,6 +358,11 @@ void clk_alpha_pll_configure(struct clk_alpha_pll *pll, struct regmap *regmap,
|
||||
|
||||
regmap_update_bits(regmap, PLL_USER_CTL(pll), mask, val);
|
||||
|
||||
clk_alpha_pll_write_config(regmap, PLL_TEST_CTL(pll),
|
||||
config->test_ctl_val);
|
||||
clk_alpha_pll_write_config(regmap, PLL_TEST_CTL_U(pll),
|
||||
config->test_ctl_hi_val);
|
||||
|
||||
if (pll->flags & SUPPORTS_FSM_MODE)
|
||||
qcom_pll_set_fsm_mode(regmap, PLL_MODE(pll), 6, 0);
|
||||
}
|
||||
|
@ -162,6 +162,7 @@ extern const struct clk_ops clk_alpha_pll_zonda_ops;
|
||||
|
||||
extern const struct clk_ops clk_alpha_pll_lucid_evo_ops;
|
||||
extern const struct clk_ops clk_alpha_pll_reset_lucid_evo_ops;
|
||||
#define clk_alpha_pll_reset_lucid_ole_ops clk_alpha_pll_reset_lucid_evo_ops
|
||||
extern const struct clk_ops clk_alpha_pll_fixed_lucid_evo_ops;
|
||||
#define clk_alpha_pll_fixed_lucid_ole_ops clk_alpha_pll_fixed_lucid_evo_ops
|
||||
extern const struct clk_ops clk_alpha_pll_postdiv_lucid_evo_ops;
|
||||
|
315
drivers/clk/qcom/clk-cbf-8996.c
Normal file
315
drivers/clk/qcom/clk-cbf-8996.c
Normal file
@ -0,0 +1,315 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* Copyright (c) 2022, 2023 Linaro Ltd.
|
||||
*/
|
||||
#include <linux/bitfield.h>
|
||||
#include <linux/clk.h>
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
#include "clk-alpha-pll.h"
|
||||
#include "clk-regmap.h"
|
||||
|
||||
/* Need to match the order of clocks in DT binding */
|
||||
enum {
|
||||
DT_XO,
|
||||
DT_APCS_AUX,
|
||||
};
|
||||
|
||||
enum {
|
||||
CBF_XO_INDEX,
|
||||
CBF_PLL_INDEX,
|
||||
CBF_DIV_INDEX,
|
||||
CBF_APCS_AUX_INDEX,
|
||||
};
|
||||
|
||||
#define DIV_THRESHOLD 600000000
|
||||
|
||||
#define CBF_MUX_OFFSET 0x18
|
||||
#define CBF_MUX_PARENT_MASK GENMASK(1, 0)
|
||||
#define CBF_MUX_AUTO_CLK_SEL_ALWAYS_ON_MASK GENMASK(5, 4)
|
||||
#define CBF_MUX_AUTO_CLK_SEL_ALWAYS_ON_GPLL0_SEL \
|
||||
FIELD_PREP(CBF_MUX_AUTO_CLK_SEL_ALWAYS_ON_MASK, 0x03)
|
||||
#define CBF_MUX_AUTO_CLK_SEL_BIT BIT(6)
|
||||
|
||||
#define CBF_PLL_OFFSET 0xf000
|
||||
|
||||
static const u8 cbf_pll_regs[PLL_OFF_MAX_REGS] = {
|
||||
[PLL_OFF_L_VAL] = 0x08,
|
||||
[PLL_OFF_ALPHA_VAL] = 0x10,
|
||||
[PLL_OFF_USER_CTL] = 0x18,
|
||||
[PLL_OFF_CONFIG_CTL] = 0x20,
|
||||
[PLL_OFF_CONFIG_CTL_U] = 0x24,
|
||||
[PLL_OFF_TEST_CTL] = 0x30,
|
||||
[PLL_OFF_TEST_CTL_U] = 0x34,
|
||||
[PLL_OFF_STATUS] = 0x28,
|
||||
};
|
||||
|
||||
static const struct alpha_pll_config cbfpll_config = {
|
||||
.l = 72,
|
||||
.config_ctl_val = 0x200d4828,
|
||||
.config_ctl_hi_val = 0x006,
|
||||
.test_ctl_val = 0x1c000000,
|
||||
.test_ctl_hi_val = 0x00004000,
|
||||
.pre_div_mask = BIT(12),
|
||||
.post_div_mask = 0x3 << 8,
|
||||
.post_div_val = 0x1 << 8,
|
||||
.main_output_mask = BIT(0),
|
||||
.early_output_mask = BIT(3),
|
||||
};
|
||||
|
||||
static struct clk_alpha_pll cbf_pll = {
|
||||
.offset = CBF_PLL_OFFSET,
|
||||
.regs = cbf_pll_regs,
|
||||
.flags = SUPPORTS_DYNAMIC_UPDATE | SUPPORTS_FSM_MODE,
|
||||
.clkr.hw.init = &(struct clk_init_data){
|
||||
.name = "cbf_pll",
|
||||
.parent_data = (const struct clk_parent_data[]) {
|
||||
{ .index = DT_XO, },
|
||||
},
|
||||
.num_parents = 1,
|
||||
.ops = &clk_alpha_pll_hwfsm_ops,
|
||||
},
|
||||
};
|
||||
|
||||
static struct clk_fixed_factor cbf_pll_postdiv = {
|
||||
.mult = 1,
|
||||
.div = 2,
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "cbf_pll_postdiv",
|
||||
.parent_hws = (const struct clk_hw*[]){
|
||||
&cbf_pll.clkr.hw
|
||||
},
|
||||
.num_parents = 1,
|
||||
.ops = &clk_fixed_factor_ops,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
},
|
||||
};
|
||||
|
||||
static const struct clk_parent_data cbf_mux_parent_data[] = {
|
||||
{ .index = DT_XO },
|
||||
{ .hw = &cbf_pll.clkr.hw },
|
||||
{ .hw = &cbf_pll_postdiv.hw },
|
||||
{ .index = DT_APCS_AUX },
|
||||
};
|
||||
|
||||
struct clk_cbf_8996_mux {
|
||||
u32 reg;
|
||||
struct notifier_block nb;
|
||||
struct clk_regmap clkr;
|
||||
};
|
||||
|
||||
static struct clk_cbf_8996_mux *to_clk_cbf_8996_mux(struct clk_regmap *clkr)
|
||||
{
|
||||
return container_of(clkr, struct clk_cbf_8996_mux, clkr);
|
||||
}
|
||||
|
||||
static int cbf_clk_notifier_cb(struct notifier_block *nb, unsigned long event,
|
||||
void *data);
|
||||
|
||||
static u8 clk_cbf_8996_mux_get_parent(struct clk_hw *hw)
|
||||
{
|
||||
struct clk_regmap *clkr = to_clk_regmap(hw);
|
||||
struct clk_cbf_8996_mux *mux = to_clk_cbf_8996_mux(clkr);
|
||||
u32 val;
|
||||
|
||||
regmap_read(clkr->regmap, mux->reg, &val);
|
||||
|
||||
return FIELD_GET(CBF_MUX_PARENT_MASK, val);
|
||||
}
|
||||
|
||||
static int clk_cbf_8996_mux_set_parent(struct clk_hw *hw, u8 index)
|
||||
{
|
||||
struct clk_regmap *clkr = to_clk_regmap(hw);
|
||||
struct clk_cbf_8996_mux *mux = to_clk_cbf_8996_mux(clkr);
|
||||
u32 val;
|
||||
|
||||
val = FIELD_PREP(CBF_MUX_PARENT_MASK, index);
|
||||
|
||||
return regmap_update_bits(clkr->regmap, mux->reg, CBF_MUX_PARENT_MASK, val);
|
||||
}
|
||||
|
||||
static int clk_cbf_8996_mux_determine_rate(struct clk_hw *hw,
|
||||
struct clk_rate_request *req)
|
||||
{
|
||||
struct clk_hw *parent;
|
||||
|
||||
if (req->rate < (DIV_THRESHOLD / 2))
|
||||
return -EINVAL;
|
||||
|
||||
if (req->rate < DIV_THRESHOLD)
|
||||
parent = clk_hw_get_parent_by_index(hw, CBF_DIV_INDEX);
|
||||
else
|
||||
parent = clk_hw_get_parent_by_index(hw, CBF_PLL_INDEX);
|
||||
|
||||
if (!parent)
|
||||
return -EINVAL;
|
||||
|
||||
req->best_parent_rate = clk_hw_round_rate(parent, req->rate);
|
||||
req->best_parent_hw = parent;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct clk_ops clk_cbf_8996_mux_ops = {
|
||||
.set_parent = clk_cbf_8996_mux_set_parent,
|
||||
.get_parent = clk_cbf_8996_mux_get_parent,
|
||||
.determine_rate = clk_cbf_8996_mux_determine_rate,
|
||||
};
|
||||
|
||||
static struct clk_cbf_8996_mux cbf_mux = {
|
||||
.reg = CBF_MUX_OFFSET,
|
||||
.nb.notifier_call = cbf_clk_notifier_cb,
|
||||
.clkr.hw.init = &(struct clk_init_data) {
|
||||
.name = "cbf_mux",
|
||||
.parent_data = cbf_mux_parent_data,
|
||||
.num_parents = ARRAY_SIZE(cbf_mux_parent_data),
|
||||
.ops = &clk_cbf_8996_mux_ops,
|
||||
/* CPU clock is critical and should never be gated */
|
||||
.flags = CLK_SET_RATE_PARENT | CLK_IS_CRITICAL,
|
||||
},
|
||||
};
|
||||
|
||||
static int cbf_clk_notifier_cb(struct notifier_block *nb, unsigned long event,
|
||||
void *data)
|
||||
{
|
||||
struct clk_notifier_data *cnd = data;
|
||||
|
||||
switch (event) {
|
||||
case PRE_RATE_CHANGE:
|
||||
/*
|
||||
* Avoid overvolting. clk_core_set_rate_nolock() walks from top
|
||||
* to bottom, so it will change the rate of the PLL before
|
||||
* chaging the parent of PMUX. This can result in pmux getting
|
||||
* clocked twice the expected rate.
|
||||
*
|
||||
* Manually switch to PLL/2 here.
|
||||
*/
|
||||
if (cnd->old_rate > DIV_THRESHOLD &&
|
||||
cnd->new_rate < DIV_THRESHOLD)
|
||||
clk_cbf_8996_mux_set_parent(&cbf_mux.clkr.hw, CBF_DIV_INDEX);
|
||||
break;
|
||||
case ABORT_RATE_CHANGE:
|
||||
/* Revert manual change */
|
||||
if (cnd->new_rate < DIV_THRESHOLD &&
|
||||
cnd->old_rate > DIV_THRESHOLD)
|
||||
clk_cbf_8996_mux_set_parent(&cbf_mux.clkr.hw, CBF_PLL_INDEX);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return notifier_from_errno(0);
|
||||
};
|
||||
|
||||
static struct clk_hw *cbf_msm8996_hw_clks[] = {
|
||||
&cbf_pll_postdiv.hw,
|
||||
};
|
||||
|
||||
static struct clk_regmap *cbf_msm8996_clks[] = {
|
||||
&cbf_pll.clkr,
|
||||
&cbf_mux.clkr,
|
||||
};
|
||||
|
||||
static const struct regmap_config cbf_msm8996_regmap_config = {
|
||||
.reg_bits = 32,
|
||||
.reg_stride = 4,
|
||||
.val_bits = 32,
|
||||
.max_register = 0x10000,
|
||||
.fast_io = true,
|
||||
.val_format_endian = REGMAP_ENDIAN_LITTLE,
|
||||
};
|
||||
|
||||
static int qcom_msm8996_cbf_probe(struct platform_device *pdev)
|
||||
{
|
||||
void __iomem *base;
|
||||
struct regmap *regmap;
|
||||
struct device *dev = &pdev->dev;
|
||||
int i, ret;
|
||||
|
||||
base = devm_platform_ioremap_resource(pdev, 0);
|
||||
if (IS_ERR(base))
|
||||
return PTR_ERR(base);
|
||||
|
||||
regmap = devm_regmap_init_mmio(dev, base, &cbf_msm8996_regmap_config);
|
||||
if (IS_ERR(regmap))
|
||||
return PTR_ERR(regmap);
|
||||
|
||||
/* Select GPLL0 for 300MHz for the CBF clock */
|
||||
regmap_write(regmap, CBF_MUX_OFFSET, 0x3);
|
||||
|
||||
/* Ensure write goes through before PLLs are reconfigured */
|
||||
udelay(5);
|
||||
|
||||
/* Set the auto clock sel always-on source to GPLL0/2 (300MHz) */
|
||||
regmap_update_bits(regmap, CBF_MUX_OFFSET,
|
||||
CBF_MUX_AUTO_CLK_SEL_ALWAYS_ON_MASK,
|
||||
CBF_MUX_AUTO_CLK_SEL_ALWAYS_ON_GPLL0_SEL);
|
||||
|
||||
clk_alpha_pll_configure(&cbf_pll, regmap, &cbfpll_config);
|
||||
|
||||
/* Wait for PLL(s) to lock */
|
||||
udelay(50);
|
||||
|
||||
/* Enable auto clock selection for CBF */
|
||||
regmap_update_bits(regmap, CBF_MUX_OFFSET,
|
||||
CBF_MUX_AUTO_CLK_SEL_BIT,
|
||||
CBF_MUX_AUTO_CLK_SEL_BIT);
|
||||
|
||||
/* Ensure write goes through before muxes are switched */
|
||||
udelay(5);
|
||||
|
||||
/* Switch CBF to use the primary PLL */
|
||||
regmap_update_bits(regmap, CBF_MUX_OFFSET, CBF_MUX_PARENT_MASK, 0x1);
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(cbf_msm8996_hw_clks); i++) {
|
||||
ret = devm_clk_hw_register(dev, cbf_msm8996_hw_clks[i]);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(cbf_msm8996_clks); i++) {
|
||||
ret = devm_clk_register_regmap(dev, cbf_msm8996_clks[i]);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = devm_clk_notifier_register(dev, cbf_mux.clkr.hw.clk, &cbf_mux.nb);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
return devm_of_clk_add_hw_provider(dev, of_clk_hw_simple_get, &cbf_mux.clkr.hw);
|
||||
}
|
||||
|
||||
static const struct of_device_id qcom_msm8996_cbf_match_table[] = {
|
||||
{ .compatible = "qcom,msm8996-cbf" },
|
||||
{ /* sentinel */ },
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, qcom_msm8996_cbf_match_table);
|
||||
|
||||
static struct platform_driver qcom_msm8996_cbf_driver = {
|
||||
.probe = qcom_msm8996_cbf_probe,
|
||||
.driver = {
|
||||
.name = "qcom-msm8996-cbf",
|
||||
.of_match_table = qcom_msm8996_cbf_match_table,
|
||||
},
|
||||
};
|
||||
|
||||
/* Register early enough to fix the clock to be used for other cores */
|
||||
static int __init qcom_msm8996_cbf_init(void)
|
||||
{
|
||||
return platform_driver_register(&qcom_msm8996_cbf_driver);
|
||||
}
|
||||
postcore_initcall(qcom_msm8996_cbf_init);
|
||||
|
||||
static void __exit qcom_msm8996_cbf_exit(void)
|
||||
{
|
||||
platform_driver_unregister(&qcom_msm8996_cbf_driver);
|
||||
}
|
||||
module_exit(qcom_msm8996_cbf_exit);
|
||||
|
||||
MODULE_DESCRIPTION("QCOM MSM8996 CPU Bus Fabric Clock Driver");
|
||||
MODULE_LICENSE("GPL");
|
@ -12,6 +12,8 @@
|
||||
* +-------+
|
||||
* XO | |
|
||||
* +------------------>0 |
|
||||
* SYS_APCS_AUX | |
|
||||
* +------------------>3 |
|
||||
* | |
|
||||
* PLL/2 | SMUX +----+
|
||||
* +------->1 | |
|
||||
@ -58,6 +60,8 @@
|
||||
#include <linux/regmap.h>
|
||||
#include <soc/qcom/kryo-l2-accessors.h>
|
||||
|
||||
#include <asm/cputype.h>
|
||||
|
||||
#include "clk-alpha-pll.h"
|
||||
#include "clk-regmap.h"
|
||||
#include "clk-regmap-mux.h"
|
||||
@ -74,10 +78,16 @@ enum _pmux_input {
|
||||
#define PWRCL_REG_OFFSET 0x0
|
||||
#define PERFCL_REG_OFFSET 0x80000
|
||||
#define MUX_OFFSET 0x40
|
||||
#define CLK_CTL_OFFSET 0x44
|
||||
#define CLK_CTL_AUTO_CLK_SEL BIT(8)
|
||||
#define ALT_PLL_OFFSET 0x100
|
||||
#define SSSCTL_OFFSET 0x160
|
||||
#define PSCTL_OFFSET 0x164
|
||||
|
||||
#define PMUX_MASK 0x3
|
||||
#define MUX_AUTO_CLK_SEL_ALWAYS_ON_MASK GENMASK(5, 4)
|
||||
#define MUX_AUTO_CLK_SEL_ALWAYS_ON_GPLL0_SEL \
|
||||
FIELD_PREP(MUX_AUTO_CLK_SEL_ALWAYS_ON_MASK, 0x03)
|
||||
|
||||
static const u8 prim_pll_regs[PLL_OFF_MAX_REGS] = {
|
||||
[PLL_OFF_L_VAL] = 0x04,
|
||||
@ -93,21 +103,20 @@ static const u8 prim_pll_regs[PLL_OFF_MAX_REGS] = {
|
||||
static const u8 alt_pll_regs[PLL_OFF_MAX_REGS] = {
|
||||
[PLL_OFF_L_VAL] = 0x04,
|
||||
[PLL_OFF_ALPHA_VAL] = 0x08,
|
||||
[PLL_OFF_ALPHA_VAL_U] = 0x0c,
|
||||
[PLL_OFF_USER_CTL] = 0x10,
|
||||
[PLL_OFF_USER_CTL_U] = 0x14,
|
||||
[PLL_OFF_CONFIG_CTL] = 0x18,
|
||||
[PLL_OFF_TEST_CTL] = 0x20,
|
||||
[PLL_OFF_TEST_CTL_U] = 0x24,
|
||||
[PLL_OFF_STATUS] = 0x28,
|
||||
};
|
||||
|
||||
/* PLLs */
|
||||
|
||||
static const struct alpha_pll_config hfpll_config = {
|
||||
.l = 60,
|
||||
.config_ctl_val = 0x200d4aa8,
|
||||
.l = 54,
|
||||
.config_ctl_val = 0x200d4828,
|
||||
.config_ctl_hi_val = 0x006,
|
||||
.test_ctl_val = 0x1c000000,
|
||||
.test_ctl_hi_val = 0x00004000,
|
||||
.pre_div_mask = BIT(12),
|
||||
.post_div_mask = 0x3 << 8,
|
||||
.post_div_val = 0x1 << 8,
|
||||
@ -127,7 +136,7 @@ static struct clk_alpha_pll pwrcl_pll = {
|
||||
.name = "pwrcl_pll",
|
||||
.parent_data = pll_parent,
|
||||
.num_parents = ARRAY_SIZE(pll_parent),
|
||||
.ops = &clk_alpha_pll_huayra_ops,
|
||||
.ops = &clk_alpha_pll_hwfsm_ops,
|
||||
},
|
||||
};
|
||||
|
||||
@ -139,7 +148,7 @@ static struct clk_alpha_pll perfcl_pll = {
|
||||
.name = "perfcl_pll",
|
||||
.parent_data = pll_parent,
|
||||
.num_parents = ARRAY_SIZE(pll_parent),
|
||||
.ops = &clk_alpha_pll_huayra_ops,
|
||||
.ops = &clk_alpha_pll_hwfsm_ops,
|
||||
},
|
||||
};
|
||||
|
||||
@ -311,20 +320,29 @@ static const struct clk_ops clk_cpu_8996_pmux_ops = {
|
||||
.determine_rate = clk_cpu_8996_pmux_determine_rate,
|
||||
};
|
||||
|
||||
static const struct parent_map smux_parent_map[] = {
|
||||
{ .cfg = 0, }, /* xo */
|
||||
{ .cfg = 1, }, /* pll */
|
||||
{ .cfg = 3, }, /* sys_apcs_aux */
|
||||
};
|
||||
|
||||
static const struct clk_parent_data pwrcl_smux_parents[] = {
|
||||
{ .fw_name = "xo" },
|
||||
{ .hw = &pwrcl_pll_postdiv.hw },
|
||||
{ .fw_name = "sys_apcs_aux" },
|
||||
};
|
||||
|
||||
static const struct clk_parent_data perfcl_smux_parents[] = {
|
||||
{ .fw_name = "xo" },
|
||||
{ .hw = &perfcl_pll_postdiv.hw },
|
||||
{ .fw_name = "sys_apcs_aux" },
|
||||
};
|
||||
|
||||
static struct clk_regmap_mux pwrcl_smux = {
|
||||
.reg = PWRCL_REG_OFFSET + MUX_OFFSET,
|
||||
.shift = 2,
|
||||
.width = 2,
|
||||
.parent_map = smux_parent_map,
|
||||
.clkr.hw.init = &(struct clk_init_data) {
|
||||
.name = "pwrcl_smux",
|
||||
.parent_data = pwrcl_smux_parents,
|
||||
@ -338,6 +356,7 @@ static struct clk_regmap_mux perfcl_smux = {
|
||||
.reg = PERFCL_REG_OFFSET + MUX_OFFSET,
|
||||
.shift = 2,
|
||||
.width = 2,
|
||||
.parent_map = smux_parent_map,
|
||||
.clkr.hw.init = &(struct clk_init_data) {
|
||||
.name = "perfcl_smux",
|
||||
.parent_data = perfcl_smux_parents,
|
||||
@ -414,11 +433,55 @@ static struct clk_regmap *cpu_msm8996_clks[] = {
|
||||
&perfcl_pmux.clkr,
|
||||
};
|
||||
|
||||
static void qcom_cpu_clk_msm8996_acd_init(struct regmap *regmap);
|
||||
|
||||
static int qcom_cpu_clk_msm8996_register_clks(struct device *dev,
|
||||
struct regmap *regmap)
|
||||
{
|
||||
int i, ret;
|
||||
|
||||
/* Select GPLL0 for 300MHz for both clusters */
|
||||
regmap_write(regmap, PERFCL_REG_OFFSET + MUX_OFFSET, 0xc);
|
||||
regmap_write(regmap, PWRCL_REG_OFFSET + MUX_OFFSET, 0xc);
|
||||
|
||||
/* Ensure write goes through before PLLs are reconfigured */
|
||||
udelay(5);
|
||||
|
||||
/* Set the auto clock sel always-on source to GPLL0/2 (300MHz) */
|
||||
regmap_update_bits(regmap, PWRCL_REG_OFFSET + MUX_OFFSET,
|
||||
MUX_AUTO_CLK_SEL_ALWAYS_ON_MASK,
|
||||
MUX_AUTO_CLK_SEL_ALWAYS_ON_GPLL0_SEL);
|
||||
regmap_update_bits(regmap, PERFCL_REG_OFFSET + MUX_OFFSET,
|
||||
MUX_AUTO_CLK_SEL_ALWAYS_ON_MASK,
|
||||
MUX_AUTO_CLK_SEL_ALWAYS_ON_GPLL0_SEL);
|
||||
|
||||
clk_alpha_pll_configure(&pwrcl_pll, regmap, &hfpll_config);
|
||||
clk_alpha_pll_configure(&perfcl_pll, regmap, &hfpll_config);
|
||||
clk_alpha_pll_configure(&pwrcl_alt_pll, regmap, &altpll_config);
|
||||
clk_alpha_pll_configure(&perfcl_alt_pll, regmap, &altpll_config);
|
||||
|
||||
/* Wait for PLL(s) to lock */
|
||||
udelay(50);
|
||||
|
||||
/* Enable auto clock selection for both clusters */
|
||||
regmap_update_bits(regmap, PWRCL_REG_OFFSET + CLK_CTL_OFFSET,
|
||||
CLK_CTL_AUTO_CLK_SEL, CLK_CTL_AUTO_CLK_SEL);
|
||||
regmap_update_bits(regmap, PERFCL_REG_OFFSET + CLK_CTL_OFFSET,
|
||||
CLK_CTL_AUTO_CLK_SEL, CLK_CTL_AUTO_CLK_SEL);
|
||||
|
||||
/* Ensure write goes through before muxes are switched */
|
||||
udelay(5);
|
||||
|
||||
qcom_cpu_clk_msm8996_acd_init(regmap);
|
||||
|
||||
/* Pulse swallower and soft-start settings */
|
||||
regmap_write(regmap, PWRCL_REG_OFFSET + PSCTL_OFFSET, 0x00030005);
|
||||
regmap_write(regmap, PERFCL_REG_OFFSET + PSCTL_OFFSET, 0x00030005);
|
||||
|
||||
/* Switch clusters to use the ACD leg */
|
||||
regmap_write(regmap, PWRCL_REG_OFFSET + MUX_OFFSET, 0x32);
|
||||
regmap_write(regmap, PERFCL_REG_OFFSET + MUX_OFFSET, 0x32);
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(cpu_msm8996_hw_clks); i++) {
|
||||
ret = devm_clk_hw_register(dev, cpu_msm8996_hw_clks[i]);
|
||||
if (ret)
|
||||
@ -431,11 +494,6 @@ static int qcom_cpu_clk_msm8996_register_clks(struct device *dev,
|
||||
return ret;
|
||||
}
|
||||
|
||||
clk_alpha_pll_configure(&pwrcl_pll, regmap, &hfpll_config);
|
||||
clk_alpha_pll_configure(&perfcl_pll, regmap, &hfpll_config);
|
||||
clk_alpha_pll_configure(&pwrcl_alt_pll, regmap, &altpll_config);
|
||||
clk_alpha_pll_configure(&perfcl_alt_pll, regmap, &altpll_config);
|
||||
|
||||
/* Enable alt PLLs */
|
||||
clk_prepare_enable(pwrcl_alt_pll.clkr.hw.clk);
|
||||
clk_prepare_enable(perfcl_alt_pll.clkr.hw.clk);
|
||||
@ -446,9 +504,9 @@ static int qcom_cpu_clk_msm8996_register_clks(struct device *dev,
|
||||
return ret;
|
||||
}
|
||||
|
||||
#define CPU_AFINITY_MASK 0xFFF
|
||||
#define PWRCL_CPU_REG_MASK 0x3
|
||||
#define PERFCL_CPU_REG_MASK 0x103
|
||||
#define CPU_CLUSTER_AFFINITY_MASK 0xf00
|
||||
#define PWRCL_AFFINITY_MASK 0x000
|
||||
#define PERFCL_AFFINITY_MASK 0x100
|
||||
|
||||
#define L2ACDCR_REG 0x580ULL
|
||||
#define L2ACDTD_REG 0x581ULL
|
||||
@ -456,31 +514,32 @@ static int qcom_cpu_clk_msm8996_register_clks(struct device *dev,
|
||||
#define L2ACDSSCR_REG 0x589ULL
|
||||
|
||||
static DEFINE_SPINLOCK(qcom_clk_acd_lock);
|
||||
static void __iomem *base;
|
||||
|
||||
static void qcom_cpu_clk_msm8996_acd_init(void __iomem *base)
|
||||
static void qcom_cpu_clk_msm8996_acd_init(struct regmap *regmap)
|
||||
{
|
||||
u64 hwid;
|
||||
u32 val;
|
||||
unsigned long flags;
|
||||
|
||||
spin_lock_irqsave(&qcom_clk_acd_lock, flags);
|
||||
|
||||
hwid = read_cpuid_mpidr() & CPU_AFINITY_MASK;
|
||||
val = kryo_l2_get_indirect_reg(L2ACDTD_REG);
|
||||
if (val == 0x00006a11)
|
||||
goto out;
|
||||
|
||||
kryo_l2_set_indirect_reg(L2ACDTD_REG, 0x00006a11);
|
||||
kryo_l2_set_indirect_reg(L2ACDDVMRC_REG, 0x000e0f0f);
|
||||
kryo_l2_set_indirect_reg(L2ACDSSCR_REG, 0x00000601);
|
||||
|
||||
if (PWRCL_CPU_REG_MASK == (hwid | PWRCL_CPU_REG_MASK)) {
|
||||
writel(0xf, base + PWRCL_REG_OFFSET + SSSCTL_OFFSET);
|
||||
kryo_l2_set_indirect_reg(L2ACDCR_REG, 0x002c5ffd);
|
||||
}
|
||||
kryo_l2_set_indirect_reg(L2ACDCR_REG, 0x002c5ffd);
|
||||
|
||||
if (PERFCL_CPU_REG_MASK == (hwid | PERFCL_CPU_REG_MASK)) {
|
||||
kryo_l2_set_indirect_reg(L2ACDCR_REG, 0x002c5ffd);
|
||||
writel(0xf, base + PERFCL_REG_OFFSET + SSSCTL_OFFSET);
|
||||
}
|
||||
hwid = read_cpuid_mpidr();
|
||||
if ((hwid & CPU_CLUSTER_AFFINITY_MASK) == PWRCL_AFFINITY_MASK)
|
||||
regmap_write(regmap, PWRCL_REG_OFFSET + SSSCTL_OFFSET, 0xf);
|
||||
else
|
||||
regmap_write(regmap, PERFCL_REG_OFFSET + SSSCTL_OFFSET, 0xf);
|
||||
|
||||
out:
|
||||
spin_unlock_irqrestore(&qcom_clk_acd_lock, flags);
|
||||
}
|
||||
|
||||
@ -489,31 +548,40 @@ static int cpu_clk_notifier_cb(struct notifier_block *nb, unsigned long event,
|
||||
{
|
||||
struct clk_cpu_8996_pmux *cpuclk = to_clk_cpu_8996_pmux_nb(nb);
|
||||
struct clk_notifier_data *cnd = data;
|
||||
int ret;
|
||||
|
||||
switch (event) {
|
||||
case PRE_RATE_CHANGE:
|
||||
ret = clk_cpu_8996_pmux_set_parent(&cpuclk->clkr.hw, ALT_INDEX);
|
||||
qcom_cpu_clk_msm8996_acd_init(base);
|
||||
qcom_cpu_clk_msm8996_acd_init(cpuclk->clkr.regmap);
|
||||
|
||||
/*
|
||||
* Avoid overvolting. clk_core_set_rate_nolock() walks from top
|
||||
* to bottom, so it will change the rate of the PLL before
|
||||
* chaging the parent of PMUX. This can result in pmux getting
|
||||
* clocked twice the expected rate.
|
||||
*
|
||||
* Manually switch to PLL/2 here.
|
||||
*/
|
||||
if (cnd->new_rate < DIV_2_THRESHOLD &&
|
||||
cnd->old_rate > DIV_2_THRESHOLD)
|
||||
clk_cpu_8996_pmux_set_parent(&cpuclk->clkr.hw, SMUX_INDEX);
|
||||
|
||||
break;
|
||||
case POST_RATE_CHANGE:
|
||||
if (cnd->new_rate < DIV_2_THRESHOLD)
|
||||
ret = clk_cpu_8996_pmux_set_parent(&cpuclk->clkr.hw,
|
||||
SMUX_INDEX);
|
||||
else
|
||||
ret = clk_cpu_8996_pmux_set_parent(&cpuclk->clkr.hw,
|
||||
ACD_INDEX);
|
||||
case ABORT_RATE_CHANGE:
|
||||
/* Revert manual change */
|
||||
if (cnd->new_rate < DIV_2_THRESHOLD &&
|
||||
cnd->old_rate > DIV_2_THRESHOLD)
|
||||
clk_cpu_8996_pmux_set_parent(&cpuclk->clkr.hw, ACD_INDEX);
|
||||
break;
|
||||
default:
|
||||
ret = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
return notifier_from_errno(ret);
|
||||
return NOTIFY_OK;
|
||||
};
|
||||
|
||||
static int qcom_cpu_clk_msm8996_driver_probe(struct platform_device *pdev)
|
||||
{
|
||||
static void __iomem *base;
|
||||
struct regmap *regmap;
|
||||
struct clk_hw_onecell_data *data;
|
||||
struct device *dev = &pdev->dev;
|
||||
@ -535,8 +603,6 @@ static int qcom_cpu_clk_msm8996_driver_probe(struct platform_device *pdev)
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
qcom_cpu_clk_msm8996_acd_init(base);
|
||||
|
||||
data->hws[0] = &pwrcl_pmux.clkr.hw;
|
||||
data->hws[1] = &perfcl_pmux.clkr.hw;
|
||||
data->num = 2;
|
||||
|
@ -366,6 +366,16 @@ DEFINE_CLK_RPMH_VRM(rf_clk2, _d, "rfclkd2", 1);
|
||||
DEFINE_CLK_RPMH_VRM(rf_clk3, _d, "rfclkd3", 1);
|
||||
DEFINE_CLK_RPMH_VRM(rf_clk4, _d, "rfclkd4", 1);
|
||||
|
||||
DEFINE_CLK_RPMH_VRM(clk1, _a1, "clka1", 1);
|
||||
DEFINE_CLK_RPMH_VRM(clk2, _a1, "clka2", 1);
|
||||
DEFINE_CLK_RPMH_VRM(clk3, _a1, "clka3", 1);
|
||||
DEFINE_CLK_RPMH_VRM(clk4, _a1, "clka4", 1);
|
||||
DEFINE_CLK_RPMH_VRM(clk5, _a1, "clka5", 1);
|
||||
|
||||
DEFINE_CLK_RPMH_VRM(clk6, _a2, "clka6", 2);
|
||||
DEFINE_CLK_RPMH_VRM(clk7, _a2, "clka7", 2);
|
||||
DEFINE_CLK_RPMH_VRM(clk8, _a2, "clka8", 2);
|
||||
|
||||
DEFINE_CLK_RPMH_VRM(div_clk1, _div2, "divclka1", 2);
|
||||
|
||||
DEFINE_CLK_RPMH_BCM(ce, "CE0");
|
||||
@ -396,6 +406,22 @@ static const struct clk_rpmh_desc clk_rpmh_sdm845 = {
|
||||
.num_clks = ARRAY_SIZE(sdm845_rpmh_clocks),
|
||||
};
|
||||
|
||||
static struct clk_hw *sa8775p_rpmh_clocks[] = {
|
||||
[RPMH_CXO_CLK] = &clk_rpmh_bi_tcxo_div2.hw,
|
||||
[RPMH_CXO_CLK_A] = &clk_rpmh_bi_tcxo_div2_ao.hw,
|
||||
[RPMH_LN_BB_CLK1] = &clk_rpmh_ln_bb_clk1_a2.hw,
|
||||
[RPMH_LN_BB_CLK2] = &clk_rpmh_ln_bb_clk2_a2.hw,
|
||||
[RPMH_LN_BB_CLK2_A] = &clk_rpmh_ln_bb_clk2_a4_ao.hw,
|
||||
[RPMH_IPA_CLK] = &clk_rpmh_ipa.hw,
|
||||
[RPMH_PKA_CLK] = &clk_rpmh_pka.hw,
|
||||
[RPMH_HWKM_CLK] = &clk_rpmh_hwkm.hw,
|
||||
};
|
||||
|
||||
static const struct clk_rpmh_desc clk_rpmh_sa8775p = {
|
||||
.clks = sa8775p_rpmh_clocks,
|
||||
.num_clks = ARRAY_SIZE(sa8775p_rpmh_clocks),
|
||||
};
|
||||
|
||||
static struct clk_hw *sdm670_rpmh_clocks[] = {
|
||||
[RPMH_CXO_CLK] = &clk_rpmh_bi_tcxo_div2.hw,
|
||||
[RPMH_CXO_CLK_A] = &clk_rpmh_bi_tcxo_div2_ao.hw,
|
||||
@ -445,6 +471,7 @@ static struct clk_hw *sm8150_rpmh_clocks[] = {
|
||||
[RPMH_RF_CLK2_A] = &clk_rpmh_rf_clk2_a_ao.hw,
|
||||
[RPMH_RF_CLK3] = &clk_rpmh_rf_clk3_a.hw,
|
||||
[RPMH_RF_CLK3_A] = &clk_rpmh_rf_clk3_a_ao.hw,
|
||||
[RPMH_IPA_CLK] = &clk_rpmh_ipa.hw,
|
||||
};
|
||||
|
||||
static const struct clk_rpmh_desc clk_rpmh_sm8150 = {
|
||||
@ -484,6 +511,7 @@ static struct clk_hw *sc8180x_rpmh_clocks[] = {
|
||||
[RPMH_RF_CLK2_A] = &clk_rpmh_rf_clk2_d_ao.hw,
|
||||
[RPMH_RF_CLK3] = &clk_rpmh_rf_clk3_d.hw,
|
||||
[RPMH_RF_CLK3_A] = &clk_rpmh_rf_clk3_d_ao.hw,
|
||||
[RPMH_IPA_CLK] = &clk_rpmh_ipa.hw,
|
||||
};
|
||||
|
||||
static const struct clk_rpmh_desc clk_rpmh_sc8180x = {
|
||||
@ -504,6 +532,7 @@ static struct clk_hw *sm8250_rpmh_clocks[] = {
|
||||
[RPMH_RF_CLK1_A] = &clk_rpmh_rf_clk1_a_ao.hw,
|
||||
[RPMH_RF_CLK3] = &clk_rpmh_rf_clk3_a.hw,
|
||||
[RPMH_RF_CLK3_A] = &clk_rpmh_rf_clk3_a_ao.hw,
|
||||
[RPMH_IPA_CLK] = &clk_rpmh_ipa.hw,
|
||||
};
|
||||
|
||||
static const struct clk_rpmh_desc clk_rpmh_sm8250 = {
|
||||
@ -576,6 +605,31 @@ static const struct clk_rpmh_desc clk_rpmh_sm8450 = {
|
||||
.num_clks = ARRAY_SIZE(sm8450_rpmh_clocks),
|
||||
};
|
||||
|
||||
static struct clk_hw *sm8550_rpmh_clocks[] = {
|
||||
[RPMH_CXO_CLK] = &clk_rpmh_bi_tcxo_div2.hw,
|
||||
[RPMH_CXO_CLK_A] = &clk_rpmh_bi_tcxo_div2_ao.hw,
|
||||
[RPMH_LN_BB_CLK1] = &clk_rpmh_clk6_a2.hw,
|
||||
[RPMH_LN_BB_CLK1_A] = &clk_rpmh_clk6_a2_ao.hw,
|
||||
[RPMH_LN_BB_CLK2] = &clk_rpmh_clk7_a2.hw,
|
||||
[RPMH_LN_BB_CLK2_A] = &clk_rpmh_clk7_a2_ao.hw,
|
||||
[RPMH_LN_BB_CLK3] = &clk_rpmh_clk8_a2.hw,
|
||||
[RPMH_LN_BB_CLK3_A] = &clk_rpmh_clk8_a2_ao.hw,
|
||||
[RPMH_RF_CLK1] = &clk_rpmh_clk1_a1.hw,
|
||||
[RPMH_RF_CLK1_A] = &clk_rpmh_clk1_a1_ao.hw,
|
||||
[RPMH_RF_CLK2] = &clk_rpmh_clk2_a1.hw,
|
||||
[RPMH_RF_CLK2_A] = &clk_rpmh_clk2_a1_ao.hw,
|
||||
[RPMH_RF_CLK3] = &clk_rpmh_clk3_a1.hw,
|
||||
[RPMH_RF_CLK3_A] = &clk_rpmh_clk3_a1_ao.hw,
|
||||
[RPMH_RF_CLK4] = &clk_rpmh_clk4_a1.hw,
|
||||
[RPMH_RF_CLK4_A] = &clk_rpmh_clk4_a1_ao.hw,
|
||||
[RPMH_IPA_CLK] = &clk_rpmh_ipa.hw,
|
||||
};
|
||||
|
||||
static const struct clk_rpmh_desc clk_rpmh_sm8550 = {
|
||||
.clks = sm8550_rpmh_clocks,
|
||||
.num_clks = ARRAY_SIZE(sm8550_rpmh_clocks),
|
||||
};
|
||||
|
||||
static struct clk_hw *sc7280_rpmh_clocks[] = {
|
||||
[RPMH_CXO_CLK] = &clk_rpmh_bi_tcxo_div4.hw,
|
||||
[RPMH_CXO_CLK_A] = &clk_rpmh_bi_tcxo_div4_ao.hw,
|
||||
@ -730,6 +784,7 @@ static int clk_rpmh_probe(struct platform_device *pdev)
|
||||
|
||||
static const struct of_device_id clk_rpmh_match_table[] = {
|
||||
{ .compatible = "qcom,qdu1000-rpmh-clk", .data = &clk_rpmh_qdu1000},
|
||||
{ .compatible = "qcom,sa8775p-rpmh-clk", .data = &clk_rpmh_sa8775p},
|
||||
{ .compatible = "qcom,sc7180-rpmh-clk", .data = &clk_rpmh_sc7180},
|
||||
{ .compatible = "qcom,sc8180x-rpmh-clk", .data = &clk_rpmh_sc8180x},
|
||||
{ .compatible = "qcom,sc8280xp-rpmh-clk", .data = &clk_rpmh_sc8280xp},
|
||||
@ -742,6 +797,7 @@ static const struct of_device_id clk_rpmh_match_table[] = {
|
||||
{ .compatible = "qcom,sm8250-rpmh-clk", .data = &clk_rpmh_sm8250},
|
||||
{ .compatible = "qcom,sm8350-rpmh-clk", .data = &clk_rpmh_sm8350},
|
||||
{ .compatible = "qcom,sm8450-rpmh-clk", .data = &clk_rpmh_sm8450},
|
||||
{ .compatible = "qcom,sm8550-rpmh-clk", .data = &clk_rpmh_sm8550},
|
||||
{ .compatible = "qcom,sc7280-rpmh-clk", .data = &clk_rpmh_sc7280},
|
||||
{ }
|
||||
};
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -204,7 +204,7 @@ static int spmi_pmic_clkdiv_probe(struct platform_device *pdev)
|
||||
struct regmap *regmap;
|
||||
struct device *dev = &pdev->dev;
|
||||
struct device_node *of_node = dev->of_node;
|
||||
const char *parent_name;
|
||||
struct clk_parent_data parent_data = { .index = 0, };
|
||||
int nclks, i, ret, cxo_hz;
|
||||
char name[20];
|
||||
u32 start;
|
||||
@ -246,14 +246,8 @@ static int spmi_pmic_clkdiv_probe(struct platform_device *pdev)
|
||||
cxo_hz = clk_get_rate(cxo);
|
||||
clk_put(cxo);
|
||||
|
||||
parent_name = of_clk_get_parent_name(of_node, 0);
|
||||
if (!parent_name) {
|
||||
dev_err(dev, "missing parent clock\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
init.name = name;
|
||||
init.parent_names = &parent_name;
|
||||
init.parent_data = &parent_data;
|
||||
init.num_parents = 1;
|
||||
init.ops = &clk_spmi_pmic_div_ops;
|
||||
|
||||
|
@ -71,7 +71,6 @@ static const struct parent_map disp_cc_parent_map_0[] = {
|
||||
static const struct clk_parent_data disp_cc_parent_data_0[] = {
|
||||
{ .fw_name = "bi_tcxo" },
|
||||
{ .fw_name = "dsi0_phy_pll_out_byteclk" },
|
||||
{ .fw_name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct parent_map disp_cc_parent_map_1[] = {
|
||||
@ -80,7 +79,6 @@ static const struct parent_map disp_cc_parent_map_1[] = {
|
||||
|
||||
static const struct clk_parent_data disp_cc_parent_data_1[] = {
|
||||
{ .fw_name = "bi_tcxo" },
|
||||
{ .fw_name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct parent_map disp_cc_parent_map_2[] = {
|
||||
@ -91,7 +89,6 @@ static const struct parent_map disp_cc_parent_map_2[] = {
|
||||
static const struct clk_parent_data disp_cc_parent_data_2[] = {
|
||||
{ .fw_name = "bi_tcxo_ao" },
|
||||
{ .fw_name = "gcc_disp_gpll0_div_clk_src" },
|
||||
{ .fw_name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct parent_map disp_cc_parent_map_3[] = {
|
||||
@ -104,7 +101,6 @@ static const struct clk_parent_data disp_cc_parent_data_3[] = {
|
||||
{ .fw_name = "bi_tcxo" },
|
||||
{ .hw = &disp_cc_pll0.clkr.hw },
|
||||
{ .fw_name = "gcc_disp_gpll0_clk_src" },
|
||||
{ .fw_name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct parent_map disp_cc_parent_map_4[] = {
|
||||
@ -117,7 +113,6 @@ static const struct clk_parent_data disp_cc_parent_data_4[] = {
|
||||
{ .fw_name = "bi_tcxo" },
|
||||
{ .fw_name = "dsi0_phy_pll_out_dsiclk" },
|
||||
{ .fw_name = "dsi1_phy_pll_out_dsiclk" },
|
||||
{ .fw_name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct parent_map disp_cc_parent_map_5[] = {
|
||||
@ -126,7 +121,6 @@ static const struct parent_map disp_cc_parent_map_5[] = {
|
||||
|
||||
static const struct clk_parent_data disp_cc_parent_data_5[] = {
|
||||
{ .fw_name = "sleep_clk" },
|
||||
{ .fw_name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static struct clk_rcg2 disp_cc_mdss_byte0_clk_src = {
|
||||
|
@ -351,8 +351,8 @@ static struct clk_regmap_div disp_cc_mdss_byte0_div_clk_src = {
|
||||
.width = 2,
|
||||
.clkr.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_byte0_div_clk_src",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &disp_cc_mdss_byte0_clk_src.clkr.hw
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_byte0_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.ops = &clk_regmap_div_ops,
|
||||
@ -365,8 +365,8 @@ static struct clk_regmap_div disp_cc_mdss_dp_link_div_clk_src = {
|
||||
.width = 2,
|
||||
.clkr.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_dp_link_div_clk_src",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &disp_cc_mdss_dp_link_clk_src.clkr.hw
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_dp_link_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.ops = &clk_regmap_div_ops,
|
||||
|
@ -466,8 +466,8 @@ static struct clk_branch disp_cc_mdss_rot_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "disp_cc_mdss_rot_clk",
|
||||
.parent_names = (const char *[]){
|
||||
"disp_cc_mdss_rot_clk_src",
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_rot_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
|
@ -667,7 +667,7 @@ static const struct qcom_cc_desc disp_cc_sm6125_desc = {
|
||||
};
|
||||
|
||||
static const struct of_device_id disp_cc_sm6125_match_table[] = {
|
||||
{ .compatible = "qcom,dispcc-sm6125" },
|
||||
{ .compatible = "qcom,sm6125-dispcc" },
|
||||
{ }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, disp_cc_sm6125_match_table);
|
||||
|
@ -252,8 +252,8 @@ static struct clk_regmap_div disp_cc_mdss_byte0_div_clk_src = {
|
||||
.width = 4,
|
||||
.clkr.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_byte0_div_clk_src",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &disp_cc_mdss_byte0_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_byte0_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.ops = &clk_regmap_div_ops,
|
||||
|
@ -1251,19 +1251,12 @@ static const struct of_device_id disp_cc_sm8250_match_table[] = {
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, disp_cc_sm8250_match_table);
|
||||
|
||||
static void disp_cc_sm8250_pm_runtime_disable(void *data)
|
||||
{
|
||||
pm_runtime_disable(data);
|
||||
}
|
||||
|
||||
static int disp_cc_sm8250_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct regmap *regmap;
|
||||
int ret;
|
||||
|
||||
pm_runtime_enable(&pdev->dev);
|
||||
|
||||
ret = devm_add_action_or_reset(&pdev->dev, disp_cc_sm8250_pm_runtime_disable, &pdev->dev);
|
||||
ret = devm_pm_runtime_enable(&pdev->dev);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
|
@ -694,8 +694,8 @@ static struct clk_regmap_div disp_cc_mdss_byte0_div_clk_src = {
|
||||
.width = 4,
|
||||
.clkr.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_byte0_div_clk_src",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_byte0_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_byte0_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.ops = &clk_regmap_div_ops,
|
||||
@ -708,8 +708,8 @@ static struct clk_regmap_div disp_cc_mdss_byte1_div_clk_src = {
|
||||
.width = 4,
|
||||
.clkr.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_byte1_div_clk_src",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_byte1_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_byte1_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.ops = &clk_regmap_div_ops,
|
||||
@ -722,8 +722,8 @@ static struct clk_regmap_div disp_cc_mdss_dptx0_link_div_clk_src = {
|
||||
.width = 4,
|
||||
.clkr.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_dptx0_link_div_clk_src",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_dptx0_link_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_dptx0_link_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -737,8 +737,8 @@ static struct clk_regmap_div disp_cc_mdss_dptx1_link_div_clk_src = {
|
||||
.width = 4,
|
||||
.clkr.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_dptx1_link_div_clk_src",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_dptx1_link_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_dptx1_link_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -752,8 +752,8 @@ static struct clk_regmap_div disp_cc_mdss_dptx2_link_div_clk_src = {
|
||||
.width = 4,
|
||||
.clkr.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_dptx2_link_div_clk_src",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_dptx2_link_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_dptx2_link_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -767,8 +767,8 @@ static struct clk_regmap_div disp_cc_mdss_dptx3_link_div_clk_src = {
|
||||
.width = 4,
|
||||
.clkr.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_dptx3_link_div_clk_src",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_dptx3_link_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_dptx3_link_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -784,8 +784,8 @@ static struct clk_branch disp_cc_mdss_ahb1_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_ahb1_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_ahb_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_ahb_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -802,8 +802,8 @@ static struct clk_branch disp_cc_mdss_ahb_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_ahb_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_ahb_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_ahb_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -820,8 +820,8 @@ static struct clk_branch disp_cc_mdss_byte0_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_byte0_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_byte0_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_byte0_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -838,8 +838,8 @@ static struct clk_branch disp_cc_mdss_byte0_intf_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_byte0_intf_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_byte0_div_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_byte0_div_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -856,8 +856,8 @@ static struct clk_branch disp_cc_mdss_byte1_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_byte1_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_byte1_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_byte1_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -874,8 +874,8 @@ static struct clk_branch disp_cc_mdss_byte1_intf_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_byte1_intf_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_byte1_div_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_byte1_div_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -892,8 +892,8 @@ static struct clk_branch disp_cc_mdss_dptx0_aux_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_dptx0_aux_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_dptx0_aux_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_dptx0_aux_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -910,8 +910,8 @@ static struct clk_branch disp_cc_mdss_dptx0_crypto_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_dptx0_crypto_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_dptx0_link_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_dptx0_link_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -928,8 +928,8 @@ static struct clk_branch disp_cc_mdss_dptx0_link_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_dptx0_link_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_dptx0_link_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_dptx0_link_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -946,8 +946,8 @@ static struct clk_branch disp_cc_mdss_dptx0_link_intf_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_dptx0_link_intf_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_dptx0_link_div_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_dptx0_link_div_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -964,8 +964,8 @@ static struct clk_branch disp_cc_mdss_dptx0_pixel0_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_dptx0_pixel0_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_dptx0_pixel0_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_dptx0_pixel0_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -982,8 +982,8 @@ static struct clk_branch disp_cc_mdss_dptx0_pixel1_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_dptx0_pixel1_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_dptx0_pixel1_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_dptx0_pixel1_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1000,8 +1000,8 @@ static struct clk_branch disp_cc_mdss_dptx0_usb_router_link_intf_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_dptx0_usb_router_link_intf_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_dptx0_link_div_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_dptx0_link_div_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1018,8 +1018,8 @@ static struct clk_branch disp_cc_mdss_dptx1_aux_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_dptx1_aux_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_dptx1_aux_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_dptx1_aux_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1036,8 +1036,8 @@ static struct clk_branch disp_cc_mdss_dptx1_crypto_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_dptx1_crypto_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_dptx1_link_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_dptx1_link_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1054,8 +1054,8 @@ static struct clk_branch disp_cc_mdss_dptx1_link_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_dptx1_link_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_dptx1_link_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_dptx1_link_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1072,8 +1072,8 @@ static struct clk_branch disp_cc_mdss_dptx1_link_intf_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_dptx1_link_intf_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_dptx1_link_div_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_dptx1_link_div_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1090,8 +1090,8 @@ static struct clk_branch disp_cc_mdss_dptx1_pixel0_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_dptx1_pixel0_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_dptx1_pixel0_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_dptx1_pixel0_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1108,8 +1108,8 @@ static struct clk_branch disp_cc_mdss_dptx1_pixel1_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_dptx1_pixel1_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_dptx1_pixel1_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_dptx1_pixel1_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1126,8 +1126,8 @@ static struct clk_branch disp_cc_mdss_dptx1_usb_router_link_intf_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_dptx1_usb_router_link_intf_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_dptx0_link_div_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_dptx0_link_div_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1144,8 +1144,8 @@ static struct clk_branch disp_cc_mdss_dptx2_aux_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_dptx2_aux_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_dptx2_aux_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_dptx2_aux_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1162,8 +1162,8 @@ static struct clk_branch disp_cc_mdss_dptx2_crypto_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_dptx2_crypto_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_dptx2_link_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_dptx2_link_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1180,8 +1180,8 @@ static struct clk_branch disp_cc_mdss_dptx2_link_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_dptx2_link_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_dptx2_link_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_dptx2_link_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1198,8 +1198,8 @@ static struct clk_branch disp_cc_mdss_dptx2_link_intf_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_dptx2_link_intf_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_dptx2_link_div_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_dptx2_link_div_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1216,8 +1216,8 @@ static struct clk_branch disp_cc_mdss_dptx2_pixel0_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_dptx2_pixel0_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_dptx2_pixel0_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_dptx2_pixel0_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1234,8 +1234,8 @@ static struct clk_branch disp_cc_mdss_dptx2_pixel1_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_dptx2_pixel1_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_dptx2_pixel1_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_dptx2_pixel1_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1252,8 +1252,8 @@ static struct clk_branch disp_cc_mdss_dptx3_aux_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_dptx3_aux_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_dptx3_aux_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_dptx3_aux_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1270,8 +1270,8 @@ static struct clk_branch disp_cc_mdss_dptx3_crypto_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_dptx3_crypto_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_dptx3_link_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_dptx3_link_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1288,8 +1288,8 @@ static struct clk_branch disp_cc_mdss_dptx3_link_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_dptx3_link_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_dptx3_link_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_dptx3_link_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1306,8 +1306,8 @@ static struct clk_branch disp_cc_mdss_dptx3_link_intf_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_dptx3_link_intf_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_dptx3_link_div_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_dptx3_link_div_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1324,8 +1324,8 @@ static struct clk_branch disp_cc_mdss_dptx3_pixel0_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_dptx3_pixel0_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_dptx3_pixel0_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_dptx3_pixel0_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1342,8 +1342,8 @@ static struct clk_branch disp_cc_mdss_esc0_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_esc0_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_esc0_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_esc0_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1360,8 +1360,8 @@ static struct clk_branch disp_cc_mdss_esc1_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_esc1_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_esc1_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_esc1_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1378,8 +1378,8 @@ static struct clk_branch disp_cc_mdss_mdp1_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_mdp1_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_mdp_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_mdp_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1396,8 +1396,8 @@ static struct clk_branch disp_cc_mdss_mdp_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_mdp_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_mdp_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_mdp_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1414,8 +1414,8 @@ static struct clk_branch disp_cc_mdss_mdp_lut1_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_mdp_lut1_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_mdp_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_mdp_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1432,8 +1432,8 @@ static struct clk_branch disp_cc_mdss_mdp_lut_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_mdp_lut_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_mdp_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_mdp_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1450,8 +1450,8 @@ static struct clk_branch disp_cc_mdss_non_gdsc_ahb_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_non_gdsc_ahb_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_ahb_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_ahb_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1468,8 +1468,8 @@ static struct clk_branch disp_cc_mdss_pclk0_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_pclk0_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_pclk0_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_pclk0_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1486,8 +1486,8 @@ static struct clk_branch disp_cc_mdss_pclk1_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_pclk1_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_pclk1_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_pclk1_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1504,8 +1504,8 @@ static struct clk_branch disp_cc_mdss_rot1_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_rot1_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_rot_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_rot_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1522,8 +1522,8 @@ static struct clk_branch disp_cc_mdss_rot_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_rot_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_rot_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_rot_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1540,8 +1540,8 @@ static struct clk_branch disp_cc_mdss_rscc_ahb_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_rscc_ahb_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_ahb_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_ahb_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1558,8 +1558,8 @@ static struct clk_branch disp_cc_mdss_rscc_vsync_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_rscc_vsync_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_vsync_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_vsync_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1576,8 +1576,8 @@ static struct clk_branch disp_cc_mdss_vsync1_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_vsync1_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_vsync_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_vsync_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1594,8 +1594,8 @@ static struct clk_branch disp_cc_mdss_vsync_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_mdss_vsync_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_mdss_vsync_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_mdss_vsync_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1612,8 +1612,8 @@ static struct clk_branch disp_cc_sleep_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data) {
|
||||
.name = "disp_cc_sleep_clk",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &disp_cc_sleep_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&disp_cc_sleep_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1762,19 +1762,12 @@ static const struct of_device_id disp_cc_sm8450_match_table[] = {
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, disp_cc_sm8450_match_table);
|
||||
|
||||
static void disp_cc_sm8450_pm_runtime_disable(void *data)
|
||||
{
|
||||
pm_runtime_disable(data);
|
||||
}
|
||||
|
||||
static int disp_cc_sm8450_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct regmap *regmap;
|
||||
int ret;
|
||||
|
||||
pm_runtime_enable(&pdev->dev);
|
||||
|
||||
ret = devm_add_action_or_reset(&pdev->dev, disp_cc_sm8450_pm_runtime_disable, &pdev->dev);
|
||||
ret = devm_pm_runtime_enable(&pdev->dev);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
|
1807
drivers/clk/qcom/dispcc-sm8550.c
Normal file
1807
drivers/clk/qcom/dispcc-sm8550.c
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -934,7 +934,7 @@ static struct clk_rcg2 usb0_mock_utmi_clk_src = {
|
||||
};
|
||||
|
||||
static const struct clk_parent_data gcc_usb3phy_0_cc_pipe_clk_xo[] = {
|
||||
{ .name = "usb3phy_0_cc_pipe_clk" },
|
||||
{ .fw_name = "usb3phy_0_cc_pipe_clk", .name = "usb3phy_0_cc_pipe_clk" },
|
||||
{ .fw_name = "xo", .name = "xo" },
|
||||
};
|
||||
|
||||
@ -1002,7 +1002,7 @@ static struct clk_rcg2 usb1_mock_utmi_clk_src = {
|
||||
};
|
||||
|
||||
static const struct clk_parent_data gcc_usb3phy_1_cc_pipe_clk_xo[] = {
|
||||
{ .name = "usb3phy_1_cc_pipe_clk" },
|
||||
{ .fw_name = "usb3phy_1_cc_pipe_clk", .name = "usb3phy_1_cc_pipe_clk" },
|
||||
{ .fw_name = "xo", .name = "xo" },
|
||||
};
|
||||
|
||||
|
@ -73,8 +73,8 @@ static struct clk_regmap gpll0_vote = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gpll0_vote",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &gpll0.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gpll0.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.ops = &clk_pll_vote_ops,
|
||||
@ -104,8 +104,8 @@ static struct clk_regmap gpll1_vote = {
|
||||
.enable_mask = BIT(1),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gpll1_vote",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &gpll1.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gpll1.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.ops = &clk_pll_vote_ops,
|
||||
@ -135,8 +135,8 @@ static struct clk_regmap gpll2_vote = {
|
||||
.enable_mask = BIT(2),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gpll2_vote",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &gpll2.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gpll2.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.ops = &clk_pll_vote_ops,
|
||||
@ -166,8 +166,8 @@ static struct clk_regmap bimc_pll_vote = {
|
||||
.enable_mask = BIT(3),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "bimc_pll_vote",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &bimc_pll.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&bimc_pll.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.ops = &clk_pll_vote_ops,
|
||||
@ -197,8 +197,8 @@ static struct clk_regmap gpll3_vote = {
|
||||
.enable_mask = BIT(4),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gpll3_vote",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &gpll3.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gpll3.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.ops = &clk_pll_vote_ops,
|
||||
@ -244,8 +244,8 @@ static struct clk_regmap gpll4_vote = {
|
||||
.enable_mask = BIT(5),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gpll4_vote",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &gpll4.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gpll4.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.ops = &clk_pll_vote_ops,
|
||||
@ -290,8 +290,8 @@ static struct clk_regmap gpll5_vote = {
|
||||
.enable_mask = BIT(6),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gpll5_vote",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &gpll5.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gpll5.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.ops = &clk_pll_vote_ops,
|
||||
@ -321,8 +321,8 @@ static struct clk_regmap gpll6_vote = {
|
||||
.enable_mask = BIT(7),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gpll6_vote",
|
||||
.parent_data = &(const struct clk_parent_data) {
|
||||
.hw = &gpll6.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gpll6.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.ops = &clk_pll_vote_ops,
|
||||
|
@ -2110,7 +2110,7 @@ static struct clk_branch gcc_sdcc1_cdccal_sleep_clk = {
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_sdcc1_cdccal_sleep_clk",
|
||||
.parent_data = (const struct clk_parent_data[]){
|
||||
{ .fw_name = "sleep_clk", .name = "sleep_clk_src" }
|
||||
{ .fw_name = "sleep_clk", .name = "sleep_clk" }
|
||||
},
|
||||
.num_parents = 1,
|
||||
.ops = &clk_branch2_ops,
|
||||
@ -2275,7 +2275,7 @@ static struct clk_branch gcc_usb2a_phy_sleep_clk = {
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_usb2a_phy_sleep_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.fw_name = "sleep_clk", .name = "sleep_clk_src",
|
||||
.fw_name = "sleep_clk", .name = "sleep_clk",
|
||||
},
|
||||
.num_parents = 1,
|
||||
.ops = &clk_branch2_ops,
|
||||
@ -2291,7 +2291,7 @@ static struct clk_branch gcc_usb2b_phy_sleep_clk = {
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_usb2b_phy_sleep_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.fw_name = "sleep_clk", .name = "sleep_clk_src",
|
||||
.fw_name = "sleep_clk", .name = "sleep_clk",
|
||||
},
|
||||
.num_parents = 1,
|
||||
.ops = &clk_branch2_ops,
|
||||
@ -2341,7 +2341,7 @@ static struct clk_branch gcc_usb30_sleep_clk = {
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_usb30_sleep_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.fw_name = "sleep_clk", .name = "sleep_clk_src",
|
||||
.fw_name = "sleep_clk", .name = "sleep_clk",
|
||||
},
|
||||
.num_parents = 1,
|
||||
.ops = &clk_branch2_ops,
|
||||
@ -2440,7 +2440,7 @@ static struct clk_branch gcc_usb_hsic_io_cal_sleep_clk = {
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_usb_hsic_io_cal_sleep_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.fw_name = "sleep_clk", .name = "sleep_clk_src",
|
||||
.fw_name = "sleep_clk", .name = "sleep_clk",
|
||||
},
|
||||
.num_parents = 1,
|
||||
.ops = &clk_branch2_ops,
|
||||
|
@ -334,9 +334,9 @@ static const struct parent_map gcc_parent_map_7[] = {
|
||||
{ P_GPLL6_OUT, 3 },
|
||||
};
|
||||
|
||||
static const struct clk_parent_data gcc_parent_data_7[] = {
|
||||
{ .hw = &gpll0_vote.hw },
|
||||
{ .hw = &gpll6_vote.hw },
|
||||
static const struct clk_hw * gcc_parent_hws_7[] = {
|
||||
&gpll0_vote.hw,
|
||||
&gpll6_vote.hw,
|
||||
};
|
||||
|
||||
static const struct parent_map gcc_parent_map_8[] = {
|
||||
@ -363,8 +363,8 @@ static const struct parent_map gcc_parent_map_8_gp[] = {
|
||||
{ P_GPLL0_OUT_MAIN, 1 },
|
||||
};
|
||||
|
||||
static const struct clk_parent_data gcc_parent_data_8_gp[] = {
|
||||
{ .hw = &gpll0_vote.hw },
|
||||
static const struct clk_hw *gcc_parent_hws_8_gp[] = {
|
||||
&gpll0_vote.hw,
|
||||
};
|
||||
|
||||
static const struct parent_map gcc_parent_map_9[] = {
|
||||
@ -952,8 +952,8 @@ static struct clk_rcg2 camss_gp0_clk_src = {
|
||||
.freq_tbl = ftbl_camss_gp0_clk_src,
|
||||
.clkr.hw.init = &(struct clk_init_data){
|
||||
.name = "camss_gp0_clk_src",
|
||||
.parent_data = gcc_parent_data_8_gp,
|
||||
.num_parents = ARRAY_SIZE(gcc_parent_data_8_gp),
|
||||
.parent_hws = gcc_parent_hws_8_gp,
|
||||
.num_parents = ARRAY_SIZE(gcc_parent_hws_8_gp),
|
||||
.ops = &clk_rcg2_ops,
|
||||
},
|
||||
};
|
||||
@ -973,8 +973,8 @@ static struct clk_rcg2 camss_gp1_clk_src = {
|
||||
.freq_tbl = ftbl_camss_gp1_clk_src,
|
||||
.clkr.hw.init = &(struct clk_init_data){
|
||||
.name = "camss_gp1_clk_src",
|
||||
.parent_data = gcc_parent_data_8_gp,
|
||||
.num_parents = ARRAY_SIZE(gcc_parent_data_8_gp),
|
||||
.parent_hws = gcc_parent_hws_8_gp,
|
||||
.num_parents = ARRAY_SIZE(gcc_parent_hws_8_gp),
|
||||
.ops = &clk_rcg2_ops,
|
||||
},
|
||||
};
|
||||
@ -1015,8 +1015,8 @@ static struct clk_rcg2 mclk0_clk_src = {
|
||||
.freq_tbl = ftbl_mclk_clk_src,
|
||||
.clkr.hw.init = &(struct clk_init_data){
|
||||
.name = "mclk0_clk_src",
|
||||
.parent_data = gcc_parent_data_7,
|
||||
.num_parents = ARRAY_SIZE(gcc_parent_data_7),
|
||||
.parent_hws = gcc_parent_hws_7,
|
||||
.num_parents = ARRAY_SIZE(gcc_parent_hws_7),
|
||||
.ops = &clk_rcg2_ops,
|
||||
},
|
||||
};
|
||||
@ -1029,8 +1029,8 @@ static struct clk_rcg2 mclk1_clk_src = {
|
||||
.freq_tbl = ftbl_mclk_clk_src,
|
||||
.clkr.hw.init = &(struct clk_init_data){
|
||||
.name = "mclk1_clk_src",
|
||||
.parent_data = gcc_parent_data_7,
|
||||
.num_parents = ARRAY_SIZE(gcc_parent_data_7),
|
||||
.parent_hws = gcc_parent_hws_7,
|
||||
.num_parents = ARRAY_SIZE(gcc_parent_hws_7),
|
||||
.ops = &clk_rcg2_ops,
|
||||
},
|
||||
};
|
||||
@ -1043,8 +1043,8 @@ static struct clk_rcg2 mclk2_clk_src = {
|
||||
.freq_tbl = ftbl_mclk_clk_src,
|
||||
.clkr.hw.init = &(struct clk_init_data){
|
||||
.name = "mclk2_clk_src",
|
||||
.parent_data = gcc_parent_data_7,
|
||||
.num_parents = ARRAY_SIZE(gcc_parent_data_7),
|
||||
.parent_hws = gcc_parent_hws_7,
|
||||
.num_parents = ARRAY_SIZE(gcc_parent_hws_7),
|
||||
.ops = &clk_rcg2_ops,
|
||||
},
|
||||
};
|
||||
|
@ -387,7 +387,6 @@ static struct clk_alpha_pll_postdiv gpll4_out_test = {
|
||||
|
||||
enum {
|
||||
P_AUD_REF_CLK,
|
||||
P_CORE_BI_PLL_TEST_SE,
|
||||
P_GPLL0_OUT_MAIN,
|
||||
P_GPLL4_OUT_MAIN,
|
||||
P_PLL0_EARLY_DIV_CLK_SRC,
|
||||
@ -399,26 +398,22 @@ static const struct parent_map gcc_parent_map_0[] = {
|
||||
{ P_XO, 0 },
|
||||
{ P_GPLL0_OUT_MAIN, 1 },
|
||||
{ P_PLL0_EARLY_DIV_CLK_SRC, 6 },
|
||||
{ P_CORE_BI_PLL_TEST_SE, 7 },
|
||||
};
|
||||
|
||||
static const struct clk_parent_data gcc_parent_data_0[] = {
|
||||
{ .fw_name = "xo" },
|
||||
{ .hw = &gpll0_out_main.clkr.hw },
|
||||
{ .hw = &gpll0_out_main.clkr.hw },
|
||||
{ .fw_name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct parent_map gcc_parent_map_1[] = {
|
||||
{ P_XO, 0 },
|
||||
{ P_GPLL0_OUT_MAIN, 1 },
|
||||
{ P_CORE_BI_PLL_TEST_SE, 7 },
|
||||
};
|
||||
|
||||
static const struct clk_parent_data gcc_parent_data_1[] = {
|
||||
{ .fw_name = "xo" },
|
||||
{ .hw = &gpll0_out_main.clkr.hw },
|
||||
{ .fw_name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct parent_map gcc_parent_map_2[] = {
|
||||
@ -426,7 +421,6 @@ static const struct parent_map gcc_parent_map_2[] = {
|
||||
{ P_GPLL0_OUT_MAIN, 1 },
|
||||
{ P_SLEEP_CLK, 5 },
|
||||
{ P_PLL0_EARLY_DIV_CLK_SRC, 6 },
|
||||
{ P_CORE_BI_PLL_TEST_SE, 7 },
|
||||
};
|
||||
|
||||
static const struct clk_parent_data gcc_parent_data_2[] = {
|
||||
@ -434,47 +428,40 @@ static const struct clk_parent_data gcc_parent_data_2[] = {
|
||||
{ .hw = &gpll0_out_main.clkr.hw },
|
||||
{ .fw_name = "sleep_clk" },
|
||||
{ .hw = &gpll0_out_main.clkr.hw },
|
||||
{ .fw_name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct parent_map gcc_parent_map_3[] = {
|
||||
{ P_XO, 0 },
|
||||
{ P_SLEEP_CLK, 5 },
|
||||
{ P_CORE_BI_PLL_TEST_SE, 7 },
|
||||
};
|
||||
|
||||
static const struct clk_parent_data gcc_parent_data_3[] = {
|
||||
{ .fw_name = "xo" },
|
||||
{ .fw_name = "sleep_clk" },
|
||||
{ .fw_name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct parent_map gcc_parent_map_4[] = {
|
||||
{ P_XO, 0 },
|
||||
{ P_GPLL0_OUT_MAIN, 1 },
|
||||
{ P_GPLL4_OUT_MAIN, 5 },
|
||||
{ P_CORE_BI_PLL_TEST_SE, 7 },
|
||||
};
|
||||
|
||||
static const struct clk_parent_data gcc_parent_data_4[] = {
|
||||
{ .fw_name = "xo" },
|
||||
{ .hw = &gpll0_out_main.clkr.hw },
|
||||
{ .hw = &gpll4_out_main.clkr.hw },
|
||||
{ .fw_name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct parent_map gcc_parent_map_5[] = {
|
||||
{ P_XO, 0 },
|
||||
{ P_GPLL0_OUT_MAIN, 1 },
|
||||
{ P_AUD_REF_CLK, 2 },
|
||||
{ P_CORE_BI_PLL_TEST_SE, 7 },
|
||||
};
|
||||
|
||||
static const struct clk_parent_data gcc_parent_data_5[] = {
|
||||
{ .fw_name = "xo" },
|
||||
{ .hw = &gpll0_out_main.clkr.hw },
|
||||
{ .fw_name = "aud_ref_clk" },
|
||||
{ .fw_name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct freq_tbl ftbl_blsp1_qup1_i2c_apps_clk_src[] = {
|
||||
|
File diff suppressed because it is too large
Load Diff
2653
drivers/clk/qcom/gcc-qdu1000.c
Normal file
2653
drivers/clk/qcom/gcc-qdu1000.c
Normal file
File diff suppressed because it is too large
Load Diff
4785
drivers/clk/qcom/gcc-sa8775p.c
Normal file
4785
drivers/clk/qcom/gcc-sa8775p.c
Normal file
File diff suppressed because it is too large
Load Diff
@ -23,7 +23,6 @@
|
||||
|
||||
enum {
|
||||
P_BI_TCXO,
|
||||
P_CORE_BI_PLL_TEST_SE,
|
||||
P_GPLL0_OUT_EVEN,
|
||||
P_GPLL0_OUT_MAIN,
|
||||
P_GPLL1_OUT_MAIN,
|
||||
@ -162,21 +161,18 @@ static const struct parent_map gcc_parent_map_0[] = {
|
||||
{ P_BI_TCXO, 0 },
|
||||
{ P_GPLL0_OUT_MAIN, 1 },
|
||||
{ P_GPLL0_OUT_EVEN, 6 },
|
||||
{ P_CORE_BI_PLL_TEST_SE, 7 },
|
||||
};
|
||||
|
||||
static const struct clk_parent_data gcc_parent_data_0[] = {
|
||||
{ .fw_name = "bi_tcxo", .name = "bi_tcxo" },
|
||||
{ .hw = &gpll0.clkr.hw },
|
||||
{ .hw = &gpll0_out_even.clkr.hw },
|
||||
{ .fw_name = "core_bi_pll_test_se", .name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct clk_parent_data gcc_parent_data_0_ao[] = {
|
||||
{ .fw_name = "bi_tcxo_ao", .name = "bi_tcxo_ao" },
|
||||
{ .hw = &gpll0.clkr.hw },
|
||||
{ .hw = &gpll0_out_even.clkr.hw },
|
||||
{ .fw_name = "core_bi_pll_test_se", .name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct parent_map gcc_parent_map_1[] = {
|
||||
@ -184,7 +180,6 @@ static const struct parent_map gcc_parent_map_1[] = {
|
||||
{ P_GPLL0_OUT_MAIN, 1 },
|
||||
{ P_GPLL6_OUT_MAIN, 2 },
|
||||
{ P_GPLL0_OUT_EVEN, 6 },
|
||||
{ P_CORE_BI_PLL_TEST_SE, 7 },
|
||||
};
|
||||
|
||||
static const struct clk_parent_data gcc_parent_data_1[] = {
|
||||
@ -192,7 +187,6 @@ static const struct clk_parent_data gcc_parent_data_1[] = {
|
||||
{ .hw = &gpll0.clkr.hw },
|
||||
{ .hw = &gpll6.clkr.hw },
|
||||
{ .hw = &gpll0_out_even.clkr.hw },
|
||||
{ .fw_name = "core_bi_pll_test_se", .name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct parent_map gcc_parent_map_2[] = {
|
||||
@ -201,7 +195,6 @@ static const struct parent_map gcc_parent_map_2[] = {
|
||||
{ P_GPLL1_OUT_MAIN, 4 },
|
||||
{ P_GPLL4_OUT_MAIN, 5 },
|
||||
{ P_GPLL0_OUT_EVEN, 6 },
|
||||
{ P_CORE_BI_PLL_TEST_SE, 7 },
|
||||
};
|
||||
|
||||
static const struct clk_parent_data gcc_parent_data_2[] = {
|
||||
@ -210,19 +203,16 @@ static const struct clk_parent_data gcc_parent_data_2[] = {
|
||||
{ .hw = &gpll1.clkr.hw },
|
||||
{ .hw = &gpll4.clkr.hw },
|
||||
{ .hw = &gpll0_out_even.clkr.hw },
|
||||
{ .fw_name = "core_bi_pll_test_se", .name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct parent_map gcc_parent_map_3[] = {
|
||||
{ P_BI_TCXO, 0 },
|
||||
{ P_GPLL0_OUT_MAIN, 1 },
|
||||
{ P_CORE_BI_PLL_TEST_SE, 7 },
|
||||
};
|
||||
|
||||
static const struct clk_parent_data gcc_parent_data_3[] = {
|
||||
{ .fw_name = "bi_tcxo", .name = "bi_tcxo" },
|
||||
{ .hw = &gpll0.clkr.hw },
|
||||
{ .fw_name = "core_bi_pll_test_se", .name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct parent_map gcc_parent_map_4[] = {
|
||||
@ -230,7 +220,6 @@ static const struct parent_map gcc_parent_map_4[] = {
|
||||
{ P_GPLL0_OUT_MAIN, 1 },
|
||||
{ P_SLEEP_CLK, 5 },
|
||||
{ P_GPLL0_OUT_EVEN, 6 },
|
||||
{ P_CORE_BI_PLL_TEST_SE, 7 },
|
||||
};
|
||||
|
||||
static const struct clk_parent_data gcc_parent_data_4[] = {
|
||||
@ -238,7 +227,6 @@ static const struct clk_parent_data gcc_parent_data_4[] = {
|
||||
{ .hw = &gpll0.clkr.hw },
|
||||
{ .fw_name = "sleep_clk", .name = "sleep_clk" },
|
||||
{ .hw = &gpll0_out_even.clkr.hw },
|
||||
{ .fw_name = "core_bi_pll_test_se", .name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct parent_map gcc_parent_map_5[] = {
|
||||
@ -246,7 +234,6 @@ static const struct parent_map gcc_parent_map_5[] = {
|
||||
{ P_GPLL0_OUT_MAIN, 1 },
|
||||
{ P_GPLL7_OUT_MAIN, 3 },
|
||||
{ P_GPLL0_OUT_EVEN, 6 },
|
||||
{ P_CORE_BI_PLL_TEST_SE, 7 },
|
||||
};
|
||||
|
||||
static const struct clk_parent_data gcc_parent_data_5[] = {
|
||||
@ -254,21 +241,18 @@ static const struct clk_parent_data gcc_parent_data_5[] = {
|
||||
{ .hw = &gpll0.clkr.hw },
|
||||
{ .hw = &gpll7.clkr.hw },
|
||||
{ .hw = &gpll0_out_even.clkr.hw },
|
||||
{ .fw_name = "core_bi_pll_test_se", .name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct parent_map gcc_parent_map_6[] = {
|
||||
{ P_BI_TCXO, 0 },
|
||||
{ P_GPLL0_OUT_MAIN, 1 },
|
||||
{ P_SLEEP_CLK, 5 },
|
||||
{ P_CORE_BI_PLL_TEST_SE, 7 },
|
||||
};
|
||||
|
||||
static const struct clk_parent_data gcc_parent_data_6[] = {
|
||||
{ .fw_name = "bi_tcxo", .name = "bi_tcxo" },
|
||||
{ .hw = &gpll0.clkr.hw },
|
||||
{ .fw_name = "sleep_clk", .name = "sleep_clk" },
|
||||
{ .fw_name = "core_bi_pll_test_se", .name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct freq_tbl ftbl_gcc_cpuss_ahb_clk_src[] = {
|
||||
@ -1987,8 +1971,7 @@ static struct clk_branch gcc_usb30_prim_mock_utmi_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_usb30_prim_mock_utmi_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw =
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_usb30_prim_mock_utmi_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
|
@ -2760,9 +2760,8 @@ static struct clk_branch gcc_usb30_prim_mock_utmi_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_usb30_prim_mock_utmi_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw =
|
||||
&gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2810,9 +2809,8 @@ static struct clk_branch gcc_usb30_sec_mock_utmi_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_usb30_sec_mock_utmi_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw =
|
||||
&gcc_usb30_sec_mock_utmi_postdiv_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_usb30_sec_mock_utmi_postdiv_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
|
@ -22,7 +22,6 @@
|
||||
|
||||
enum {
|
||||
P_BI_TCXO,
|
||||
P_CORE_BI_PLL_TEST_SE,
|
||||
P_GPLL0_OUT_EVEN,
|
||||
P_GPLL0_OUT_MAIN,
|
||||
P_GPLL4_OUT_EVEN,
|
||||
@ -137,21 +136,18 @@ static const struct parent_map gcc_parent_map_0[] = {
|
||||
{ P_BI_TCXO, 0 },
|
||||
{ P_GPLL0_OUT_MAIN, 1 },
|
||||
{ P_GPLL0_OUT_EVEN, 6 },
|
||||
{ P_CORE_BI_PLL_TEST_SE, 7 },
|
||||
};
|
||||
|
||||
static const struct clk_parent_data gcc_parents_0[] = {
|
||||
{ .fw_name = "bi_tcxo" },
|
||||
{ .hw = &gpll0.clkr.hw },
|
||||
{ .hw = &gpll0_out_even.clkr.hw },
|
||||
{ .fw_name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct clk_parent_data gcc_parents_0_ao[] = {
|
||||
{ .fw_name = "bi_tcxo_ao" },
|
||||
{ .hw = &gpll0.clkr.hw },
|
||||
{ .hw = &gpll0_out_even.clkr.hw },
|
||||
{ .fw_name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct parent_map gcc_parent_map_2[] = {
|
||||
@ -160,7 +156,6 @@ static const struct parent_map gcc_parent_map_2[] = {
|
||||
{ P_GPLL4_OUT_EVEN, 2 },
|
||||
{ P_GPLL5_OUT_MAIN, 5 },
|
||||
{ P_GPLL0_OUT_EVEN, 6 },
|
||||
{ P_CORE_BI_PLL_TEST_SE, 7 },
|
||||
};
|
||||
|
||||
static const struct clk_parent_data gcc_parents_2[] = {
|
||||
@ -169,7 +164,6 @@ static const struct clk_parent_data gcc_parents_2[] = {
|
||||
{ .hw = &gpll4_out_even.clkr.hw },
|
||||
{ .hw = &gpll5.clkr.hw },
|
||||
{ .hw = &gpll0_out_even.clkr.hw },
|
||||
{ .fw_name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct parent_map gcc_parent_map_3[] = {
|
||||
@ -177,7 +171,6 @@ static const struct parent_map gcc_parent_map_3[] = {
|
||||
{ P_GPLL0_OUT_MAIN, 1 },
|
||||
{ P_SLEEP_CLK, 5 },
|
||||
{ P_GPLL0_OUT_EVEN, 6 },
|
||||
{ P_CORE_BI_PLL_TEST_SE, 7 },
|
||||
};
|
||||
|
||||
static const struct clk_parent_data gcc_parents_3[] = {
|
||||
@ -185,19 +178,16 @@ static const struct clk_parent_data gcc_parents_3[] = {
|
||||
{ .hw = &gpll0.clkr.hw },
|
||||
{ .fw_name = "sleep_clk", .name = "sleep_clk" },
|
||||
{ .hw = &gpll0_out_even.clkr.hw },
|
||||
{ .fw_name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct parent_map gcc_parent_map_4[] = {
|
||||
{ P_BI_TCXO, 0 },
|
||||
{ P_SLEEP_CLK, 5 },
|
||||
{ P_CORE_BI_PLL_TEST_SE, 7 },
|
||||
};
|
||||
|
||||
static const struct clk_parent_data gcc_parents_4[] = {
|
||||
{ .fw_name = "bi_tcxo" },
|
||||
{ .fw_name = "sleep_clk", .name = "sleep_clk" },
|
||||
{ .fw_name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct parent_map gcc_parent_map_5[] = {
|
||||
@ -205,7 +195,6 @@ static const struct parent_map gcc_parent_map_5[] = {
|
||||
{ P_GPLL0_OUT_MAIN, 1 },
|
||||
{ P_GPLL4_OUT_EVEN, 2 },
|
||||
{ P_GPLL0_OUT_EVEN, 6 },
|
||||
{ P_CORE_BI_PLL_TEST_SE, 7 },
|
||||
};
|
||||
|
||||
static const struct clk_parent_data gcc_parents_5[] = {
|
||||
@ -213,7 +202,6 @@ static const struct clk_parent_data gcc_parents_5[] = {
|
||||
{ .hw = &gpll0.clkr.hw },
|
||||
{ .hw = &gpll4_out_even.clkr.hw },
|
||||
{ .hw = &gpll0_out_even.clkr.hw },
|
||||
{ .fw_name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct freq_tbl ftbl_gcc_blsp1_qup1_i2c_apps_clk_src[] = {
|
||||
@ -232,7 +220,7 @@ static struct clk_rcg2 gcc_blsp1_qup1_i2c_apps_clk_src = {
|
||||
.clkr.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_blsp1_qup1_i2c_apps_clk_src",
|
||||
.parent_data = gcc_parents_0,
|
||||
.num_parents = 4,
|
||||
.num_parents = ARRAY_SIZE(gcc_parents_0),
|
||||
.ops = &clk_rcg2_ops,
|
||||
},
|
||||
};
|
||||
@ -258,7 +246,7 @@ static struct clk_rcg2 gcc_blsp1_qup1_spi_apps_clk_src = {
|
||||
.clkr.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_blsp1_qup1_spi_apps_clk_src",
|
||||
.parent_data = gcc_parents_0,
|
||||
.num_parents = 4,
|
||||
.num_parents = ARRAY_SIZE(gcc_parents_0),
|
||||
.ops = &clk_rcg2_ops,
|
||||
},
|
||||
};
|
||||
@ -272,7 +260,7 @@ static struct clk_rcg2 gcc_blsp1_qup2_i2c_apps_clk_src = {
|
||||
.clkr.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_blsp1_qup2_i2c_apps_clk_src",
|
||||
.parent_data = gcc_parents_0,
|
||||
.num_parents = 4,
|
||||
.num_parents = ARRAY_SIZE(gcc_parents_0),
|
||||
.ops = &clk_rcg2_ops,
|
||||
},
|
||||
};
|
||||
@ -286,7 +274,7 @@ static struct clk_rcg2 gcc_blsp1_qup2_spi_apps_clk_src = {
|
||||
.clkr.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_blsp1_qup2_spi_apps_clk_src",
|
||||
.parent_data = gcc_parents_0,
|
||||
.num_parents = 4,
|
||||
.num_parents = ARRAY_SIZE(gcc_parents_0),
|
||||
.ops = &clk_rcg2_ops,
|
||||
},
|
||||
};
|
||||
@ -300,7 +288,7 @@ static struct clk_rcg2 gcc_blsp1_qup3_i2c_apps_clk_src = {
|
||||
.clkr.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_blsp1_qup3_i2c_apps_clk_src",
|
||||
.parent_data = gcc_parents_0,
|
||||
.num_parents = 4,
|
||||
.num_parents = ARRAY_SIZE(gcc_parents_0),
|
||||
.ops = &clk_rcg2_ops,
|
||||
},
|
||||
};
|
||||
@ -314,7 +302,7 @@ static struct clk_rcg2 gcc_blsp1_qup3_spi_apps_clk_src = {
|
||||
.clkr.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_blsp1_qup3_spi_apps_clk_src",
|
||||
.parent_data = gcc_parents_0,
|
||||
.num_parents = 4,
|
||||
.num_parents = ARRAY_SIZE(gcc_parents_0),
|
||||
.ops = &clk_rcg2_ops,
|
||||
},
|
||||
};
|
||||
@ -328,7 +316,7 @@ static struct clk_rcg2 gcc_blsp1_qup4_i2c_apps_clk_src = {
|
||||
.clkr.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_blsp1_qup4_i2c_apps_clk_src",
|
||||
.parent_data = gcc_parents_0,
|
||||
.num_parents = 4,
|
||||
.num_parents = ARRAY_SIZE(gcc_parents_0),
|
||||
.ops = &clk_rcg2_ops,
|
||||
},
|
||||
};
|
||||
@ -342,7 +330,7 @@ static struct clk_rcg2 gcc_blsp1_qup4_spi_apps_clk_src = {
|
||||
.clkr.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_blsp1_qup4_spi_apps_clk_src",
|
||||
.parent_data = gcc_parents_0,
|
||||
.num_parents = 4,
|
||||
.num_parents = ARRAY_SIZE(gcc_parents_0),
|
||||
.ops = &clk_rcg2_ops,
|
||||
},
|
||||
};
|
||||
@ -386,7 +374,7 @@ static struct clk_rcg2 gcc_blsp1_uart1_apps_clk_src = {
|
||||
.clkr.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_blsp1_uart1_apps_clk_src",
|
||||
.parent_data = gcc_parents_0,
|
||||
.num_parents = 4,
|
||||
.num_parents = ARRAY_SIZE(gcc_parents_0),
|
||||
.ops = &clk_rcg2_ops,
|
||||
},
|
||||
};
|
||||
@ -400,7 +388,7 @@ static struct clk_rcg2 gcc_blsp1_uart2_apps_clk_src = {
|
||||
.clkr.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_blsp1_uart2_apps_clk_src",
|
||||
.parent_data = gcc_parents_0,
|
||||
.num_parents = 4,
|
||||
.num_parents = ARRAY_SIZE(gcc_parents_0),
|
||||
.ops = &clk_rcg2_ops,
|
||||
},
|
||||
};
|
||||
@ -414,7 +402,7 @@ static struct clk_rcg2 gcc_blsp1_uart3_apps_clk_src = {
|
||||
.clkr.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_blsp1_uart3_apps_clk_src",
|
||||
.parent_data = gcc_parents_0,
|
||||
.num_parents = 4,
|
||||
.num_parents = ARRAY_SIZE(gcc_parents_0),
|
||||
.ops = &clk_rcg2_ops,
|
||||
},
|
||||
};
|
||||
@ -428,7 +416,7 @@ static struct clk_rcg2 gcc_blsp1_uart4_apps_clk_src = {
|
||||
.clkr.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_blsp1_uart4_apps_clk_src",
|
||||
.parent_data = gcc_parents_0,
|
||||
.num_parents = 4,
|
||||
.num_parents = ARRAY_SIZE(gcc_parents_0),
|
||||
.ops = &clk_rcg2_ops,
|
||||
},
|
||||
};
|
||||
@ -450,7 +438,7 @@ static struct clk_rcg2 gcc_cpuss_ahb_clk_src = {
|
||||
.clkr.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_cpuss_ahb_clk_src",
|
||||
.parent_data = gcc_parents_0_ao,
|
||||
.num_parents = 4,
|
||||
.num_parents = ARRAY_SIZE(gcc_parents_0_ao),
|
||||
.ops = &clk_rcg2_ops,
|
||||
},
|
||||
};
|
||||
@ -469,7 +457,7 @@ static struct clk_rcg2 gcc_cpuss_rbcpr_clk_src = {
|
||||
.clkr.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_cpuss_rbcpr_clk_src",
|
||||
.parent_data = gcc_parents_0_ao,
|
||||
.num_parents = 4,
|
||||
.num_parents = ARRAY_SIZE(gcc_parents_0_ao),
|
||||
.ops = &clk_rcg2_ops,
|
||||
},
|
||||
};
|
||||
@ -493,7 +481,7 @@ static struct clk_rcg2 gcc_emac_clk_src = {
|
||||
.clkr.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_emac_clk_src",
|
||||
.parent_data = gcc_parents_5,
|
||||
.num_parents = 5,
|
||||
.num_parents = ARRAY_SIZE(gcc_parents_5),
|
||||
.ops = &clk_rcg2_ops,
|
||||
},
|
||||
};
|
||||
@ -514,7 +502,7 @@ static struct clk_rcg2 gcc_emac_ptp_clk_src = {
|
||||
.clkr.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_emac_ptp_clk_src",
|
||||
.parent_data = gcc_parents_2,
|
||||
.num_parents = 6,
|
||||
.num_parents = ARRAY_SIZE(gcc_parents_2),
|
||||
.ops = &clk_rcg2_ops,
|
||||
},
|
||||
};
|
||||
@ -537,7 +525,7 @@ static struct clk_rcg2 gcc_gp1_clk_src = {
|
||||
.clkr.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_gp1_clk_src",
|
||||
.parent_data = gcc_parents_3,
|
||||
.num_parents = 5,
|
||||
.num_parents = ARRAY_SIZE(gcc_parents_3),
|
||||
.ops = &clk_rcg2_ops,
|
||||
},
|
||||
};
|
||||
@ -551,7 +539,7 @@ static struct clk_rcg2 gcc_gp2_clk_src = {
|
||||
.clkr.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_gp2_clk_src",
|
||||
.parent_data = gcc_parents_3,
|
||||
.num_parents = 5,
|
||||
.num_parents = ARRAY_SIZE(gcc_parents_3),
|
||||
.ops = &clk_rcg2_ops,
|
||||
},
|
||||
};
|
||||
@ -565,7 +553,7 @@ static struct clk_rcg2 gcc_gp3_clk_src = {
|
||||
.clkr.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_gp3_clk_src",
|
||||
.parent_data = gcc_parents_3,
|
||||
.num_parents = 5,
|
||||
.num_parents = ARRAY_SIZE(gcc_parents_3),
|
||||
.ops = &clk_rcg2_ops,
|
||||
},
|
||||
};
|
||||
@ -579,7 +567,7 @@ static struct clk_rcg2 gcc_pcie_aux_phy_clk_src = {
|
||||
.clkr.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_pcie_aux_phy_clk_src",
|
||||
.parent_data = gcc_parents_4,
|
||||
.num_parents = 3,
|
||||
.num_parents = ARRAY_SIZE(gcc_parents_4),
|
||||
.ops = &clk_rcg2_ops,
|
||||
},
|
||||
};
|
||||
@ -598,7 +586,7 @@ static struct clk_rcg2 gcc_pcie_rchng_phy_clk_src = {
|
||||
.clkr.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_pcie_rchng_phy_clk_src",
|
||||
.parent_data = gcc_parents_3,
|
||||
.num_parents = 5,
|
||||
.num_parents = ARRAY_SIZE(gcc_parents_3),
|
||||
.ops = &clk_rcg2_ops,
|
||||
},
|
||||
};
|
||||
@ -619,7 +607,7 @@ static struct clk_rcg2 gcc_pdm2_clk_src = {
|
||||
.clkr.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_pdm2_clk_src",
|
||||
.parent_data = gcc_parents_0,
|
||||
.num_parents = 4,
|
||||
.num_parents = ARRAY_SIZE(gcc_parents_0),
|
||||
.ops = &clk_rcg2_ops,
|
||||
},
|
||||
};
|
||||
@ -633,7 +621,7 @@ static struct clk_rcg2 gcc_sdcc1_apps_clk_src = {
|
||||
.clkr.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_sdcc1_apps_clk_src",
|
||||
.parent_data = gcc_parents_0,
|
||||
.num_parents = 4,
|
||||
.num_parents = ARRAY_SIZE(gcc_parents_0),
|
||||
.ops = &clk_rcg2_ops,
|
||||
},
|
||||
};
|
||||
@ -652,7 +640,7 @@ static struct clk_rcg2 gcc_usb30_master_clk_src = {
|
||||
.clkr.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_usb30_master_clk_src",
|
||||
.parent_data = gcc_parents_0,
|
||||
.num_parents = 4,
|
||||
.num_parents = ARRAY_SIZE(gcc_parents_0),
|
||||
.ops = &clk_rcg2_ops,
|
||||
},
|
||||
};
|
||||
@ -671,7 +659,7 @@ static struct clk_rcg2 gcc_usb30_mock_utmi_clk_src = {
|
||||
.clkr.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_usb30_mock_utmi_clk_src",
|
||||
.parent_data = gcc_parents_0,
|
||||
.num_parents = 4,
|
||||
.num_parents = ARRAY_SIZE(gcc_parents_0),
|
||||
.ops = &clk_rcg2_ops,
|
||||
},
|
||||
};
|
||||
@ -691,7 +679,7 @@ static struct clk_rcg2 gcc_usb3_phy_aux_clk_src = {
|
||||
.clkr.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_usb3_phy_aux_clk_src",
|
||||
.parent_data = gcc_parents_4,
|
||||
.num_parents = 3,
|
||||
.num_parents = ARRAY_SIZE(gcc_parents_4),
|
||||
.ops = &clk_rcg2_ops,
|
||||
},
|
||||
};
|
||||
|
@ -634,8 +634,8 @@ static struct clk_regmap_div gcc_cpuss_ahb_postdiv_clk_src = {
|
||||
.width = 4,
|
||||
.clkr.hw.init = &(struct clk_init_data) {
|
||||
.name = "gcc_cpuss_ahb_postdiv_clk_src",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_cpuss_ahb_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_cpuss_ahb_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -649,8 +649,8 @@ static struct clk_regmap_div gcc_usb30_mock_utmi_postdiv_clk_src = {
|
||||
.width = 4,
|
||||
.clkr.hw.init = &(struct clk_init_data) {
|
||||
.name = "gcc_usb30_mock_utmi_postdiv_clk_src",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_usb30_mock_utmi_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_usb30_mock_utmi_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -692,8 +692,8 @@ static struct clk_branch gcc_blsp1_qup1_i2c_apps_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_blsp1_qup1_i2c_apps_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_blsp1_qup1_i2c_apps_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_blsp1_qup1_i2c_apps_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -710,8 +710,8 @@ static struct clk_branch gcc_blsp1_qup1_spi_apps_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_blsp1_qup1_spi_apps_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_blsp1_qup1_spi_apps_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_blsp1_qup1_spi_apps_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -728,8 +728,8 @@ static struct clk_branch gcc_blsp1_qup2_i2c_apps_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_blsp1_qup2_i2c_apps_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_blsp1_qup2_i2c_apps_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_blsp1_qup2_i2c_apps_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -746,8 +746,8 @@ static struct clk_branch gcc_blsp1_qup2_spi_apps_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_blsp1_qup2_spi_apps_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_blsp1_qup2_spi_apps_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_blsp1_qup2_spi_apps_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -764,8 +764,8 @@ static struct clk_branch gcc_blsp1_qup3_i2c_apps_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_blsp1_qup3_i2c_apps_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_blsp1_qup3_i2c_apps_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_blsp1_qup3_i2c_apps_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -782,8 +782,8 @@ static struct clk_branch gcc_blsp1_qup3_spi_apps_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_blsp1_qup3_spi_apps_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_blsp1_qup3_spi_apps_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_blsp1_qup3_spi_apps_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -800,8 +800,8 @@ static struct clk_branch gcc_blsp1_qup4_i2c_apps_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_blsp1_qup4_i2c_apps_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_blsp1_qup4_i2c_apps_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_blsp1_qup4_i2c_apps_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -818,8 +818,8 @@ static struct clk_branch gcc_blsp1_qup4_spi_apps_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_blsp1_qup4_spi_apps_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_blsp1_qup4_spi_apps_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_blsp1_qup4_spi_apps_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -849,8 +849,8 @@ static struct clk_branch gcc_blsp1_uart1_apps_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_blsp1_uart1_apps_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_blsp1_uart1_apps_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_blsp1_uart1_apps_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -867,8 +867,8 @@ static struct clk_branch gcc_blsp1_uart2_apps_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_blsp1_uart2_apps_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_blsp1_uart2_apps_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_blsp1_uart2_apps_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -885,8 +885,8 @@ static struct clk_branch gcc_blsp1_uart3_apps_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_blsp1_uart3_apps_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_blsp1_uart3_apps_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_blsp1_uart3_apps_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -903,8 +903,8 @@ static struct clk_branch gcc_blsp1_uart4_apps_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_blsp1_uart4_apps_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_blsp1_uart4_apps_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_blsp1_uart4_apps_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -936,8 +936,8 @@ static struct clk_branch gcc_gp1_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_gp1_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_gp1_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_gp1_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -954,8 +954,8 @@ static struct clk_branch gcc_gp2_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_gp2_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_gp2_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_gp2_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -972,8 +972,8 @@ static struct clk_branch gcc_gp3_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_gp3_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_gp3_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_gp3_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1017,8 +1017,8 @@ static struct clk_branch gcc_pcie_aux_clk = {
|
||||
.enable_mask = BIT(3),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_pcie_aux_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_pcie_aux_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_pcie_aux_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1073,8 +1073,8 @@ static struct clk_branch gcc_pcie_pipe_clk = {
|
||||
.enable_mask = BIT(4),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_pcie_pipe_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_pcie_pipe_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_pcie_pipe_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1093,8 +1093,8 @@ static struct clk_branch gcc_pcie_rchng_phy_clk = {
|
||||
.enable_mask = BIT(7),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_pcie_rchng_phy_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_pcie_rchng_phy_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_pcie_rchng_phy_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1113,8 +1113,8 @@ static struct clk_branch gcc_pcie_sleep_clk = {
|
||||
.enable_mask = BIT(6),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_pcie_sleep_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_pcie_aux_phy_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_pcie_aux_phy_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1161,8 +1161,8 @@ static struct clk_branch gcc_pdm2_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_pdm2_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_pdm2_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_pdm2_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1233,8 +1233,8 @@ static struct clk_branch gcc_sdcc1_apps_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_sdcc1_apps_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_sdcc1_apps_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_sdcc1_apps_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1251,8 +1251,8 @@ static struct clk_branch gcc_usb30_master_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_usb30_master_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_usb30_master_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_usb30_master_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1269,9 +1269,8 @@ static struct clk_branch gcc_usb30_mock_utmi_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_usb30_mock_utmi_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw =
|
||||
&gcc_usb30_mock_utmi_postdiv_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_usb30_mock_utmi_postdiv_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1327,8 +1326,8 @@ static struct clk_branch gcc_usb3_phy_aux_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_usb3_phy_aux_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_usb3_phy_aux_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_usb3_phy_aux_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1369,8 +1368,8 @@ static struct clk_branch gcc_usb3_phy_pipe_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_usb3_phy_pipe_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_usb3_phy_pipe_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_usb3_phy_pipe_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
|
@ -1258,7 +1258,7 @@ static struct clk_rcg2 gcc_sdcc1_apps_clk_src = {
|
||||
.name = "gcc_sdcc1_apps_clk_src",
|
||||
.parent_data = gcc_parents_1,
|
||||
.num_parents = ARRAY_SIZE(gcc_parents_1),
|
||||
.ops = &clk_rcg2_ops,
|
||||
.ops = &clk_rcg2_floor_ops,
|
||||
},
|
||||
};
|
||||
|
||||
@ -1305,7 +1305,7 @@ static struct clk_rcg2 gcc_sdcc2_apps_clk_src = {
|
||||
.name = "gcc_sdcc2_apps_clk_src",
|
||||
.parent_data = gcc_parents_11,
|
||||
.num_parents = ARRAY_SIZE(gcc_parents_11),
|
||||
.ops = &clk_rcg2_ops,
|
||||
.ops = &clk_rcg2_floor_ops,
|
||||
.flags = CLK_OPS_PARENT_ENABLE,
|
||||
},
|
||||
};
|
||||
|
@ -1766,8 +1766,8 @@ static struct clk_branch gcc_camss_axi_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_camss_axi_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_camss_axi_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_camss_axi_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1784,8 +1784,8 @@ static struct clk_branch gcc_camss_cci_0_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_camss_cci_0_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_camss_cci_0_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_camss_cci_0_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1802,8 +1802,8 @@ static struct clk_branch gcc_camss_cci_1_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_camss_cci_1_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_camss_cci_1_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_camss_cci_1_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1820,8 +1820,8 @@ static struct clk_branch gcc_camss_cphy_0_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_camss_cphy_0_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_camss_tfe_cphy_rx_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_camss_tfe_cphy_rx_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1838,8 +1838,8 @@ static struct clk_branch gcc_camss_cphy_1_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_camss_cphy_1_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_camss_tfe_cphy_rx_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_camss_tfe_cphy_rx_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1856,8 +1856,8 @@ static struct clk_branch gcc_camss_cphy_2_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_camss_cphy_2_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_camss_tfe_cphy_rx_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_camss_tfe_cphy_rx_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1874,8 +1874,8 @@ static struct clk_branch gcc_camss_cphy_3_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_camss_cphy_3_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_camss_tfe_cphy_rx_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_camss_tfe_cphy_rx_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1892,8 +1892,8 @@ static struct clk_branch gcc_camss_csi0phytimer_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_camss_csi0phytimer_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_camss_csi0phytimer_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_camss_csi0phytimer_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1910,8 +1910,8 @@ static struct clk_branch gcc_camss_csi1phytimer_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_camss_csi1phytimer_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_camss_csi1phytimer_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_camss_csi1phytimer_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1928,8 +1928,8 @@ static struct clk_branch gcc_camss_csi2phytimer_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_camss_csi2phytimer_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_camss_csi2phytimer_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_camss_csi2phytimer_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1946,8 +1946,8 @@ static struct clk_branch gcc_camss_csi3phytimer_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_camss_csi3phytimer_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_camss_csi3phytimer_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_camss_csi3phytimer_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1964,8 +1964,8 @@ static struct clk_branch gcc_camss_mclk0_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_camss_mclk0_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_camss_mclk0_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_camss_mclk0_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1982,8 +1982,8 @@ static struct clk_branch gcc_camss_mclk1_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_camss_mclk1_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_camss_mclk1_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_camss_mclk1_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2000,8 +2000,8 @@ static struct clk_branch gcc_camss_mclk2_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_camss_mclk2_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_camss_mclk2_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_camss_mclk2_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2018,8 +2018,8 @@ static struct clk_branch gcc_camss_mclk3_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_camss_mclk3_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_camss_mclk3_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_camss_mclk3_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2036,8 +2036,8 @@ static struct clk_branch gcc_camss_mclk4_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_camss_mclk4_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_camss_mclk4_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_camss_mclk4_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2067,8 +2067,8 @@ static struct clk_branch gcc_camss_ope_ahb_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_camss_ope_ahb_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_camss_ope_ahb_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_camss_ope_ahb_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2085,8 +2085,8 @@ static struct clk_branch gcc_camss_ope_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_camss_ope_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_camss_ope_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_camss_ope_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2116,8 +2116,8 @@ static struct clk_branch gcc_camss_tfe_0_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_camss_tfe_0_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_camss_tfe_0_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_camss_tfe_0_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2134,8 +2134,8 @@ static struct clk_branch gcc_camss_tfe_0_cphy_rx_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_camss_tfe_0_cphy_rx_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_camss_tfe_cphy_rx_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_camss_tfe_cphy_rx_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2152,8 +2152,8 @@ static struct clk_branch gcc_camss_tfe_0_csid_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_camss_tfe_0_csid_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_camss_tfe_0_csid_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_camss_tfe_0_csid_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2170,8 +2170,8 @@ static struct clk_branch gcc_camss_tfe_1_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_camss_tfe_1_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_camss_tfe_1_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_camss_tfe_1_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2188,8 +2188,8 @@ static struct clk_branch gcc_camss_tfe_1_cphy_rx_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_camss_tfe_1_cphy_rx_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_camss_tfe_cphy_rx_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_camss_tfe_cphy_rx_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2206,8 +2206,8 @@ static struct clk_branch gcc_camss_tfe_1_csid_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_camss_tfe_1_csid_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_camss_tfe_1_csid_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_camss_tfe_1_csid_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2224,8 +2224,8 @@ static struct clk_branch gcc_camss_tfe_2_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_camss_tfe_2_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_camss_tfe_2_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_camss_tfe_2_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2242,8 +2242,8 @@ static struct clk_branch gcc_camss_tfe_2_cphy_rx_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_camss_tfe_2_cphy_rx_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_camss_tfe_cphy_rx_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_camss_tfe_cphy_rx_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2260,8 +2260,8 @@ static struct clk_branch gcc_camss_tfe_2_csid_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_camss_tfe_2_csid_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_camss_tfe_2_csid_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_camss_tfe_2_csid_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2278,8 +2278,8 @@ static struct clk_branch gcc_camss_top_ahb_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_camss_top_ahb_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_camss_top_ahb_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_camss_top_ahb_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2298,8 +2298,8 @@ static struct clk_branch gcc_cfg_noc_usb3_prim_axi_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_cfg_noc_usb3_prim_axi_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_usb30_prim_master_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_usb30_prim_master_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2330,8 +2330,9 @@ static struct clk_regmap_div gcc_disp_gpll0_clk_src = {
|
||||
.width = 2,
|
||||
.clkr.hw.init = &(struct clk_init_data) {
|
||||
.name = "gcc_disp_gpll0_clk_src",
|
||||
.parent_names =
|
||||
(const char *[]){ "gpll0" },
|
||||
.parent_hws = (const struct clk_hw*[]){
|
||||
&gpll0.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.ops = &clk_regmap_div_ops,
|
||||
},
|
||||
@ -2344,8 +2345,8 @@ static struct clk_branch gcc_disp_gpll0_div_clk_src = {
|
||||
.enable_mask = BIT(20),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_disp_gpll0_div_clk_src",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_disp_gpll0_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_disp_gpll0_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2407,8 +2408,8 @@ static struct clk_branch gcc_gp1_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_gp1_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_gp1_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_gp1_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2425,8 +2426,8 @@ static struct clk_branch gcc_gp2_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_gp2_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_gp2_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_gp2_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2443,8 +2444,8 @@ static struct clk_branch gcc_gp3_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_gp3_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_gp3_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_gp3_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2476,8 +2477,8 @@ static struct clk_branch gcc_gpu_gpll0_clk_src = {
|
||||
.enable_mask = BIT(15),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_gpu_gpll0_clk_src",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gpll0.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gpll0.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2493,8 +2494,8 @@ static struct clk_branch gcc_gpu_gpll0_div_clk_src = {
|
||||
.enable_mask = BIT(16),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_gpu_gpll0_div_clk_src",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gpll0_out_even.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gpll0_out_even.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2554,8 +2555,8 @@ static struct clk_branch gcc_pdm2_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_pdm2_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_pdm2_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_pdm2_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2716,8 +2717,8 @@ static struct clk_branch gcc_qupv3_wrap0_s0_clk = {
|
||||
.enable_mask = BIT(10),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap0_s0_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap0_s0_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap0_s0_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2734,8 +2735,8 @@ static struct clk_branch gcc_qupv3_wrap0_s1_clk = {
|
||||
.enable_mask = BIT(11),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap0_s1_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap0_s1_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap0_s1_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2752,8 +2753,8 @@ static struct clk_branch gcc_qupv3_wrap0_s2_clk = {
|
||||
.enable_mask = BIT(12),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap0_s2_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap0_s2_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap0_s2_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2770,8 +2771,8 @@ static struct clk_branch gcc_qupv3_wrap0_s3_clk = {
|
||||
.enable_mask = BIT(13),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap0_s3_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap0_s3_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap0_s3_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2788,8 +2789,8 @@ static struct clk_branch gcc_qupv3_wrap0_s4_clk = {
|
||||
.enable_mask = BIT(14),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap0_s4_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap0_s4_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap0_s4_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2806,8 +2807,8 @@ static struct clk_branch gcc_qupv3_wrap0_s5_clk = {
|
||||
.enable_mask = BIT(15),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap0_s5_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap0_s5_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap0_s5_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2850,8 +2851,8 @@ static struct clk_branch gcc_qupv3_wrap1_s0_clk = {
|
||||
.enable_mask = BIT(21),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap1_s0_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap1_s0_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap1_s0_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2868,8 +2869,8 @@ static struct clk_branch gcc_qupv3_wrap1_s1_clk = {
|
||||
.enable_mask = BIT(22),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap1_s1_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap1_s1_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap1_s1_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2886,8 +2887,8 @@ static struct clk_branch gcc_qupv3_wrap1_s2_clk = {
|
||||
.enable_mask = BIT(23),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap1_s2_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap1_s2_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap1_s2_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2904,8 +2905,8 @@ static struct clk_branch gcc_qupv3_wrap1_s3_clk = {
|
||||
.enable_mask = BIT(24),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap1_s3_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap1_s3_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap1_s3_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2922,8 +2923,8 @@ static struct clk_branch gcc_qupv3_wrap1_s4_clk = {
|
||||
.enable_mask = BIT(25),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap1_s4_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap1_s4_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap1_s4_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2940,8 +2941,8 @@ static struct clk_branch gcc_qupv3_wrap1_s5_clk = {
|
||||
.enable_mask = BIT(26),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap1_s5_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap1_s5_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap1_s5_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -3031,8 +3032,8 @@ static struct clk_branch gcc_sdcc1_apps_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_sdcc1_apps_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_sdcc1_apps_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_sdcc1_apps_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -3051,8 +3052,8 @@ static struct clk_branch gcc_sdcc1_ice_core_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_sdcc1_ice_core_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_sdcc1_ice_core_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_sdcc1_ice_core_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -3082,8 +3083,8 @@ static struct clk_branch gcc_sdcc2_apps_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_sdcc2_apps_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_sdcc2_apps_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_sdcc2_apps_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -3102,8 +3103,8 @@ static struct clk_branch gcc_sys_noc_cpuss_ahb_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_sys_noc_cpuss_ahb_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_cpuss_ahb_postdiv_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_cpuss_ahb_postdiv_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_IS_CRITICAL | CLK_SET_RATE_PARENT,
|
||||
@ -3120,8 +3121,8 @@ static struct clk_branch gcc_sys_noc_ufs_phy_axi_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_sys_noc_ufs_phy_axi_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_ufs_phy_axi_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_ufs_phy_axi_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -3140,8 +3141,8 @@ static struct clk_branch gcc_sys_noc_usb3_prim_axi_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_sys_noc_usb3_prim_axi_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_usb30_prim_master_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_usb30_prim_master_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -3175,8 +3176,8 @@ static struct clk_branch gcc_ufs_phy_axi_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_ufs_phy_axi_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_ufs_phy_axi_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_ufs_phy_axi_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -3195,8 +3196,8 @@ static struct clk_branch gcc_ufs_phy_ice_core_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_ufs_phy_ice_core_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_ufs_phy_ice_core_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_ufs_phy_ice_core_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -3215,8 +3216,8 @@ static struct clk_branch gcc_ufs_phy_phy_aux_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_ufs_phy_phy_aux_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_ufs_phy_phy_aux_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_ufs_phy_phy_aux_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -3261,8 +3262,8 @@ static struct clk_branch gcc_ufs_phy_unipro_core_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_ufs_phy_unipro_core_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_ufs_phy_unipro_core_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_ufs_phy_unipro_core_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -3279,8 +3280,8 @@ static struct clk_branch gcc_usb30_prim_master_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_usb30_prim_master_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_usb30_prim_master_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_usb30_prim_master_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -3297,8 +3298,8 @@ static struct clk_branch gcc_usb30_prim_mock_utmi_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_usb30_prim_mock_utmi_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -3367,8 +3368,8 @@ static struct clk_branch gcc_usb3_prim_phy_com_aux_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_usb3_prim_phy_com_aux_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -3487,8 +3488,8 @@ static struct clk_branch gcc_video_vcodec0_sys_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_video_vcodec0_sys_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_video_venus_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_video_venus_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -3505,8 +3506,8 @@ static struct clk_branch gcc_video_venus_ctl_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_video_venus_ctl_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_video_venus_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_video_venus_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
|
@ -26,7 +26,6 @@
|
||||
enum {
|
||||
P_BI_TCXO,
|
||||
P_AUD_REF_CLK,
|
||||
P_CORE_BI_PLL_TEST_SE,
|
||||
P_GPLL0_OUT_EVEN,
|
||||
P_GPLL0_OUT_MAIN,
|
||||
P_GPLL7_OUT_MAIN,
|
||||
@ -117,14 +116,12 @@ static const struct parent_map gcc_parent_map_0[] = {
|
||||
{ P_BI_TCXO, 0 },
|
||||
{ P_GPLL0_OUT_MAIN, 1 },
|
||||
{ P_GPLL0_OUT_EVEN, 6 },
|
||||
{ P_CORE_BI_PLL_TEST_SE, 7 },
|
||||
};
|
||||
|
||||
static const struct clk_parent_data gcc_parents_0[] = {
|
||||
{ .fw_name = "bi_tcxo", .name = "bi_tcxo" },
|
||||
{ .hw = &gpll0.clkr.hw },
|
||||
{ .hw = &gpll0_out_even.clkr.hw },
|
||||
{ .fw_name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct parent_map gcc_parent_map_1[] = {
|
||||
@ -132,7 +129,6 @@ static const struct parent_map gcc_parent_map_1[] = {
|
||||
{ P_GPLL0_OUT_MAIN, 1 },
|
||||
{ P_SLEEP_CLK, 5 },
|
||||
{ P_GPLL0_OUT_EVEN, 6 },
|
||||
{ P_CORE_BI_PLL_TEST_SE, 7 },
|
||||
};
|
||||
|
||||
static const struct clk_parent_data gcc_parents_1[] = {
|
||||
@ -140,41 +136,34 @@ static const struct clk_parent_data gcc_parents_1[] = {
|
||||
{ .hw = &gpll0.clkr.hw },
|
||||
{ .fw_name = "sleep_clk", .name = "sleep_clk" },
|
||||
{ .hw = &gpll0_out_even.clkr.hw },
|
||||
{ .fw_name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct parent_map gcc_parent_map_2[] = {
|
||||
{ P_BI_TCXO, 0 },
|
||||
{ P_SLEEP_CLK, 5 },
|
||||
{ P_CORE_BI_PLL_TEST_SE, 7 },
|
||||
};
|
||||
|
||||
static const struct clk_parent_data gcc_parents_2[] = {
|
||||
{ .fw_name = "bi_tcxo", .name = "bi_tcxo" },
|
||||
{ .fw_name = "sleep_clk", .name = "sleep_clk" },
|
||||
{ .fw_name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct parent_map gcc_parent_map_3[] = {
|
||||
{ P_BI_TCXO, 0 },
|
||||
{ P_GPLL0_OUT_MAIN, 1 },
|
||||
{ P_CORE_BI_PLL_TEST_SE, 7 },
|
||||
};
|
||||
|
||||
static const struct clk_parent_data gcc_parents_3[] = {
|
||||
{ .fw_name = "bi_tcxo", .name = "bi_tcxo" },
|
||||
{ .hw = &gpll0.clkr.hw },
|
||||
{ .fw_name = "core_bi_pll_test_se"},
|
||||
};
|
||||
|
||||
static const struct parent_map gcc_parent_map_4[] = {
|
||||
{ P_BI_TCXO, 0 },
|
||||
{ P_CORE_BI_PLL_TEST_SE, 7 },
|
||||
};
|
||||
|
||||
static const struct clk_parent_data gcc_parents_4[] = {
|
||||
{ .fw_name = "bi_tcxo", .name = "bi_tcxo" },
|
||||
{ .fw_name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct parent_map gcc_parent_map_5[] = {
|
||||
@ -182,7 +171,6 @@ static const struct parent_map gcc_parent_map_5[] = {
|
||||
{ P_GPLL0_OUT_MAIN, 1 },
|
||||
{ P_GPLL7_OUT_MAIN, 3 },
|
||||
{ P_GPLL0_OUT_EVEN, 6 },
|
||||
{ P_CORE_BI_PLL_TEST_SE, 7 },
|
||||
};
|
||||
|
||||
static const struct clk_parent_data gcc_parents_5[] = {
|
||||
@ -190,7 +178,6 @@ static const struct clk_parent_data gcc_parents_5[] = {
|
||||
{ .hw = &gpll0.clkr.hw },
|
||||
{ .hw = &gpll7.clkr.hw },
|
||||
{ .hw = &gpll0_out_even.clkr.hw },
|
||||
{ .fw_name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct parent_map gcc_parent_map_6[] = {
|
||||
@ -198,7 +185,6 @@ static const struct parent_map gcc_parent_map_6[] = {
|
||||
{ P_GPLL0_OUT_MAIN, 1 },
|
||||
{ P_GPLL9_OUT_MAIN, 2 },
|
||||
{ P_GPLL0_OUT_EVEN, 6 },
|
||||
{ P_CORE_BI_PLL_TEST_SE, 7 },
|
||||
};
|
||||
|
||||
static const struct clk_parent_data gcc_parents_6[] = {
|
||||
@ -206,7 +192,6 @@ static const struct clk_parent_data gcc_parents_6[] = {
|
||||
{ .hw = &gpll0.clkr.hw },
|
||||
{ .hw = &gpll9.clkr.hw },
|
||||
{ .hw = &gpll0_out_even.clkr.hw },
|
||||
{ .fw_name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct parent_map gcc_parent_map_7[] = {
|
||||
@ -214,7 +199,6 @@ static const struct parent_map gcc_parent_map_7[] = {
|
||||
{ P_GPLL0_OUT_MAIN, 1 },
|
||||
{ P_AUD_REF_CLK, 2 },
|
||||
{ P_GPLL0_OUT_EVEN, 6 },
|
||||
{ P_CORE_BI_PLL_TEST_SE, 7 },
|
||||
};
|
||||
|
||||
static const struct clk_parent_data gcc_parents_7[] = {
|
||||
@ -222,7 +206,6 @@ static const struct clk_parent_data gcc_parents_7[] = {
|
||||
{ .hw = &gpll0.clkr.hw },
|
||||
{ .fw_name = "aud_ref_clk", .name = "aud_ref_clk" },
|
||||
{ .hw = &gpll0_out_even.clkr.hw },
|
||||
{ .fw_name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct freq_tbl ftbl_gcc_cpuss_ahb_clk_src[] = {
|
||||
|
@ -2998,9 +2998,8 @@ static struct clk_branch gcc_usb30_prim_mock_utmi_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_usb30_prim_mock_utmi_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw =
|
||||
&gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -3048,9 +3047,8 @@ static struct clk_branch gcc_usb30_sec_mock_utmi_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_usb30_sec_mock_utmi_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw =
|
||||
&gcc_usb30_sec_mock_utmi_postdiv_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_usb30_sec_mock_utmi_postdiv_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
|
@ -22,7 +22,6 @@
|
||||
|
||||
enum {
|
||||
P_BI_TCXO,
|
||||
P_CORE_BI_PLL_TEST_SE,
|
||||
P_GCC_GPLL0_OUT_EVEN,
|
||||
P_GCC_GPLL0_OUT_MAIN,
|
||||
P_GCC_GPLL4_OUT_MAIN,
|
||||
@ -119,14 +118,12 @@ static const struct parent_map gcc_parent_map_0[] = {
|
||||
{ P_BI_TCXO, 0 },
|
||||
{ P_GCC_GPLL0_OUT_MAIN, 1 },
|
||||
{ P_GCC_GPLL0_OUT_EVEN, 6 },
|
||||
{ P_CORE_BI_PLL_TEST_SE, 7 },
|
||||
};
|
||||
|
||||
static const struct clk_parent_data gcc_parent_data_0[] = {
|
||||
{ .fw_name = "bi_tcxo" },
|
||||
{ .hw = &gcc_gpll0.clkr.hw },
|
||||
{ .hw = &gcc_gpll0_out_even.clkr.hw },
|
||||
{ .fw_name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct parent_map gcc_parent_map_1[] = {
|
||||
@ -134,7 +131,6 @@ static const struct parent_map gcc_parent_map_1[] = {
|
||||
{ P_GCC_GPLL0_OUT_MAIN, 1 },
|
||||
{ P_SLEEP_CLK, 5 },
|
||||
{ P_GCC_GPLL0_OUT_EVEN, 6 },
|
||||
{ P_CORE_BI_PLL_TEST_SE, 7 },
|
||||
};
|
||||
|
||||
static const struct clk_parent_data gcc_parent_data_1[] = {
|
||||
@ -142,29 +138,24 @@ static const struct clk_parent_data gcc_parent_data_1[] = {
|
||||
{ .hw = &gcc_gpll0.clkr.hw },
|
||||
{ .fw_name = "sleep_clk" },
|
||||
{ .hw = &gcc_gpll0_out_even.clkr.hw },
|
||||
{ .fw_name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct parent_map gcc_parent_map_2[] = {
|
||||
{ P_BI_TCXO, 0 },
|
||||
{ P_SLEEP_CLK, 5 },
|
||||
{ P_CORE_BI_PLL_TEST_SE, 7 },
|
||||
};
|
||||
|
||||
static const struct clk_parent_data gcc_parent_data_2[] = {
|
||||
{ .fw_name = "bi_tcxo" },
|
||||
{ .fw_name = "sleep_clk" },
|
||||
{ .fw_name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct parent_map gcc_parent_map_3[] = {
|
||||
{ P_BI_TCXO, 0 },
|
||||
{ P_CORE_BI_PLL_TEST_SE, 7 },
|
||||
};
|
||||
|
||||
static const struct clk_parent_data gcc_parent_data_3[] = {
|
||||
{ .fw_name = "bi_tcxo" },
|
||||
{ .fw_name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct parent_map gcc_parent_map_4[] = {
|
||||
@ -193,7 +184,6 @@ static const struct parent_map gcc_parent_map_6[] = {
|
||||
{ P_GCC_GPLL9_OUT_MAIN, 2 },
|
||||
{ P_GCC_GPLL4_OUT_MAIN, 5 },
|
||||
{ P_GCC_GPLL0_OUT_EVEN, 6 },
|
||||
{ P_CORE_BI_PLL_TEST_SE, 7 },
|
||||
};
|
||||
|
||||
static const struct clk_parent_data gcc_parent_data_6[] = {
|
||||
@ -202,7 +192,6 @@ static const struct clk_parent_data gcc_parent_data_6[] = {
|
||||
{ .hw = &gcc_gpll9.clkr.hw },
|
||||
{ .hw = &gcc_gpll4.clkr.hw },
|
||||
{ .hw = &gcc_gpll0_out_even.clkr.hw },
|
||||
{ .fw_name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct parent_map gcc_parent_map_7[] = {
|
||||
@ -267,25 +256,21 @@ static const struct clk_parent_data gcc_parent_data_12[] = {
|
||||
|
||||
static const struct parent_map gcc_parent_map_13[] = {
|
||||
{ P_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK, 0 },
|
||||
{ P_CORE_BI_PLL_TEST_SE, 1 },
|
||||
{ P_BI_TCXO, 2 },
|
||||
};
|
||||
|
||||
static const struct clk_parent_data gcc_parent_data_13[] = {
|
||||
{ .fw_name = "usb3_phy_wrapper_gcc_usb30_pipe_clk" },
|
||||
{ .fw_name = "core_bi_pll_test_se" },
|
||||
{ .fw_name = "bi_tcxo" },
|
||||
};
|
||||
|
||||
static const struct parent_map gcc_parent_map_14[] = {
|
||||
{ P_USB3_UNI_PHY_SEC_GCC_USB30_PIPE_CLK, 0 },
|
||||
{ P_CORE_BI_PLL_TEST_SE, 1 },
|
||||
{ P_BI_TCXO, 2 },
|
||||
};
|
||||
|
||||
static const struct clk_parent_data gcc_parent_data_14[] = {
|
||||
{ .fw_name = "usb3_uni_phy_sec_gcc_usb30_pipe_clk" },
|
||||
{ .fw_name = "core_bi_pll_test_se" },
|
||||
{ .fw_name = "bi_tcxo" },
|
||||
};
|
||||
|
||||
|
@ -66,8 +66,8 @@ static struct clk_alpha_pll_postdiv gcc_gpll0_out_even = {
|
||||
.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
|
||||
.clkr.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_gpll0_out_even",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_gpll0.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_gpll0.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.ops = &clk_alpha_pll_postdiv_lucid_evo_ops,
|
||||
@ -1070,8 +1070,8 @@ static struct clk_regmap_div gcc_usb30_prim_mock_utmi_postdiv_clk_src = {
|
||||
.width = 4,
|
||||
.clkr.hw.init = &(struct clk_init_data) {
|
||||
.name = "gcc_usb30_prim_mock_utmi_postdiv_clk_src",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_usb30_prim_mock_utmi_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_usb30_prim_mock_utmi_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1119,8 +1119,8 @@ static struct clk_branch gcc_aggre_ufs_phy_axi_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_aggre_ufs_phy_axi_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_ufs_phy_axi_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_ufs_phy_axi_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1139,8 +1139,8 @@ static struct clk_branch gcc_aggre_ufs_phy_axi_hw_ctl_clk = {
|
||||
.enable_mask = BIT(1),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_aggre_ufs_phy_axi_hw_ctl_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_ufs_phy_axi_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_ufs_phy_axi_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1159,8 +1159,8 @@ static struct clk_branch gcc_aggre_usb3_prim_axi_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_aggre_usb3_prim_axi_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_usb30_prim_master_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_usb30_prim_master_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1239,8 +1239,8 @@ static struct clk_branch gcc_cfg_noc_usb3_prim_axi_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_cfg_noc_usb3_prim_axi_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_usb30_prim_master_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_usb30_prim_master_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1330,8 +1330,8 @@ static struct clk_branch gcc_gp1_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_gp1_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_gp1_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_gp1_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1348,8 +1348,8 @@ static struct clk_branch gcc_gp2_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_gp2_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_gp2_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_gp2_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1366,8 +1366,8 @@ static struct clk_branch gcc_gp3_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_gp3_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_gp3_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_gp3_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1383,8 +1383,8 @@ static struct clk_branch gcc_gpu_gpll0_clk_src = {
|
||||
.enable_mask = BIT(15),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_gpu_gpll0_clk_src",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_gpll0.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_gpll0.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1400,8 +1400,8 @@ static struct clk_branch gcc_gpu_gpll0_div_clk_src = {
|
||||
.enable_mask = BIT(16),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_gpu_gpll0_div_clk_src",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_gpll0_out_even.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_gpll0_out_even.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1446,8 +1446,8 @@ static struct clk_branch gcc_pcie_0_aux_clk = {
|
||||
.enable_mask = BIT(3),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_pcie_0_aux_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_pcie_0_aux_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_pcie_0_aux_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1505,8 +1505,8 @@ static struct clk_branch gcc_pcie_0_phy_rchng_clk = {
|
||||
.enable_mask = BIT(22),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_pcie_0_phy_rchng_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_pcie_0_phy_rchng_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_pcie_0_phy_rchng_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1523,8 +1523,8 @@ static struct clk_branch gcc_pcie_0_pipe_clk = {
|
||||
.enable_mask = BIT(4),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_pcie_0_pipe_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_pcie_0_pipe_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_pcie_0_pipe_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1569,8 +1569,8 @@ static struct clk_branch gcc_pcie_1_aux_clk = {
|
||||
.enable_mask = BIT(29),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_pcie_1_aux_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_pcie_1_aux_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_pcie_1_aux_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1628,8 +1628,8 @@ static struct clk_branch gcc_pcie_1_phy_aux_clk = {
|
||||
.enable_mask = BIT(24),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_pcie_1_phy_aux_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_pcie_1_phy_aux_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_pcie_1_phy_aux_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1646,8 +1646,8 @@ static struct clk_branch gcc_pcie_1_phy_rchng_clk = {
|
||||
.enable_mask = BIT(23),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_pcie_1_phy_rchng_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_pcie_1_phy_rchng_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_pcie_1_phy_rchng_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1664,8 +1664,8 @@ static struct clk_branch gcc_pcie_1_pipe_clk = {
|
||||
.enable_mask = BIT(30),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_pcie_1_pipe_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_pcie_1_pipe_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_pcie_1_pipe_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1710,8 +1710,8 @@ static struct clk_branch gcc_pdm2_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_pdm2_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_pdm2_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_pdm2_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1917,8 +1917,8 @@ static struct clk_branch gcc_qupv3_wrap0_s0_clk = {
|
||||
.enable_mask = BIT(10),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap0_s0_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap0_s0_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap0_s0_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1935,8 +1935,8 @@ static struct clk_branch gcc_qupv3_wrap0_s1_clk = {
|
||||
.enable_mask = BIT(11),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap0_s1_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap0_s1_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap0_s1_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1953,8 +1953,8 @@ static struct clk_branch gcc_qupv3_wrap0_s2_clk = {
|
||||
.enable_mask = BIT(12),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap0_s2_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap0_s2_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap0_s2_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1971,8 +1971,8 @@ static struct clk_branch gcc_qupv3_wrap0_s3_clk = {
|
||||
.enable_mask = BIT(13),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap0_s3_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap0_s3_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap0_s3_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1989,8 +1989,8 @@ static struct clk_branch gcc_qupv3_wrap0_s4_clk = {
|
||||
.enable_mask = BIT(14),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap0_s4_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap0_s4_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap0_s4_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2007,8 +2007,8 @@ static struct clk_branch gcc_qupv3_wrap0_s5_clk = {
|
||||
.enable_mask = BIT(15),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap0_s5_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap0_s5_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap0_s5_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2025,8 +2025,8 @@ static struct clk_branch gcc_qupv3_wrap0_s6_clk = {
|
||||
.enable_mask = BIT(16),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap0_s6_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap0_s6_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap0_s6_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2043,8 +2043,8 @@ static struct clk_branch gcc_qupv3_wrap0_s7_clk = {
|
||||
.enable_mask = BIT(17),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap0_s7_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap0_s7_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap0_s7_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2087,8 +2087,8 @@ static struct clk_branch gcc_qupv3_wrap1_s0_clk = {
|
||||
.enable_mask = BIT(22),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap1_s0_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap1_s0_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap1_s0_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2105,8 +2105,8 @@ static struct clk_branch gcc_qupv3_wrap1_s1_clk = {
|
||||
.enable_mask = BIT(23),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap1_s1_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap1_s1_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap1_s1_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2123,8 +2123,8 @@ static struct clk_branch gcc_qupv3_wrap1_s2_clk = {
|
||||
.enable_mask = BIT(24),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap1_s2_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap1_s2_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap1_s2_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2141,8 +2141,8 @@ static struct clk_branch gcc_qupv3_wrap1_s3_clk = {
|
||||
.enable_mask = BIT(25),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap1_s3_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap1_s3_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap1_s3_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2159,8 +2159,8 @@ static struct clk_branch gcc_qupv3_wrap1_s4_clk = {
|
||||
.enable_mask = BIT(26),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap1_s4_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap1_s4_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap1_s4_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2177,8 +2177,8 @@ static struct clk_branch gcc_qupv3_wrap1_s5_clk = {
|
||||
.enable_mask = BIT(27),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap1_s5_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap1_s5_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap1_s5_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2195,8 +2195,8 @@ static struct clk_branch gcc_qupv3_wrap1_s6_clk = {
|
||||
.enable_mask = BIT(28),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap1_s6_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap1_s6_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap1_s6_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2239,8 +2239,8 @@ static struct clk_branch gcc_qupv3_wrap2_s0_clk = {
|
||||
.enable_mask = BIT(4),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap2_s0_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap2_s0_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap2_s0_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2257,8 +2257,8 @@ static struct clk_branch gcc_qupv3_wrap2_s1_clk = {
|
||||
.enable_mask = BIT(5),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap2_s1_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap2_s1_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap2_s1_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2275,8 +2275,8 @@ static struct clk_branch gcc_qupv3_wrap2_s2_clk = {
|
||||
.enable_mask = BIT(6),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap2_s2_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap2_s2_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap2_s2_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2293,8 +2293,8 @@ static struct clk_branch gcc_qupv3_wrap2_s3_clk = {
|
||||
.enable_mask = BIT(7),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap2_s3_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap2_s3_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap2_s3_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2311,8 +2311,8 @@ static struct clk_branch gcc_qupv3_wrap2_s4_clk = {
|
||||
.enable_mask = BIT(8),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap2_s4_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap2_s4_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap2_s4_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2329,8 +2329,8 @@ static struct clk_branch gcc_qupv3_wrap2_s5_clk = {
|
||||
.enable_mask = BIT(9),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap2_s5_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap2_s5_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap2_s5_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2347,8 +2347,8 @@ static struct clk_branch gcc_qupv3_wrap2_s6_clk = {
|
||||
.enable_mask = BIT(10),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap2_s6_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap2_s6_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap2_s6_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2468,8 +2468,8 @@ static struct clk_branch gcc_sdcc2_apps_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_sdcc2_apps_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_sdcc2_apps_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_sdcc2_apps_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2514,8 +2514,8 @@ static struct clk_branch gcc_sdcc4_apps_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_sdcc4_apps_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_sdcc4_apps_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_sdcc4_apps_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2577,8 +2577,8 @@ static struct clk_branch gcc_ufs_phy_axi_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_ufs_phy_axi_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_ufs_phy_axi_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_ufs_phy_axi_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2597,8 +2597,8 @@ static struct clk_branch gcc_ufs_phy_axi_hw_ctl_clk = {
|
||||
.enable_mask = BIT(1),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_ufs_phy_axi_hw_ctl_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_ufs_phy_axi_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_ufs_phy_axi_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2617,8 +2617,8 @@ static struct clk_branch gcc_ufs_phy_ice_core_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_ufs_phy_ice_core_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_ufs_phy_ice_core_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_ufs_phy_ice_core_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2637,8 +2637,8 @@ static struct clk_branch gcc_ufs_phy_ice_core_hw_ctl_clk = {
|
||||
.enable_mask = BIT(1),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_ufs_phy_ice_core_hw_ctl_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_ufs_phy_ice_core_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_ufs_phy_ice_core_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2657,8 +2657,8 @@ static struct clk_branch gcc_ufs_phy_phy_aux_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_ufs_phy_phy_aux_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_ufs_phy_phy_aux_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_ufs_phy_phy_aux_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2677,8 +2677,8 @@ static struct clk_branch gcc_ufs_phy_phy_aux_hw_ctl_clk = {
|
||||
.enable_mask = BIT(1),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_ufs_phy_phy_aux_hw_ctl_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_ufs_phy_phy_aux_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_ufs_phy_phy_aux_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2695,8 +2695,8 @@ static struct clk_branch gcc_ufs_phy_rx_symbol_0_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_ufs_phy_rx_symbol_0_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_ufs_phy_rx_symbol_0_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_ufs_phy_rx_symbol_0_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2713,8 +2713,8 @@ static struct clk_branch gcc_ufs_phy_rx_symbol_1_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_ufs_phy_rx_symbol_1_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_ufs_phy_rx_symbol_1_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_ufs_phy_rx_symbol_1_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2731,8 +2731,8 @@ static struct clk_branch gcc_ufs_phy_tx_symbol_0_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_ufs_phy_tx_symbol_0_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_ufs_phy_tx_symbol_0_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_ufs_phy_tx_symbol_0_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2751,8 +2751,8 @@ static struct clk_branch gcc_ufs_phy_unipro_core_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_ufs_phy_unipro_core_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_ufs_phy_unipro_core_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_ufs_phy_unipro_core_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2771,8 +2771,8 @@ static struct clk_branch gcc_ufs_phy_unipro_core_hw_ctl_clk = {
|
||||
.enable_mask = BIT(1),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_ufs_phy_unipro_core_hw_ctl_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_ufs_phy_unipro_core_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_ufs_phy_unipro_core_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2789,8 +2789,8 @@ static struct clk_branch gcc_usb30_prim_master_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_usb30_prim_master_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_usb30_prim_master_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_usb30_prim_master_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2807,8 +2807,8 @@ static struct clk_branch gcc_usb30_prim_mock_utmi_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_usb30_prim_mock_utmi_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2851,8 +2851,8 @@ static struct clk_branch gcc_usb3_prim_phy_aux_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_usb3_prim_phy_aux_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2869,8 +2869,8 @@ static struct clk_branch gcc_usb3_prim_phy_com_aux_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_usb3_prim_phy_com_aux_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2889,8 +2889,8 @@ static struct clk_branch gcc_usb3_prim_phy_pipe_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_usb3_prim_phy_pipe_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_usb3_prim_phy_pipe_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_usb3_prim_phy_pipe_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
|
@ -82,8 +82,8 @@ static struct clk_alpha_pll_postdiv gcc_gpll0_out_even = {
|
||||
.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_OLE],
|
||||
.clkr.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_gpll0_out_even",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_gpll0.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_gpll0.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.ops = &clk_alpha_pll_postdiv_lucid_ole_ops,
|
||||
@ -1198,8 +1198,8 @@ static struct clk_regmap_div gcc_usb30_prim_mock_utmi_postdiv_clk_src = {
|
||||
.width = 4,
|
||||
.clkr.hw.init = &(struct clk_init_data) {
|
||||
.name = "gcc_usb30_prim_mock_utmi_postdiv_clk_src",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_usb30_prim_mock_utmi_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_usb30_prim_mock_utmi_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1232,8 +1232,8 @@ static struct clk_branch gcc_aggre_ufs_phy_axi_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_aggre_ufs_phy_axi_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_ufs_phy_axi_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_ufs_phy_axi_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1252,8 +1252,8 @@ static struct clk_branch gcc_aggre_ufs_phy_axi_hw_ctl_clk = {
|
||||
.enable_mask = BIT(1),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_aggre_ufs_phy_axi_hw_ctl_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_ufs_phy_axi_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_ufs_phy_axi_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1272,8 +1272,8 @@ static struct clk_branch gcc_aggre_usb3_prim_axi_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_aggre_usb3_prim_axi_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_usb30_prim_master_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_usb30_prim_master_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1352,8 +1352,8 @@ static struct clk_branch gcc_cfg_noc_usb3_prim_axi_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_cfg_noc_usb3_prim_axi_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_usb30_prim_master_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_usb30_prim_master_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1430,8 +1430,8 @@ static struct clk_branch gcc_gp1_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_gp1_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_gp1_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_gp1_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1448,8 +1448,8 @@ static struct clk_branch gcc_gp2_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_gp2_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_gp2_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_gp2_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1466,8 +1466,8 @@ static struct clk_branch gcc_gp3_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_gp3_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_gp3_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_gp3_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1483,8 +1483,8 @@ static struct clk_branch gcc_gpu_gpll0_clk_src = {
|
||||
.enable_mask = BIT(15),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_gpu_gpll0_clk_src",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_gpll0.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_gpll0.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1500,8 +1500,8 @@ static struct clk_branch gcc_gpu_gpll0_div_clk_src = {
|
||||
.enable_mask = BIT(16),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_gpu_gpll0_div_clk_src",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_gpll0_out_even.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_gpll0_out_even.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1546,8 +1546,8 @@ static struct clk_branch gcc_pcie_0_aux_clk = {
|
||||
.enable_mask = BIT(3),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_pcie_0_aux_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_pcie_0_aux_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_pcie_0_aux_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1594,8 +1594,8 @@ static struct clk_branch gcc_pcie_0_phy_rchng_clk = {
|
||||
.enable_mask = BIT(22),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_pcie_0_phy_rchng_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_pcie_0_phy_rchng_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_pcie_0_phy_rchng_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1612,8 +1612,8 @@ static struct clk_branch gcc_pcie_0_pipe_clk = {
|
||||
.enable_mask = BIT(4),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_pcie_0_pipe_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_pcie_0_pipe_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_pcie_0_pipe_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1658,8 +1658,8 @@ static struct clk_branch gcc_pcie_1_aux_clk = {
|
||||
.enable_mask = BIT(29),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_pcie_1_aux_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_pcie_1_aux_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_pcie_1_aux_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1706,8 +1706,8 @@ static struct clk_branch gcc_pcie_1_phy_aux_clk = {
|
||||
.enable_mask = BIT(24),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_pcie_1_phy_aux_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_pcie_1_phy_aux_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_pcie_1_phy_aux_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1724,8 +1724,8 @@ static struct clk_branch gcc_pcie_1_phy_rchng_clk = {
|
||||
.enable_mask = BIT(23),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_pcie_1_phy_rchng_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_pcie_1_phy_rchng_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_pcie_1_phy_rchng_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1742,8 +1742,8 @@ static struct clk_branch gcc_pcie_1_pipe_clk = {
|
||||
.enable_mask = BIT(30),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_pcie_1_pipe_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_pcie_1_pipe_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_pcie_1_pipe_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1788,8 +1788,8 @@ static struct clk_branch gcc_pdm2_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_pdm2_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_pdm2_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_pdm2_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -1982,8 +1982,8 @@ static struct clk_branch gcc_qupv3_i2c_s0_clk = {
|
||||
.enable_mask = BIT(10),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_i2c_s0_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_i2c_s0_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_i2c_s0_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2000,8 +2000,8 @@ static struct clk_branch gcc_qupv3_i2c_s1_clk = {
|
||||
.enable_mask = BIT(11),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_i2c_s1_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_i2c_s1_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_i2c_s1_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2018,8 +2018,8 @@ static struct clk_branch gcc_qupv3_i2c_s2_clk = {
|
||||
.enable_mask = BIT(12),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_i2c_s2_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_i2c_s2_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_i2c_s2_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2036,8 +2036,8 @@ static struct clk_branch gcc_qupv3_i2c_s3_clk = {
|
||||
.enable_mask = BIT(13),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_i2c_s3_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_i2c_s3_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_i2c_s3_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2054,8 +2054,8 @@ static struct clk_branch gcc_qupv3_i2c_s4_clk = {
|
||||
.enable_mask = BIT(14),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_i2c_s4_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_i2c_s4_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_i2c_s4_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2072,8 +2072,8 @@ static struct clk_branch gcc_qupv3_i2c_s5_clk = {
|
||||
.enable_mask = BIT(15),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_i2c_s5_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_i2c_s5_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_i2c_s5_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2090,8 +2090,8 @@ static struct clk_branch gcc_qupv3_i2c_s6_clk = {
|
||||
.enable_mask = BIT(16),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_i2c_s6_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_i2c_s6_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_i2c_s6_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2108,8 +2108,8 @@ static struct clk_branch gcc_qupv3_i2c_s7_clk = {
|
||||
.enable_mask = BIT(17),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_i2c_s7_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_i2c_s7_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_i2c_s7_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2126,8 +2126,8 @@ static struct clk_branch gcc_qupv3_i2c_s8_clk = {
|
||||
.enable_mask = BIT(14),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_i2c_s8_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_i2c_s8_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_i2c_s8_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2144,8 +2144,8 @@ static struct clk_branch gcc_qupv3_i2c_s9_clk = {
|
||||
.enable_mask = BIT(15),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_i2c_s9_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_i2c_s9_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_i2c_s9_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2203,8 +2203,8 @@ static struct clk_branch gcc_qupv3_wrap1_s0_clk = {
|
||||
.enable_mask = BIT(22),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap1_s0_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap1_s0_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap1_s0_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2221,8 +2221,8 @@ static struct clk_branch gcc_qupv3_wrap1_s1_clk = {
|
||||
.enable_mask = BIT(23),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap1_s1_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap1_s1_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap1_s1_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2239,8 +2239,8 @@ static struct clk_branch gcc_qupv3_wrap1_s2_clk = {
|
||||
.enable_mask = BIT(24),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap1_s2_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap1_s2_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap1_s2_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2257,8 +2257,8 @@ static struct clk_branch gcc_qupv3_wrap1_s3_clk = {
|
||||
.enable_mask = BIT(25),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap1_s3_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap1_s3_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap1_s3_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2275,8 +2275,8 @@ static struct clk_branch gcc_qupv3_wrap1_s4_clk = {
|
||||
.enable_mask = BIT(26),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap1_s4_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap1_s4_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap1_s4_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2293,8 +2293,8 @@ static struct clk_branch gcc_qupv3_wrap1_s5_clk = {
|
||||
.enable_mask = BIT(27),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap1_s5_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap1_s5_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap1_s5_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2311,8 +2311,8 @@ static struct clk_branch gcc_qupv3_wrap1_s6_clk = {
|
||||
.enable_mask = BIT(28),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap1_s6_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap1_s6_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap1_s6_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2329,8 +2329,8 @@ static struct clk_branch gcc_qupv3_wrap1_s7_clk = {
|
||||
.enable_mask = BIT(16),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap1_s7_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap1_s7_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap1_s7_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2373,8 +2373,8 @@ static struct clk_branch gcc_qupv3_wrap2_s0_clk = {
|
||||
.enable_mask = BIT(4),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap2_s0_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap2_s0_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap2_s0_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2391,8 +2391,8 @@ static struct clk_branch gcc_qupv3_wrap2_s1_clk = {
|
||||
.enable_mask = BIT(5),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap2_s1_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap2_s1_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap2_s1_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2409,8 +2409,8 @@ static struct clk_branch gcc_qupv3_wrap2_s2_clk = {
|
||||
.enable_mask = BIT(6),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap2_s2_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap2_s2_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap2_s2_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2427,8 +2427,8 @@ static struct clk_branch gcc_qupv3_wrap2_s3_clk = {
|
||||
.enable_mask = BIT(7),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap2_s3_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap2_s3_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap2_s3_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2445,8 +2445,8 @@ static struct clk_branch gcc_qupv3_wrap2_s4_clk = {
|
||||
.enable_mask = BIT(8),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap2_s4_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap2_s4_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap2_s4_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2463,8 +2463,8 @@ static struct clk_branch gcc_qupv3_wrap2_s5_clk = {
|
||||
.enable_mask = BIT(9),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap2_s5_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap2_s5_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap2_s5_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2481,8 +2481,8 @@ static struct clk_branch gcc_qupv3_wrap2_s6_clk = {
|
||||
.enable_mask = BIT(10),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap2_s6_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap2_s6_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap2_s6_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2499,8 +2499,8 @@ static struct clk_branch gcc_qupv3_wrap2_s7_clk = {
|
||||
.enable_mask = BIT(17),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_qupv3_wrap2_s7_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_qupv3_wrap2_s7_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_qupv3_wrap2_s7_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2590,8 +2590,8 @@ static struct clk_branch gcc_sdcc2_apps_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_sdcc2_apps_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_sdcc2_apps_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_sdcc2_apps_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2621,8 +2621,8 @@ static struct clk_branch gcc_sdcc4_apps_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_sdcc4_apps_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_sdcc4_apps_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_sdcc4_apps_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2656,8 +2656,8 @@ static struct clk_branch gcc_ufs_phy_axi_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_ufs_phy_axi_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_ufs_phy_axi_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_ufs_phy_axi_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2676,8 +2676,8 @@ static struct clk_branch gcc_ufs_phy_axi_hw_ctl_clk = {
|
||||
.enable_mask = BIT(1),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_ufs_phy_axi_hw_ctl_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_ufs_phy_axi_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_ufs_phy_axi_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2696,8 +2696,8 @@ static struct clk_branch gcc_ufs_phy_ice_core_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_ufs_phy_ice_core_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_ufs_phy_ice_core_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_ufs_phy_ice_core_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2716,8 +2716,8 @@ static struct clk_branch gcc_ufs_phy_ice_core_hw_ctl_clk = {
|
||||
.enable_mask = BIT(1),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_ufs_phy_ice_core_hw_ctl_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_ufs_phy_ice_core_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_ufs_phy_ice_core_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2736,8 +2736,8 @@ static struct clk_branch gcc_ufs_phy_phy_aux_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_ufs_phy_phy_aux_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_ufs_phy_phy_aux_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_ufs_phy_phy_aux_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2756,8 +2756,8 @@ static struct clk_branch gcc_ufs_phy_phy_aux_hw_ctl_clk = {
|
||||
.enable_mask = BIT(1),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_ufs_phy_phy_aux_hw_ctl_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_ufs_phy_phy_aux_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_ufs_phy_phy_aux_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2774,8 +2774,8 @@ static struct clk_branch gcc_ufs_phy_rx_symbol_0_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_ufs_phy_rx_symbol_0_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_ufs_phy_rx_symbol_0_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_ufs_phy_rx_symbol_0_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2792,8 +2792,8 @@ static struct clk_branch gcc_ufs_phy_rx_symbol_1_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_ufs_phy_rx_symbol_1_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_ufs_phy_rx_symbol_1_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_ufs_phy_rx_symbol_1_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2810,8 +2810,8 @@ static struct clk_branch gcc_ufs_phy_tx_symbol_0_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_ufs_phy_tx_symbol_0_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_ufs_phy_tx_symbol_0_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_ufs_phy_tx_symbol_0_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2830,8 +2830,8 @@ static struct clk_branch gcc_ufs_phy_unipro_core_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_ufs_phy_unipro_core_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_ufs_phy_unipro_core_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_ufs_phy_unipro_core_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2850,8 +2850,8 @@ static struct clk_branch gcc_ufs_phy_unipro_core_hw_ctl_clk = {
|
||||
.enable_mask = BIT(1),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_ufs_phy_unipro_core_hw_ctl_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_ufs_phy_unipro_core_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_ufs_phy_unipro_core_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2868,8 +2868,8 @@ static struct clk_branch gcc_usb30_prim_master_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_usb30_prim_master_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_usb30_prim_master_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_usb30_prim_master_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2886,8 +2886,8 @@ static struct clk_branch gcc_usb30_prim_mock_utmi_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_usb30_prim_mock_utmi_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2917,8 +2917,8 @@ static struct clk_branch gcc_usb3_prim_phy_aux_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_usb3_prim_phy_aux_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2935,8 +2935,8 @@ static struct clk_branch gcc_usb3_prim_phy_com_aux_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_usb3_prim_phy_com_aux_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -2955,8 +2955,8 @@ static struct clk_branch gcc_usb3_prim_phy_pipe_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gcc_usb3_prim_phy_pipe_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gcc_usb3_prim_phy_pipe_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gcc_usb3_prim_phy_pipe_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
|
@ -136,7 +136,8 @@ static int gdsc_update_collapse_bit(struct gdsc *sc, bool val)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int gdsc_toggle_logic(struct gdsc *sc, enum gdsc_status status)
|
||||
static int gdsc_toggle_logic(struct gdsc *sc, enum gdsc_status status,
|
||||
bool wait)
|
||||
{
|
||||
int ret;
|
||||
|
||||
@ -149,7 +150,7 @@ static int gdsc_toggle_logic(struct gdsc *sc, enum gdsc_status status)
|
||||
ret = gdsc_update_collapse_bit(sc, status == GDSC_OFF);
|
||||
|
||||
/* If disabling votable gdscs, don't poll on status */
|
||||
if ((sc->flags & VOTABLE) && status == GDSC_OFF) {
|
||||
if ((sc->flags & VOTABLE) && status == GDSC_OFF && !wait) {
|
||||
/*
|
||||
* Add a short delay here to ensure that an enable
|
||||
* right after it was disabled does not put it in an
|
||||
@ -275,7 +276,7 @@ static int gdsc_enable(struct generic_pm_domain *domain)
|
||||
gdsc_deassert_clamp_io(sc);
|
||||
}
|
||||
|
||||
ret = gdsc_toggle_logic(sc, GDSC_ON);
|
||||
ret = gdsc_toggle_logic(sc, GDSC_ON, false);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
@ -352,7 +353,7 @@ static int gdsc_disable(struct generic_pm_domain *domain)
|
||||
if (sc->pwrsts == PWRSTS_RET_ON)
|
||||
return 0;
|
||||
|
||||
ret = gdsc_toggle_logic(sc, GDSC_OFF);
|
||||
ret = gdsc_toggle_logic(sc, GDSC_OFF, domain->synced_poweroff);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
@ -392,7 +393,7 @@ static int gdsc_init(struct gdsc *sc)
|
||||
|
||||
/* Force gdsc ON if only ON state is supported */
|
||||
if (sc->pwrsts == PWRSTS_ON) {
|
||||
ret = gdsc_toggle_logic(sc, GDSC_ON);
|
||||
ret = gdsc_toggle_logic(sc, GDSC_ON, false);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
|
@ -106,9 +106,9 @@ static const struct parent_map gpu_xo_gpupll0_map[] = {
|
||||
{ P_GPUPLL0_OUT_EVEN, 1 },
|
||||
};
|
||||
|
||||
static const struct clk_parent_data gpu_xo_gpupll0[] = {
|
||||
{ .hw = &gpucc_cxo_clk.clkr.hw },
|
||||
{ .hw = &gpupll0_out_even.clkr.hw },
|
||||
static const struct clk_hw *gpu_xo_gpupll0[] = {
|
||||
&gpucc_cxo_clk.clkr.hw,
|
||||
&gpupll0_out_even.clkr.hw,
|
||||
};
|
||||
|
||||
static const struct freq_tbl ftbl_rbcpr_clk_src[] = {
|
||||
@ -142,7 +142,7 @@ static struct clk_rcg2 gfx3d_clk_src = {
|
||||
.freq_tbl = ftbl_gfx3d_clk_src,
|
||||
.clkr.hw.init = &(struct clk_init_data){
|
||||
.name = "gfx3d_clk_src",
|
||||
.parent_data = gpu_xo_gpupll0,
|
||||
.parent_hws = gpu_xo_gpupll0,
|
||||
.num_parents = ARRAY_SIZE(gpu_xo_gpupll0),
|
||||
.ops = &clk_rcg2_ops,
|
||||
.flags = CLK_SET_RATE_PARENT | CLK_OPS_PARENT_ENABLE,
|
||||
|
@ -21,8 +21,6 @@
|
||||
#define CX_GMU_CBCR_SLEEP_SHIFT 4
|
||||
#define CX_GMU_CBCR_WAKE_MASK 0xF
|
||||
#define CX_GMU_CBCR_WAKE_SHIFT 8
|
||||
#define CLK_DIS_WAIT_SHIFT 12
|
||||
#define CLK_DIS_WAIT_MASK (0xf << CLK_DIS_WAIT_SHIFT)
|
||||
|
||||
enum {
|
||||
P_BI_TCXO,
|
||||
@ -108,8 +106,8 @@ static struct clk_branch gpu_cc_cx_gmu_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "gpu_cc_cx_gmu_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &gpu_cc_gmu_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&gpu_cc_gmu_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -160,6 +158,7 @@ static struct clk_branch gpu_cc_cxo_clk = {
|
||||
static struct gdsc cx_gdsc = {
|
||||
.gdscr = 0x106c,
|
||||
.gds_hw_ctrl = 0x1540,
|
||||
.clk_dis_wait_val = 8,
|
||||
.pd = {
|
||||
.name = "cx_gdsc",
|
||||
},
|
||||
@ -242,10 +241,6 @@ static int gpu_cc_sc7180_probe(struct platform_device *pdev)
|
||||
value = 0xF << CX_GMU_CBCR_WAKE_SHIFT | 0xF << CX_GMU_CBCR_SLEEP_SHIFT;
|
||||
regmap_update_bits(regmap, 0x1098, mask, value);
|
||||
|
||||
/* Configure clk_dis_wait for gpu_cx_gdsc */
|
||||
regmap_update_bits(regmap, 0x106c, CLK_DIS_WAIT_MASK,
|
||||
8 << CLK_DIS_WAIT_SHIFT);
|
||||
|
||||
return qcom_cc_really_probe(pdev, &gpu_cc_sc7180_desc, regmap);
|
||||
}
|
||||
|
||||
|
@ -22,8 +22,6 @@
|
||||
#define CX_GMU_CBCR_SLEEP_SHIFT 4
|
||||
#define CX_GMU_CBCR_WAKE_MASK 0xf
|
||||
#define CX_GMU_CBCR_WAKE_SHIFT 8
|
||||
#define CLK_DIS_WAIT_SHIFT 12
|
||||
#define CLK_DIS_WAIT_MASK (0xf << CLK_DIS_WAIT_SHIFT)
|
||||
|
||||
enum {
|
||||
P_BI_TCXO,
|
||||
@ -121,6 +119,7 @@ static struct clk_branch gpu_cc_cxo_clk = {
|
||||
static struct gdsc gpu_cx_gdsc = {
|
||||
.gdscr = 0x106c,
|
||||
.gds_hw_ctrl = 0x1540,
|
||||
.clk_dis_wait_val = 0x8,
|
||||
.pd = {
|
||||
.name = "gpu_cx_gdsc",
|
||||
},
|
||||
@ -193,10 +192,6 @@ static int gpu_cc_sdm845_probe(struct platform_device *pdev)
|
||||
value = 0xf << CX_GMU_CBCR_WAKE_SHIFT | 0xf << CX_GMU_CBCR_SLEEP_SHIFT;
|
||||
regmap_update_bits(regmap, 0x1098, mask, value);
|
||||
|
||||
/* Configure clk_dis_wait for gpu_cx_gdsc */
|
||||
regmap_update_bits(regmap, 0x106c, CLK_DIS_WAIT_MASK,
|
||||
8 << CLK_DIS_WAIT_SHIFT);
|
||||
|
||||
return qcom_cc_really_probe(pdev, &gpu_cc_sdm845_desc, regmap);
|
||||
}
|
||||
|
||||
|
@ -376,8 +376,8 @@ static int krait_cc_probe(struct platform_device *pdev)
|
||||
|
||||
for_each_possible_cpu(cpu) {
|
||||
mux = krait_add_clks(dev, cpu, id->data);
|
||||
if (IS_ERR(clk))
|
||||
return PTR_ERR(clk);
|
||||
if (IS_ERR(mux))
|
||||
return PTR_ERR(mux);
|
||||
clks[cpu] = mux->clk;
|
||||
}
|
||||
|
||||
|
@ -107,10 +107,13 @@ static int lpass_cc_sc7280_probe(struct platform_device *pdev)
|
||||
const struct qcom_cc_desc *desc;
|
||||
int ret;
|
||||
|
||||
pm_runtime_enable(&pdev->dev);
|
||||
ret = devm_pm_runtime_enable(&pdev->dev);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = pm_clk_create(&pdev->dev);
|
||||
if (ret)
|
||||
goto disable_pm_runtime;
|
||||
return ret;
|
||||
|
||||
ret = pm_clk_add(&pdev->dev, "iface");
|
||||
if (ret < 0) {
|
||||
@ -137,9 +140,6 @@ static int lpass_cc_sc7280_probe(struct platform_device *pdev)
|
||||
destroy_pm_clk:
|
||||
pm_clk_destroy(&pdev->dev);
|
||||
|
||||
disable_pm_runtime:
|
||||
pm_runtime_disable(&pdev->dev);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -93,8 +93,8 @@ static struct clk_alpha_pll_postdiv lpass_lpaaudio_dig_pll_out_odd = {
|
||||
.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
|
||||
.clkr.hw.init = &(struct clk_init_data){
|
||||
.name = "lpass_lpaaudio_dig_pll_out_odd",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &lpass_lpaaudio_dig_pll.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&lpass_lpaaudio_dig_pll.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -210,8 +210,8 @@ static struct clk_branch lpass_audio_core_ext_mclk0_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "lpass_audio_core_ext_mclk0_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &ext_mclk0_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&ext_mclk0_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -230,8 +230,8 @@ static struct clk_branch lpass_audio_core_lpaif_pri_ibit_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "lpass_audio_core_lpaif_pri_ibit_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &lpaif_pri_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&lpaif_pri_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -250,8 +250,8 @@ static struct clk_branch lpass_audio_core_lpaif_sec_ibit_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "lpass_audio_core_lpaif_sec_ibit_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &lpaif_sec_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&lpaif_sec_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
@ -270,8 +270,8 @@ static struct clk_branch lpass_audio_core_sysnoc_mport_core_clk = {
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "lpass_audio_core_sysnoc_mport_core_clk",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.hw = &core_clk_src.clkr.hw,
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&core_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -44,7 +44,6 @@ enum {
|
||||
P_HDMIPLL,
|
||||
P_DPVCO,
|
||||
P_DPLINK,
|
||||
P_CORE_BI_PLL_TEST_SE,
|
||||
};
|
||||
|
||||
static struct clk_fixed_factor gpll0_div = {
|
||||
@ -303,69 +302,59 @@ static struct clk_alpha_pll_postdiv mmpll10_out_even = {
|
||||
static const struct parent_map mmss_xo_hdmi_map[] = {
|
||||
{ P_XO, 0 },
|
||||
{ P_HDMIPLL, 1 },
|
||||
{ P_CORE_BI_PLL_TEST_SE, 7 }
|
||||
};
|
||||
|
||||
static const struct clk_parent_data mmss_xo_hdmi[] = {
|
||||
{ .fw_name = "xo" },
|
||||
{ .fw_name = "hdmipll" },
|
||||
{ .fw_name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct parent_map mmss_xo_dsi0pll_dsi1pll_map[] = {
|
||||
{ P_XO, 0 },
|
||||
{ P_DSI0PLL, 1 },
|
||||
{ P_DSI1PLL, 2 },
|
||||
{ P_CORE_BI_PLL_TEST_SE, 7 }
|
||||
};
|
||||
|
||||
static const struct clk_parent_data mmss_xo_dsi0pll_dsi1pll[] = {
|
||||
{ .fw_name = "xo" },
|
||||
{ .fw_name = "dsi0dsi" },
|
||||
{ .fw_name = "dsi1dsi" },
|
||||
{ .fw_name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct parent_map mmss_xo_dsibyte_map[] = {
|
||||
{ P_XO, 0 },
|
||||
{ P_DSI0PLL_BYTE, 1 },
|
||||
{ P_DSI1PLL_BYTE, 2 },
|
||||
{ P_CORE_BI_PLL_TEST_SE, 7 }
|
||||
};
|
||||
|
||||
static const struct clk_parent_data mmss_xo_dsibyte[] = {
|
||||
{ .fw_name = "xo" },
|
||||
{ .fw_name = "dsi0byte" },
|
||||
{ .fw_name = "dsi1byte" },
|
||||
{ .fw_name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct parent_map mmss_xo_dp_map[] = {
|
||||
{ P_XO, 0 },
|
||||
{ P_DPLINK, 1 },
|
||||
{ P_DPVCO, 2 },
|
||||
{ P_CORE_BI_PLL_TEST_SE, 7 }
|
||||
};
|
||||
|
||||
static const struct clk_parent_data mmss_xo_dp[] = {
|
||||
{ .fw_name = "xo" },
|
||||
{ .fw_name = "dplink" },
|
||||
{ .fw_name = "dpvco" },
|
||||
{ .fw_name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct parent_map mmss_xo_gpll0_gpll0_div_map[] = {
|
||||
{ P_XO, 0 },
|
||||
{ P_GPLL0, 5 },
|
||||
{ P_GPLL0_DIV, 6 },
|
||||
{ P_CORE_BI_PLL_TEST_SE, 7 }
|
||||
};
|
||||
|
||||
static const struct clk_parent_data mmss_xo_gpll0_gpll0_div[] = {
|
||||
{ .fw_name = "xo" },
|
||||
{ .fw_name = "gpll0" },
|
||||
{ .hw = &gpll0_div.hw },
|
||||
{ .fw_name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct parent_map mmss_xo_mmpll0_gpll0_gpll0_div_map[] = {
|
||||
@ -373,7 +362,6 @@ static const struct parent_map mmss_xo_mmpll0_gpll0_gpll0_div_map[] = {
|
||||
{ P_MMPLL0_OUT_EVEN, 1 },
|
||||
{ P_GPLL0, 5 },
|
||||
{ P_GPLL0_DIV, 6 },
|
||||
{ P_CORE_BI_PLL_TEST_SE, 7 }
|
||||
};
|
||||
|
||||
static const struct clk_parent_data mmss_xo_mmpll0_gpll0_gpll0_div[] = {
|
||||
@ -381,7 +369,6 @@ static const struct clk_parent_data mmss_xo_mmpll0_gpll0_gpll0_div[] = {
|
||||
{ .hw = &mmpll0_out_even.clkr.hw },
|
||||
{ .fw_name = "gpll0" },
|
||||
{ .hw = &gpll0_div.hw },
|
||||
{ .fw_name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct parent_map mmss_xo_mmpll0_mmpll1_gpll0_gpll0_div_map[] = {
|
||||
@ -390,7 +377,6 @@ static const struct parent_map mmss_xo_mmpll0_mmpll1_gpll0_gpll0_div_map[] = {
|
||||
{ P_MMPLL1_OUT_EVEN, 2 },
|
||||
{ P_GPLL0, 5 },
|
||||
{ P_GPLL0_DIV, 6 },
|
||||
{ P_CORE_BI_PLL_TEST_SE, 7 }
|
||||
};
|
||||
|
||||
static const struct clk_parent_data mmss_xo_mmpll0_mmpll1_gpll0_gpll0_div[] = {
|
||||
@ -399,7 +385,6 @@ static const struct clk_parent_data mmss_xo_mmpll0_mmpll1_gpll0_gpll0_div[] = {
|
||||
{ .hw = &mmpll1_out_even.clkr.hw },
|
||||
{ .fw_name = "gpll0" },
|
||||
{ .hw = &gpll0_div.hw },
|
||||
{ .fw_name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct parent_map mmss_xo_mmpll0_mmpll5_gpll0_gpll0_div_map[] = {
|
||||
@ -408,7 +393,6 @@ static const struct parent_map mmss_xo_mmpll0_mmpll5_gpll0_gpll0_div_map[] = {
|
||||
{ P_MMPLL5_OUT_EVEN, 2 },
|
||||
{ P_GPLL0, 5 },
|
||||
{ P_GPLL0_DIV, 6 },
|
||||
{ P_CORE_BI_PLL_TEST_SE, 7 }
|
||||
};
|
||||
|
||||
static const struct clk_parent_data mmss_xo_mmpll0_mmpll5_gpll0_gpll0_div[] = {
|
||||
@ -417,7 +401,6 @@ static const struct clk_parent_data mmss_xo_mmpll0_mmpll5_gpll0_gpll0_div[] = {
|
||||
{ .hw = &mmpll5_out_even.clkr.hw },
|
||||
{ .fw_name = "gpll0" },
|
||||
{ .hw = &gpll0_div.hw },
|
||||
{ .fw_name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct parent_map mmss_xo_mmpll0_mmpll3_mmpll6_gpll0_gpll0_div_map[] = {
|
||||
@ -427,7 +410,6 @@ static const struct parent_map mmss_xo_mmpll0_mmpll3_mmpll6_gpll0_gpll0_div_map[
|
||||
{ P_MMPLL6_OUT_EVEN, 4 },
|
||||
{ P_GPLL0, 5 },
|
||||
{ P_GPLL0_DIV, 6 },
|
||||
{ P_CORE_BI_PLL_TEST_SE, 7 }
|
||||
};
|
||||
|
||||
static const struct clk_parent_data mmss_xo_mmpll0_mmpll3_mmpll6_gpll0_gpll0_div[] = {
|
||||
@ -437,7 +419,6 @@ static const struct clk_parent_data mmss_xo_mmpll0_mmpll3_mmpll6_gpll0_gpll0_div
|
||||
{ .hw = &mmpll6_out_even.clkr.hw },
|
||||
{ .fw_name = "gpll0" },
|
||||
{ .hw = &gpll0_div.hw },
|
||||
{ .fw_name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct parent_map mmss_xo_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div_map[] = {
|
||||
@ -447,7 +428,6 @@ static const struct parent_map mmss_xo_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div_map
|
||||
{ P_MMPLL10_OUT_EVEN, 3 },
|
||||
{ P_GPLL0, 5 },
|
||||
{ P_GPLL0_DIV, 6 },
|
||||
{ P_CORE_BI_PLL_TEST_SE, 7 }
|
||||
};
|
||||
|
||||
static const struct clk_parent_data mmss_xo_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div[] = {
|
||||
@ -457,7 +437,6 @@ static const struct clk_parent_data mmss_xo_mmpll4_mmpll7_mmpll10_gpll0_gpll0_di
|
||||
{ .hw = &mmpll10_out_even.clkr.hw },
|
||||
{ .fw_name = "gpll0" },
|
||||
{ .hw = &gpll0_div.hw },
|
||||
{ .fw_name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct parent_map mmss_xo_mmpll0_mmpll7_mmpll10_gpll0_gpll0_div_map[] = {
|
||||
@ -467,7 +446,6 @@ static const struct parent_map mmss_xo_mmpll0_mmpll7_mmpll10_gpll0_gpll0_div_map
|
||||
{ P_MMPLL10_OUT_EVEN, 3 },
|
||||
{ P_GPLL0, 5 },
|
||||
{ P_GPLL0_DIV, 6 },
|
||||
{ P_CORE_BI_PLL_TEST_SE, 7 }
|
||||
};
|
||||
|
||||
static const struct clk_parent_data mmss_xo_mmpll0_mmpll7_mmpll10_gpll0_gpll0_div[] = {
|
||||
@ -477,7 +455,6 @@ static const struct clk_parent_data mmss_xo_mmpll0_mmpll7_mmpll10_gpll0_gpll0_di
|
||||
{ .hw = &mmpll10_out_even.clkr.hw },
|
||||
{ .fw_name = "gpll0" },
|
||||
{ .hw = &gpll0_div.hw },
|
||||
{ .fw_name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static const struct parent_map mmss_xo_mmpll0_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div_map[] = {
|
||||
@ -488,7 +465,6 @@ static const struct parent_map mmss_xo_mmpll0_mmpll4_mmpll7_mmpll10_gpll0_gpll0_
|
||||
{ P_MMPLL10_OUT_EVEN, 4 },
|
||||
{ P_GPLL0, 5 },
|
||||
{ P_GPLL0_DIV, 6 },
|
||||
{ P_CORE_BI_PLL_TEST_SE, 7 }
|
||||
};
|
||||
|
||||
static const struct clk_parent_data mmss_xo_mmpll0_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div[] = {
|
||||
@ -499,7 +475,6 @@ static const struct clk_parent_data mmss_xo_mmpll0_mmpll4_mmpll7_mmpll10_gpll0_g
|
||||
{ .hw = &mmpll10_out_even.clkr.hw },
|
||||
{ .fw_name = "gpll0" },
|
||||
{ .hw = &gpll0_div.hw },
|
||||
{ .fw_name = "core_bi_pll_test_se" },
|
||||
};
|
||||
|
||||
static struct clk_rcg2 byte0_clk_src = {
|
||||
|
192
drivers/clk/qcom/tcsrcc-sm8550.c
Normal file
192
drivers/clk/qcom/tcsrcc-sm8550.c
Normal file
@ -0,0 +1,192 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Copyright (c) 2021, The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
* Copyright (c) 2022, Linaro Limited
|
||||
*/
|
||||
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
#include <dt-bindings/clock/qcom,sm8550-tcsr.h>
|
||||
|
||||
#include "clk-alpha-pll.h"
|
||||
#include "clk-branch.h"
|
||||
#include "clk-pll.h"
|
||||
#include "clk-rcg.h"
|
||||
#include "clk-regmap.h"
|
||||
#include "clk-regmap-divider.h"
|
||||
#include "clk-regmap-mux.h"
|
||||
#include "common.h"
|
||||
#include "reset.h"
|
||||
|
||||
enum {
|
||||
DT_BI_TCXO_PAD,
|
||||
};
|
||||
|
||||
static struct clk_branch tcsr_pcie_0_clkref_en = {
|
||||
.halt_reg = 0x15100,
|
||||
.halt_check = BRANCH_HALT_SKIP,
|
||||
.clkr = {
|
||||
.enable_reg = 0x15100,
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "tcsr_pcie_0_clkref_en",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.index = DT_BI_TCXO_PAD,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.ops = &clk_branch2_ops,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
static struct clk_branch tcsr_pcie_1_clkref_en = {
|
||||
.halt_reg = 0x15114,
|
||||
.halt_check = BRANCH_HALT_SKIP,
|
||||
.clkr = {
|
||||
.enable_reg = 0x15114,
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "tcsr_pcie_1_clkref_en",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.index = DT_BI_TCXO_PAD,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.ops = &clk_branch2_ops,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
static struct clk_branch tcsr_ufs_clkref_en = {
|
||||
.halt_reg = 0x15110,
|
||||
.halt_check = BRANCH_HALT_SKIP,
|
||||
.clkr = {
|
||||
.enable_reg = 0x15110,
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "tcsr_ufs_clkref_en",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.index = DT_BI_TCXO_PAD,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.ops = &clk_branch2_ops,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
static struct clk_branch tcsr_ufs_pad_clkref_en = {
|
||||
.halt_reg = 0x15104,
|
||||
.halt_check = BRANCH_HALT_SKIP,
|
||||
.clkr = {
|
||||
.enable_reg = 0x15104,
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "tcsr_ufs_pad_clkref_en",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.index = DT_BI_TCXO_PAD,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.ops = &clk_branch2_ops,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
static struct clk_branch tcsr_usb2_clkref_en = {
|
||||
.halt_reg = 0x15118,
|
||||
.halt_check = BRANCH_HALT_SKIP,
|
||||
.clkr = {
|
||||
.enable_reg = 0x15118,
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "tcsr_usb2_clkref_en",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.index = DT_BI_TCXO_PAD,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.ops = &clk_branch2_ops,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
static struct clk_branch tcsr_usb3_clkref_en = {
|
||||
.halt_reg = 0x15108,
|
||||
.halt_check = BRANCH_HALT_SKIP,
|
||||
.clkr = {
|
||||
.enable_reg = 0x15108,
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(struct clk_init_data){
|
||||
.name = "tcsr_usb3_clkref_en",
|
||||
.parent_data = &(const struct clk_parent_data){
|
||||
.index = DT_BI_TCXO_PAD,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.ops = &clk_branch2_ops,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
static struct clk_regmap *tcsr_cc_sm8550_clocks[] = {
|
||||
[TCSR_PCIE_0_CLKREF_EN] = &tcsr_pcie_0_clkref_en.clkr,
|
||||
[TCSR_PCIE_1_CLKREF_EN] = &tcsr_pcie_1_clkref_en.clkr,
|
||||
[TCSR_UFS_CLKREF_EN] = &tcsr_ufs_clkref_en.clkr,
|
||||
[TCSR_UFS_PAD_CLKREF_EN] = &tcsr_ufs_pad_clkref_en.clkr,
|
||||
[TCSR_USB2_CLKREF_EN] = &tcsr_usb2_clkref_en.clkr,
|
||||
[TCSR_USB3_CLKREF_EN] = &tcsr_usb3_clkref_en.clkr,
|
||||
};
|
||||
|
||||
static const struct regmap_config tcsr_cc_sm8550_regmap_config = {
|
||||
.reg_bits = 32,
|
||||
.reg_stride = 4,
|
||||
.val_bits = 32,
|
||||
.max_register = 0x2f000,
|
||||
.fast_io = true,
|
||||
};
|
||||
|
||||
static const struct qcom_cc_desc tcsr_cc_sm8550_desc = {
|
||||
.config = &tcsr_cc_sm8550_regmap_config,
|
||||
.clks = tcsr_cc_sm8550_clocks,
|
||||
.num_clks = ARRAY_SIZE(tcsr_cc_sm8550_clocks),
|
||||
};
|
||||
|
||||
static const struct of_device_id tcsr_cc_sm8550_match_table[] = {
|
||||
{ .compatible = "qcom,sm8550-tcsr" },
|
||||
{ }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, tcsr_cc_sm8550_match_table);
|
||||
|
||||
static int tcsr_cc_sm8550_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct regmap *regmap;
|
||||
|
||||
regmap = qcom_cc_map(pdev, &tcsr_cc_sm8550_desc);
|
||||
if (IS_ERR(regmap))
|
||||
return PTR_ERR(regmap);
|
||||
|
||||
return qcom_cc_really_probe(pdev, &tcsr_cc_sm8550_desc, regmap);
|
||||
}
|
||||
|
||||
static struct platform_driver tcsr_cc_sm8550_driver = {
|
||||
.probe = tcsr_cc_sm8550_probe,
|
||||
.driver = {
|
||||
.name = "tcsr_cc-sm8550",
|
||||
.of_match_table = tcsr_cc_sm8550_match_table,
|
||||
},
|
||||
};
|
||||
|
||||
static int __init tcsr_cc_sm8550_init(void)
|
||||
{
|
||||
return platform_driver_register(&tcsr_cc_sm8550_driver);
|
||||
}
|
||||
subsys_initcall(tcsr_cc_sm8550_init);
|
||||
|
||||
static void __exit tcsr_cc_sm8550_exit(void)
|
||||
{
|
||||
platform_driver_unregister(&tcsr_cc_sm8550_driver);
|
||||
}
|
||||
module_exit(tcsr_cc_sm8550_exit);
|
||||
|
||||
MODULE_DESCRIPTION("QTI TCSRCC SM8550 Driver");
|
||||
MODULE_LICENSE("GPL");
|
@ -361,19 +361,12 @@ static const struct of_device_id video_cc_sm8250_match_table[] = {
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, video_cc_sm8250_match_table);
|
||||
|
||||
static void video_cc_sm8250_pm_runtime_disable(void *data)
|
||||
{
|
||||
pm_runtime_disable(data);
|
||||
}
|
||||
|
||||
static int video_cc_sm8250_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct regmap *regmap;
|
||||
int ret;
|
||||
|
||||
pm_runtime_enable(&pdev->dev);
|
||||
|
||||
ret = devm_add_action_or_reset(&pdev->dev, video_cc_sm8250_pm_runtime_disable, &pdev->dev);
|
||||
ret = devm_pm_runtime_enable(&pdev->dev);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
|
29
include/dt-bindings/clock/loongson,ls2k-clk.h
Normal file
29
include/dt-bindings/clock/loongson,ls2k-clk.h
Normal file
@ -0,0 +1,29 @@
|
||||
/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
|
||||
/*
|
||||
* Author: Yinbo Zhu <zhuyinbo@loongson.cn>
|
||||
* Copyright (C) 2022-2023 Loongson Technology Corporation Limited
|
||||
*/
|
||||
|
||||
#ifndef __DT_BINDINGS_CLOCK_LOONGSON2_H
|
||||
#define __DT_BINDINGS_CLOCK_LOONGSON2_H
|
||||
|
||||
#define LOONGSON2_REF_100M 0
|
||||
#define LOONGSON2_NODE_PLL 1
|
||||
#define LOONGSON2_DDR_PLL 2
|
||||
#define LOONGSON2_DC_PLL 3
|
||||
#define LOONGSON2_PIX0_PLL 4
|
||||
#define LOONGSON2_PIX1_PLL 5
|
||||
#define LOONGSON2_NODE_CLK 6
|
||||
#define LOONGSON2_HDA_CLK 7
|
||||
#define LOONGSON2_GPU_CLK 8
|
||||
#define LOONGSON2_DDR_CLK 9
|
||||
#define LOONGSON2_GMAC_CLK 10
|
||||
#define LOONGSON2_DC_CLK 11
|
||||
#define LOONGSON2_APB_CLK 12
|
||||
#define LOONGSON2_USB_CLK 13
|
||||
#define LOONGSON2_SATA_CLK 14
|
||||
#define LOONGSON2_PIX0_CLK 15
|
||||
#define LOONGSON2_PIX1_CLK 16
|
||||
#define LOONGSON2_CLK_END 17
|
||||
|
||||
#endif
|
@ -339,6 +339,7 @@
|
||||
#define GCC_PCIE_1_MSTR_AXI_CLK 330
|
||||
#define GCC_PCIE_1_PIPE_CLK 331
|
||||
#define GCC_PCIE_1_SLV_AXI_CLK 332
|
||||
#define GCC_MMSS_GPLL0_CLK_SRC 333
|
||||
|
||||
/* gdscs */
|
||||
#define USB_HS_HSIC_GDSC 0
|
||||
|
@ -177,4 +177,8 @@
|
||||
#define GCC_PCIE_0_PIPE_ARES 21
|
||||
#define GCC_WDSP_RESTART 22
|
||||
|
||||
/* Indexes for GDSCs */
|
||||
#define MDSS_GDSC 0
|
||||
#define OXILI_GDSC 1
|
||||
|
||||
#endif
|
||||
|
@ -8,7 +8,6 @@
|
||||
#define _DT_BINDINGS_CLK_QCOM_GCC_SM8350_H
|
||||
|
||||
/* GCC HW clocks */
|
||||
#define CORE_BI_PLL_TEST_SE 0
|
||||
#define PCIE_0_PIPE_CLK 1
|
||||
#define PCIE_1_PIPE_CLK 2
|
||||
#define UFS_CARD_RX_SYMBOL_0_CLK 3
|
||||
|
@ -8,7 +8,6 @@
|
||||
#define _DT_BINDINGS_CLK_QCOM_GCC_SM8450_H
|
||||
|
||||
/* GCC HW clocks */
|
||||
#define CORE_BI_PLL_TEST_SE 0
|
||||
#define PCIE_0_PIPE_CLK 1
|
||||
#define PCIE_1_PHY_AUX_CLK 2
|
||||
#define PCIE_1_PIPE_CLK 3
|
||||
|
175
include/dt-bindings/clock/qcom,qdu1000-gcc.h
Normal file
175
include/dt-bindings/clock/qcom,qdu1000-gcc.h
Normal file
@ -0,0 +1,175 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause */
|
||||
/*
|
||||
* Copyright (c) 2021-2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef _DT_BINDINGS_CLK_QCOM_GCC_QDU1000_H
|
||||
#define _DT_BINDINGS_CLK_QCOM_GCC_QDU1000_H
|
||||
|
||||
/* GCC clocks */
|
||||
#define GCC_GPLL0 0
|
||||
#define GCC_GPLL0_OUT_EVEN 1
|
||||
#define GCC_GPLL1 2
|
||||
#define GCC_GPLL2 3
|
||||
#define GCC_GPLL2_OUT_EVEN 4
|
||||
#define GCC_GPLL3 5
|
||||
#define GCC_GPLL4 6
|
||||
#define GCC_GPLL5 7
|
||||
#define GCC_GPLL5_OUT_EVEN 8
|
||||
#define GCC_GPLL6 9
|
||||
#define GCC_GPLL7 10
|
||||
#define GCC_GPLL8 11
|
||||
#define GCC_AGGRE_NOC_ECPRI_DMA_CLK 12
|
||||
#define GCC_AGGRE_NOC_ECPRI_DMA_CLK_SRC 13
|
||||
#define GCC_AGGRE_NOC_ECPRI_GSI_CLK_SRC 14
|
||||
#define GCC_BOOT_ROM_AHB_CLK 15
|
||||
#define GCC_CFG_NOC_ECPRI_CC_AHB_CLK 16
|
||||
#define GCC_CFG_NOC_USB3_PRIM_AXI_CLK 17
|
||||
#define GCC_DDRSS_ECPRI_DMA_CLK 18
|
||||
#define GCC_ECPRI_AHB_CLK 19
|
||||
#define GCC_ECPRI_CC_GPLL0_CLK_SRC 20
|
||||
#define GCC_ECPRI_CC_GPLL1_EVEN_CLK_SRC 21
|
||||
#define GCC_ECPRI_CC_GPLL2_EVEN_CLK_SRC 22
|
||||
#define GCC_ECPRI_CC_GPLL3_CLK_SRC 23
|
||||
#define GCC_ECPRI_CC_GPLL4_CLK_SRC 24
|
||||
#define GCC_ECPRI_CC_GPLL5_EVEN_CLK_SRC 25
|
||||
#define GCC_ECPRI_XO_CLK 26
|
||||
#define GCC_ETH_DBG_SNOC_AXI_CLK 27
|
||||
#define GCC_GEMNOC_PCIE_QX_CLK 28
|
||||
#define GCC_GP1_CLK 29
|
||||
#define GCC_GP1_CLK_SRC 30
|
||||
#define GCC_GP2_CLK 31
|
||||
#define GCC_GP2_CLK_SRC 32
|
||||
#define GCC_GP3_CLK 33
|
||||
#define GCC_GP3_CLK_SRC 34
|
||||
#define GCC_PCIE_0_AUX_CLK 35
|
||||
#define GCC_PCIE_0_AUX_CLK_SRC 36
|
||||
#define GCC_PCIE_0_CFG_AHB_CLK 37
|
||||
#define GCC_PCIE_0_CLKREF_EN 38
|
||||
#define GCC_PCIE_0_MSTR_AXI_CLK 39
|
||||
#define GCC_PCIE_0_PHY_AUX_CLK 40
|
||||
#define GCC_PCIE_0_PHY_RCHNG_CLK 41
|
||||
#define GCC_PCIE_0_PHY_RCHNG_CLK_SRC 42
|
||||
#define GCC_PCIE_0_PIPE_CLK 43
|
||||
#define GCC_PCIE_0_SLV_AXI_CLK 44
|
||||
#define GCC_PCIE_0_SLV_Q2A_AXI_CLK 45
|
||||
#define GCC_PDM2_CLK 46
|
||||
#define GCC_PDM2_CLK_SRC 47
|
||||
#define GCC_PDM_AHB_CLK 48
|
||||
#define GCC_PDM_XO4_CLK 49
|
||||
#define GCC_QMIP_ANOC_PCIE_CLK 50
|
||||
#define GCC_QMIP_ECPRI_DMA0_CLK 51
|
||||
#define GCC_QMIP_ECPRI_DMA1_CLK 52
|
||||
#define GCC_QMIP_ECPRI_GSI_CLK 53
|
||||
#define GCC_QUPV3_WRAP0_CORE_2X_CLK 54
|
||||
#define GCC_QUPV3_WRAP0_CORE_CLK 55
|
||||
#define GCC_QUPV3_WRAP0_S0_CLK 56
|
||||
#define GCC_QUPV3_WRAP0_S0_CLK_SRC 57
|
||||
#define GCC_QUPV3_WRAP0_S1_CLK 58
|
||||
#define GCC_QUPV3_WRAP0_S1_CLK_SRC 59
|
||||
#define GCC_QUPV3_WRAP0_S2_CLK 60
|
||||
#define GCC_QUPV3_WRAP0_S2_CLK_SRC 61
|
||||
#define GCC_QUPV3_WRAP0_S3_CLK 62
|
||||
#define GCC_QUPV3_WRAP0_S3_CLK_SRC 63
|
||||
#define GCC_QUPV3_WRAP0_S4_CLK 64
|
||||
#define GCC_QUPV3_WRAP0_S4_CLK_SRC 65
|
||||
#define GCC_QUPV3_WRAP0_S5_CLK 66
|
||||
#define GCC_QUPV3_WRAP0_S5_CLK_SRC 67
|
||||
#define GCC_QUPV3_WRAP0_S6_CLK 68
|
||||
#define GCC_QUPV3_WRAP0_S6_CLK_SRC 69
|
||||
#define GCC_QUPV3_WRAP0_S7_CLK 70
|
||||
#define GCC_QUPV3_WRAP0_S7_CLK_SRC 71
|
||||
#define GCC_QUPV3_WRAP1_CORE_2X_CLK 72
|
||||
#define GCC_QUPV3_WRAP1_CORE_CLK 73
|
||||
#define GCC_QUPV3_WRAP1_S0_CLK 74
|
||||
#define GCC_QUPV3_WRAP1_S0_CLK_SRC 75
|
||||
#define GCC_QUPV3_WRAP1_S1_CLK 76
|
||||
#define GCC_QUPV3_WRAP1_S1_CLK_SRC 77
|
||||
#define GCC_QUPV3_WRAP1_S2_CLK 78
|
||||
#define GCC_QUPV3_WRAP1_S2_CLK_SRC 79
|
||||
#define GCC_QUPV3_WRAP1_S3_CLK 80
|
||||
#define GCC_QUPV3_WRAP1_S3_CLK_SRC 81
|
||||
#define GCC_QUPV3_WRAP1_S4_CLK 82
|
||||
#define GCC_QUPV3_WRAP1_S4_CLK_SRC 83
|
||||
#define GCC_QUPV3_WRAP1_S5_CLK 84
|
||||
#define GCC_QUPV3_WRAP1_S5_CLK_SRC 85
|
||||
#define GCC_QUPV3_WRAP1_S6_CLK 86
|
||||
#define GCC_QUPV3_WRAP1_S6_CLK_SRC 87
|
||||
#define GCC_QUPV3_WRAP1_S7_CLK 88
|
||||
#define GCC_QUPV3_WRAP1_S7_CLK_SRC 89
|
||||
#define GCC_QUPV3_WRAP_0_M_AHB_CLK 90
|
||||
#define GCC_QUPV3_WRAP_0_S_AHB_CLK 91
|
||||
#define GCC_QUPV3_WRAP_1_M_AHB_CLK 92
|
||||
#define GCC_QUPV3_WRAP_1_S_AHB_CLK 93
|
||||
#define GCC_SDCC5_AHB_CLK 94
|
||||
#define GCC_SDCC5_APPS_CLK 95
|
||||
#define GCC_SDCC5_APPS_CLK_SRC 96
|
||||
#define GCC_SDCC5_ICE_CORE_CLK 97
|
||||
#define GCC_SDCC5_ICE_CORE_CLK_SRC 98
|
||||
#define GCC_SNOC_CNOC_GEMNOC_PCIE_QX_CLK 99
|
||||
#define GCC_SNOC_CNOC_GEMNOC_PCIE_SOUTH_QX_CLK 100
|
||||
#define GCC_SNOC_CNOC_PCIE_QX_CLK 101
|
||||
#define GCC_SNOC_PCIE_SF_CENTER_QX_CLK 102
|
||||
#define GCC_SNOC_PCIE_SF_SOUTH_QX_CLK 103
|
||||
#define GCC_TSC_CFG_AHB_CLK 104
|
||||
#define GCC_TSC_CLK_SRC 105
|
||||
#define GCC_TSC_CNTR_CLK 106
|
||||
#define GCC_TSC_ETU_CLK 107
|
||||
#define GCC_USB2_CLKREF_EN 108
|
||||
#define GCC_USB30_PRIM_MASTER_CLK 109
|
||||
#define GCC_USB30_PRIM_MASTER_CLK_SRC 110
|
||||
#define GCC_USB30_PRIM_MOCK_UTMI_CLK 111
|
||||
#define GCC_USB30_PRIM_MOCK_UTMI_CLK_SRC 112
|
||||
#define GCC_USB30_PRIM_MOCK_UTMI_POSTDIV_CLK_SRC 113
|
||||
#define GCC_USB30_PRIM_SLEEP_CLK 114
|
||||
#define GCC_USB3_PRIM_PHY_AUX_CLK 115
|
||||
#define GCC_USB3_PRIM_PHY_AUX_CLK_SRC 116
|
||||
#define GCC_USB3_PRIM_PHY_COM_AUX_CLK 117
|
||||
#define GCC_USB3_PRIM_PHY_PIPE_CLK 118
|
||||
#define GCC_SM_BUS_AHB_CLK 119
|
||||
#define GCC_SM_BUS_XO_CLK 120
|
||||
#define GCC_SM_BUS_XO_CLK_SRC 121
|
||||
#define GCC_USB3_PRIM_PHY_PIPE_CLK_SRC 122
|
||||
#define GCC_ETH_100G_C2C_HM_APB_CLK 123
|
||||
#define GCC_ETH_100G_FH_HM_APB_0_CLK 124
|
||||
#define GCC_ETH_100G_FH_HM_APB_1_CLK 125
|
||||
#define GCC_ETH_100G_FH_HM_APB_2_CLK 126
|
||||
#define GCC_ETH_DBG_C2C_HM_APB_CLK 127
|
||||
#define GCC_AGGRE_NOC_ECPRI_GSI_CLK 128
|
||||
#define GCC_PCIE_0_PIPE_CLK_SRC 129
|
||||
#define GCC_PCIE_0_PHY_AUX_CLK_SRC 130
|
||||
|
||||
/* GCC resets */
|
||||
#define GCC_ECPRI_CC_BCR 0
|
||||
#define GCC_ECPRI_SS_BCR 1
|
||||
#define GCC_ETH_WRAPPER_BCR 2
|
||||
#define GCC_PCIE_0_BCR 3
|
||||
#define GCC_PCIE_0_LINK_DOWN_BCR 4
|
||||
#define GCC_PCIE_0_NOCSR_COM_PHY_BCR 5
|
||||
#define GCC_PCIE_0_PHY_BCR 6
|
||||
#define GCC_PCIE_0_PHY_NOCSR_COM_PHY_BCR 7
|
||||
#define GCC_PCIE_PHY_CFG_AHB_BCR 8
|
||||
#define GCC_PCIE_PHY_COM_BCR 9
|
||||
#define GCC_PDM_BCR 10
|
||||
#define GCC_QUPV3_WRAPPER_0_BCR 11
|
||||
#define GCC_QUPV3_WRAPPER_1_BCR 12
|
||||
#define GCC_QUSB2PHY_PRIM_BCR 13
|
||||
#define GCC_QUSB2PHY_SEC_BCR 14
|
||||
#define GCC_SDCC5_BCR 15
|
||||
#define GCC_TCSR_PCIE_BCR 16
|
||||
#define GCC_TSC_BCR 17
|
||||
#define GCC_USB30_PRIM_BCR 18
|
||||
#define GCC_USB3_DP_PHY_PRIM_BCR 19
|
||||
#define GCC_USB3_DP_PHY_SEC_BCR 20
|
||||
#define GCC_USB3_PHY_PRIM_BCR 21
|
||||
#define GCC_USB3_PHY_SEC_BCR 22
|
||||
#define GCC_USB3PHY_PHY_PRIM_BCR 23
|
||||
#define GCC_USB3PHY_PHY_SEC_BCR 24
|
||||
#define GCC_USB_PHY_CFG_AHB2PHY_BCR 25
|
||||
|
||||
/* GCC power domains */
|
||||
#define PCIE_0_GDSC 0
|
||||
#define PCIE_0_PHY_GDSC 1
|
||||
#define USB30_PRIM_GDSC 2
|
||||
|
||||
#endif
|
@ -168,5 +168,7 @@
|
||||
#define RPM_SMD_MSS_CFG_AHB_CLK 122
|
||||
#define RPM_SMD_MSS_CFG_AHB_A_CLK 123
|
||||
#define RPM_SMD_BIMC_FREQ_LOG 124
|
||||
#define RPM_SMD_LN_BB_CLK_PIN 125
|
||||
#define RPM_SMD_LN_BB_A_CLK_PIN 126
|
||||
|
||||
#endif
|
||||
|
320
include/dt-bindings/clock/qcom,sa8775p-gcc.h
Normal file
320
include/dt-bindings/clock/qcom,sa8775p-gcc.h
Normal file
@ -0,0 +1,320 @@
|
||||
/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
|
||||
/*
|
||||
* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
* Copyright (c) 2023, Linaro Limited
|
||||
*/
|
||||
|
||||
#ifndef _DT_BINDINGS_CLK_QCOM_GCC_SA8775P_H
|
||||
#define _DT_BINDINGS_CLK_QCOM_GCC_SA8775P_H
|
||||
|
||||
/* GCC clocks */
|
||||
#define GCC_GPLL0 0
|
||||
#define GCC_GPLL0_OUT_EVEN 1
|
||||
#define GCC_GPLL1 2
|
||||
#define GCC_GPLL4 3
|
||||
#define GCC_GPLL5 4
|
||||
#define GCC_GPLL7 5
|
||||
#define GCC_GPLL9 6
|
||||
#define GCC_AGGRE_NOC_QUPV3_AXI_CLK 7
|
||||
#define GCC_AGGRE_UFS_CARD_AXI_CLK 8
|
||||
#define GCC_AGGRE_UFS_PHY_AXI_CLK 9
|
||||
#define GCC_AGGRE_USB2_PRIM_AXI_CLK 10
|
||||
#define GCC_AGGRE_USB3_PRIM_AXI_CLK 11
|
||||
#define GCC_AGGRE_USB3_SEC_AXI_CLK 12
|
||||
#define GCC_AHB2PHY0_CLK 13
|
||||
#define GCC_AHB2PHY2_CLK 14
|
||||
#define GCC_AHB2PHY3_CLK 15
|
||||
#define GCC_BOOT_ROM_AHB_CLK 16
|
||||
#define GCC_CAMERA_AHB_CLK 17
|
||||
#define GCC_CAMERA_HF_AXI_CLK 18
|
||||
#define GCC_CAMERA_SF_AXI_CLK 19
|
||||
#define GCC_CAMERA_THROTTLE_XO_CLK 20
|
||||
#define GCC_CAMERA_XO_CLK 21
|
||||
#define GCC_CFG_NOC_USB2_PRIM_AXI_CLK 22
|
||||
#define GCC_CFG_NOC_USB3_PRIM_AXI_CLK 23
|
||||
#define GCC_CFG_NOC_USB3_SEC_AXI_CLK 24
|
||||
#define GCC_DDRSS_GPU_AXI_CLK 25
|
||||
#define GCC_DISP1_AHB_CLK 26
|
||||
#define GCC_DISP1_HF_AXI_CLK 27
|
||||
#define GCC_DISP1_XO_CLK 28
|
||||
#define GCC_DISP_AHB_CLK 29
|
||||
#define GCC_DISP_HF_AXI_CLK 30
|
||||
#define GCC_DISP_XO_CLK 31
|
||||
#define GCC_EDP_REF_CLKREF_EN 32
|
||||
#define GCC_EMAC0_AXI_CLK 33
|
||||
#define GCC_EMAC0_PHY_AUX_CLK 34
|
||||
#define GCC_EMAC0_PHY_AUX_CLK_SRC 35
|
||||
#define GCC_EMAC0_PTP_CLK 36
|
||||
#define GCC_EMAC0_PTP_CLK_SRC 37
|
||||
#define GCC_EMAC0_RGMII_CLK 38
|
||||
#define GCC_EMAC0_RGMII_CLK_SRC 39
|
||||
#define GCC_EMAC0_SLV_AHB_CLK 40
|
||||
#define GCC_EMAC1_AXI_CLK 41
|
||||
#define GCC_EMAC1_PHY_AUX_CLK 42
|
||||
#define GCC_EMAC1_PHY_AUX_CLK_SRC 43
|
||||
#define GCC_EMAC1_PTP_CLK 44
|
||||
#define GCC_EMAC1_PTP_CLK_SRC 45
|
||||
#define GCC_EMAC1_RGMII_CLK 46
|
||||
#define GCC_EMAC1_RGMII_CLK_SRC 47
|
||||
#define GCC_EMAC1_SLV_AHB_CLK 48
|
||||
#define GCC_GP1_CLK 49
|
||||
#define GCC_GP1_CLK_SRC 50
|
||||
#define GCC_GP2_CLK 51
|
||||
#define GCC_GP2_CLK_SRC 52
|
||||
#define GCC_GP3_CLK 53
|
||||
#define GCC_GP3_CLK_SRC 54
|
||||
#define GCC_GP4_CLK 55
|
||||
#define GCC_GP4_CLK_SRC 56
|
||||
#define GCC_GP5_CLK 57
|
||||
#define GCC_GP5_CLK_SRC 58
|
||||
#define GCC_GPU_CFG_AHB_CLK 59
|
||||
#define GCC_GPU_GPLL0_CLK_SRC 60
|
||||
#define GCC_GPU_GPLL0_DIV_CLK_SRC 61
|
||||
#define GCC_GPU_MEMNOC_GFX_CLK 62
|
||||
#define GCC_GPU_SNOC_DVM_GFX_CLK 63
|
||||
#define GCC_GPU_TCU_THROTTLE_AHB_CLK 64
|
||||
#define GCC_GPU_TCU_THROTTLE_CLK 65
|
||||
#define GCC_PCIE_0_AUX_CLK 66
|
||||
#define GCC_PCIE_0_AUX_CLK_SRC 67
|
||||
#define GCC_PCIE_0_CFG_AHB_CLK 68
|
||||
#define GCC_PCIE_0_MSTR_AXI_CLK 69
|
||||
#define GCC_PCIE_0_PHY_AUX_CLK 70
|
||||
#define GCC_PCIE_0_PHY_AUX_CLK_SRC 71
|
||||
#define GCC_PCIE_0_PHY_RCHNG_CLK 72
|
||||
#define GCC_PCIE_0_PHY_RCHNG_CLK_SRC 73
|
||||
#define GCC_PCIE_0_PIPE_CLK 74
|
||||
#define GCC_PCIE_0_PIPE_CLK_SRC 75
|
||||
#define GCC_PCIE_0_PIPE_DIV_CLK_SRC 76
|
||||
#define GCC_PCIE_0_PIPEDIV2_CLK 77
|
||||
#define GCC_PCIE_0_SLV_AXI_CLK 78
|
||||
#define GCC_PCIE_0_SLV_Q2A_AXI_CLK 79
|
||||
#define GCC_PCIE_1_AUX_CLK 80
|
||||
#define GCC_PCIE_1_AUX_CLK_SRC 81
|
||||
#define GCC_PCIE_1_CFG_AHB_CLK 82
|
||||
#define GCC_PCIE_1_MSTR_AXI_CLK 83
|
||||
#define GCC_PCIE_1_PHY_AUX_CLK 84
|
||||
#define GCC_PCIE_1_PHY_AUX_CLK_SRC 85
|
||||
#define GCC_PCIE_1_PHY_RCHNG_CLK 86
|
||||
#define GCC_PCIE_1_PHY_RCHNG_CLK_SRC 87
|
||||
#define GCC_PCIE_1_PIPE_CLK 88
|
||||
#define GCC_PCIE_1_PIPE_CLK_SRC 89
|
||||
#define GCC_PCIE_1_PIPE_DIV_CLK_SRC 90
|
||||
#define GCC_PCIE_1_PIPEDIV2_CLK 91
|
||||
#define GCC_PCIE_1_SLV_AXI_CLK 92
|
||||
#define GCC_PCIE_1_SLV_Q2A_AXI_CLK 93
|
||||
#define GCC_PCIE_CLKREF_EN 94
|
||||
#define GCC_PCIE_THROTTLE_CFG_CLK 95
|
||||
#define GCC_PDM2_CLK 96
|
||||
#define GCC_PDM2_CLK_SRC 97
|
||||
#define GCC_PDM_AHB_CLK 98
|
||||
#define GCC_PDM_XO4_CLK 99
|
||||
#define GCC_QMIP_CAMERA_NRT_AHB_CLK 100
|
||||
#define GCC_QMIP_CAMERA_RT_AHB_CLK 101
|
||||
#define GCC_QMIP_DISP1_AHB_CLK 102
|
||||
#define GCC_QMIP_DISP1_ROT_AHB_CLK 103
|
||||
#define GCC_QMIP_DISP_AHB_CLK 104
|
||||
#define GCC_QMIP_DISP_ROT_AHB_CLK 105
|
||||
#define GCC_QMIP_VIDEO_CVP_AHB_CLK 106
|
||||
#define GCC_QMIP_VIDEO_VCODEC_AHB_CLK 107
|
||||
#define GCC_QMIP_VIDEO_VCPU_AHB_CLK 108
|
||||
#define GCC_QUPV3_WRAP0_CORE_2X_CLK 109
|
||||
#define GCC_QUPV3_WRAP0_CORE_CLK 110
|
||||
#define GCC_QUPV3_WRAP0_S0_CLK 111
|
||||
#define GCC_QUPV3_WRAP0_S0_CLK_SRC 112
|
||||
#define GCC_QUPV3_WRAP0_S1_CLK 113
|
||||
#define GCC_QUPV3_WRAP0_S1_CLK_SRC 114
|
||||
#define GCC_QUPV3_WRAP0_S2_CLK 115
|
||||
#define GCC_QUPV3_WRAP0_S2_CLK_SRC 116
|
||||
#define GCC_QUPV3_WRAP0_S3_CLK 117
|
||||
#define GCC_QUPV3_WRAP0_S3_CLK_SRC 118
|
||||
#define GCC_QUPV3_WRAP0_S4_CLK 119
|
||||
#define GCC_QUPV3_WRAP0_S4_CLK_SRC 120
|
||||
#define GCC_QUPV3_WRAP0_S5_CLK 121
|
||||
#define GCC_QUPV3_WRAP0_S5_CLK_SRC 122
|
||||
#define GCC_QUPV3_WRAP0_S6_CLK 123
|
||||
#define GCC_QUPV3_WRAP0_S6_CLK_SRC 124
|
||||
#define GCC_QUPV3_WRAP1_CORE_2X_CLK 125
|
||||
#define GCC_QUPV3_WRAP1_CORE_CLK 126
|
||||
#define GCC_QUPV3_WRAP1_S0_CLK 127
|
||||
#define GCC_QUPV3_WRAP1_S0_CLK_SRC 128
|
||||
#define GCC_QUPV3_WRAP1_S1_CLK 129
|
||||
#define GCC_QUPV3_WRAP1_S1_CLK_SRC 130
|
||||
#define GCC_QUPV3_WRAP1_S2_CLK 131
|
||||
#define GCC_QUPV3_WRAP1_S2_CLK_SRC 132
|
||||
#define GCC_QUPV3_WRAP1_S3_CLK 133
|
||||
#define GCC_QUPV3_WRAP1_S3_CLK_SRC 134
|
||||
#define GCC_QUPV3_WRAP1_S4_CLK 135
|
||||
#define GCC_QUPV3_WRAP1_S4_CLK_SRC 136
|
||||
#define GCC_QUPV3_WRAP1_S5_CLK 137
|
||||
#define GCC_QUPV3_WRAP1_S5_CLK_SRC 138
|
||||
#define GCC_QUPV3_WRAP1_S6_CLK 139
|
||||
#define GCC_QUPV3_WRAP1_S6_CLK_SRC 140
|
||||
#define GCC_QUPV3_WRAP2_CORE_2X_CLK 141
|
||||
#define GCC_QUPV3_WRAP2_CORE_CLK 142
|
||||
#define GCC_QUPV3_WRAP2_S0_CLK 143
|
||||
#define GCC_QUPV3_WRAP2_S0_CLK_SRC 144
|
||||
#define GCC_QUPV3_WRAP2_S1_CLK 145
|
||||
#define GCC_QUPV3_WRAP2_S1_CLK_SRC 146
|
||||
#define GCC_QUPV3_WRAP2_S2_CLK 147
|
||||
#define GCC_QUPV3_WRAP2_S2_CLK_SRC 148
|
||||
#define GCC_QUPV3_WRAP2_S3_CLK 149
|
||||
#define GCC_QUPV3_WRAP2_S3_CLK_SRC 150
|
||||
#define GCC_QUPV3_WRAP2_S4_CLK 151
|
||||
#define GCC_QUPV3_WRAP2_S4_CLK_SRC 152
|
||||
#define GCC_QUPV3_WRAP2_S5_CLK 153
|
||||
#define GCC_QUPV3_WRAP2_S5_CLK_SRC 154
|
||||
#define GCC_QUPV3_WRAP2_S6_CLK 155
|
||||
#define GCC_QUPV3_WRAP2_S6_CLK_SRC 156
|
||||
#define GCC_QUPV3_WRAP3_CORE_2X_CLK 157
|
||||
#define GCC_QUPV3_WRAP3_CORE_CLK 158
|
||||
#define GCC_QUPV3_WRAP3_QSPI_CLK 159
|
||||
#define GCC_QUPV3_WRAP3_S0_CLK 160
|
||||
#define GCC_QUPV3_WRAP3_S0_CLK_SRC 161
|
||||
#define GCC_QUPV3_WRAP3_S0_DIV_CLK_SRC 162
|
||||
#define GCC_QUPV3_WRAP_0_M_AHB_CLK 163
|
||||
#define GCC_QUPV3_WRAP_0_S_AHB_CLK 164
|
||||
#define GCC_QUPV3_WRAP_1_M_AHB_CLK 165
|
||||
#define GCC_QUPV3_WRAP_1_S_AHB_CLK 166
|
||||
#define GCC_QUPV3_WRAP_2_M_AHB_CLK 167
|
||||
#define GCC_QUPV3_WRAP_2_S_AHB_CLK 168
|
||||
#define GCC_QUPV3_WRAP_3_M_AHB_CLK 169
|
||||
#define GCC_QUPV3_WRAP_3_S_AHB_CLK 170
|
||||
#define GCC_SDCC1_AHB_CLK 171
|
||||
#define GCC_SDCC1_APPS_CLK 172
|
||||
#define GCC_SDCC1_APPS_CLK_SRC 173
|
||||
#define GCC_SDCC1_ICE_CORE_CLK 174
|
||||
#define GCC_SDCC1_ICE_CORE_CLK_SRC 175
|
||||
#define GCC_SGMI_CLKREF_EN 176
|
||||
#define GCC_TSCSS_AHB_CLK 177
|
||||
#define GCC_TSCSS_CNTR_CLK_SRC 178
|
||||
#define GCC_TSCSS_ETU_CLK 179
|
||||
#define GCC_TSCSS_GLOBAL_CNTR_CLK 180
|
||||
#define GCC_UFS_CARD_AHB_CLK 181
|
||||
#define GCC_UFS_CARD_AXI_CLK 182
|
||||
#define GCC_UFS_CARD_AXI_CLK_SRC 183
|
||||
#define GCC_UFS_CARD_ICE_CORE_CLK 184
|
||||
#define GCC_UFS_CARD_ICE_CORE_CLK_SRC 185
|
||||
#define GCC_UFS_CARD_PHY_AUX_CLK 186
|
||||
#define GCC_UFS_CARD_PHY_AUX_CLK_SRC 187
|
||||
#define GCC_UFS_CARD_RX_SYMBOL_0_CLK 188
|
||||
#define GCC_UFS_CARD_RX_SYMBOL_0_CLK_SRC 189
|
||||
#define GCC_UFS_CARD_RX_SYMBOL_1_CLK 190
|
||||
#define GCC_UFS_CARD_RX_SYMBOL_1_CLK_SRC 191
|
||||
#define GCC_UFS_CARD_TX_SYMBOL_0_CLK 192
|
||||
#define GCC_UFS_CARD_TX_SYMBOL_0_CLK_SRC 193
|
||||
#define GCC_UFS_CARD_UNIPRO_CORE_CLK 194
|
||||
#define GCC_UFS_CARD_UNIPRO_CORE_CLK_SRC 195
|
||||
#define GCC_UFS_PHY_AHB_CLK 196
|
||||
#define GCC_UFS_PHY_AXI_CLK 197
|
||||
#define GCC_UFS_PHY_AXI_CLK_SRC 198
|
||||
#define GCC_UFS_PHY_ICE_CORE_CLK 199
|
||||
#define GCC_UFS_PHY_ICE_CORE_CLK_SRC 200
|
||||
#define GCC_UFS_PHY_PHY_AUX_CLK 201
|
||||
#define GCC_UFS_PHY_PHY_AUX_CLK_SRC 202
|
||||
#define GCC_UFS_PHY_RX_SYMBOL_0_CLK 203
|
||||
#define GCC_UFS_PHY_RX_SYMBOL_0_CLK_SRC 204
|
||||
#define GCC_UFS_PHY_RX_SYMBOL_1_CLK 205
|
||||
#define GCC_UFS_PHY_RX_SYMBOL_1_CLK_SRC 206
|
||||
#define GCC_UFS_PHY_TX_SYMBOL_0_CLK 207
|
||||
#define GCC_UFS_PHY_TX_SYMBOL_0_CLK_SRC 208
|
||||
#define GCC_UFS_PHY_UNIPRO_CORE_CLK 209
|
||||
#define GCC_UFS_PHY_UNIPRO_CORE_CLK_SRC 210
|
||||
#define GCC_USB20_MASTER_CLK 211
|
||||
#define GCC_USB20_MASTER_CLK_SRC 212
|
||||
#define GCC_USB20_MOCK_UTMI_CLK 213
|
||||
#define GCC_USB20_MOCK_UTMI_CLK_SRC 214
|
||||
#define GCC_USB20_MOCK_UTMI_POSTDIV_CLK_SRC 215
|
||||
#define GCC_USB20_SLEEP_CLK 216
|
||||
#define GCC_USB30_PRIM_MASTER_CLK 217
|
||||
#define GCC_USB30_PRIM_MASTER_CLK_SRC 218
|
||||
#define GCC_USB30_PRIM_MOCK_UTMI_CLK 219
|
||||
#define GCC_USB30_PRIM_MOCK_UTMI_CLK_SRC 220
|
||||
#define GCC_USB30_PRIM_MOCK_UTMI_POSTDIV_CLK_SRC 221
|
||||
#define GCC_USB30_PRIM_SLEEP_CLK 222
|
||||
#define GCC_USB30_SEC_MASTER_CLK 223
|
||||
#define GCC_USB30_SEC_MASTER_CLK_SRC 224
|
||||
#define GCC_USB30_SEC_MOCK_UTMI_CLK 225
|
||||
#define GCC_USB30_SEC_MOCK_UTMI_CLK_SRC 226
|
||||
#define GCC_USB30_SEC_MOCK_UTMI_POSTDIV_CLK_SRC 227
|
||||
#define GCC_USB30_SEC_SLEEP_CLK 228
|
||||
#define GCC_USB3_PRIM_PHY_AUX_CLK 229
|
||||
#define GCC_USB3_PRIM_PHY_AUX_CLK_SRC 230
|
||||
#define GCC_USB3_PRIM_PHY_COM_AUX_CLK 231
|
||||
#define GCC_USB3_PRIM_PHY_PIPE_CLK 232
|
||||
#define GCC_USB3_PRIM_PHY_PIPE_CLK_SRC 233
|
||||
#define GCC_USB3_SEC_PHY_AUX_CLK 234
|
||||
#define GCC_USB3_SEC_PHY_AUX_CLK_SRC 235
|
||||
#define GCC_USB3_SEC_PHY_COM_AUX_CLK 236
|
||||
#define GCC_USB3_SEC_PHY_PIPE_CLK 237
|
||||
#define GCC_USB3_SEC_PHY_PIPE_CLK_SRC 238
|
||||
#define GCC_USB_CLKREF_EN 239
|
||||
#define GCC_VIDEO_AHB_CLK 240
|
||||
#define GCC_VIDEO_AXI0_CLK 241
|
||||
#define GCC_VIDEO_AXI1_CLK 242
|
||||
#define GCC_VIDEO_XO_CLK 243
|
||||
#define GCC_AGGRE_UFS_PHY_AXI_HW_CTL_CLK 244
|
||||
#define GCC_UFS_PHY_AXI_HW_CTL_CLK 245
|
||||
#define GCC_UFS_PHY_ICE_CORE_HW_CTL_CLK 246
|
||||
#define GCC_UFS_PHY_PHY_AUX_HW_CTL_CLK 247
|
||||
#define GCC_UFS_PHY_UNIPRO_CORE_HW_CTL_CLK 248
|
||||
|
||||
/* GCC resets */
|
||||
#define GCC_CAMERA_BCR 0
|
||||
#define GCC_DISPLAY1_BCR 1
|
||||
#define GCC_DISPLAY_BCR 2
|
||||
#define GCC_EMAC0_BCR 3
|
||||
#define GCC_EMAC1_BCR 4
|
||||
#define GCC_GPU_BCR 5
|
||||
#define GCC_MMSS_BCR 6
|
||||
#define GCC_PCIE_0_BCR 7
|
||||
#define GCC_PCIE_0_LINK_DOWN_BCR 8
|
||||
#define GCC_PCIE_0_NOCSR_COM_PHY_BCR 9
|
||||
#define GCC_PCIE_0_PHY_BCR 10
|
||||
#define GCC_PCIE_0_PHY_NOCSR_COM_PHY_BCR 11
|
||||
#define GCC_PCIE_1_BCR 12
|
||||
#define GCC_PCIE_1_LINK_DOWN_BCR 13
|
||||
#define GCC_PCIE_1_NOCSR_COM_PHY_BCR 14
|
||||
#define GCC_PCIE_1_PHY_BCR 15
|
||||
#define GCC_PCIE_1_PHY_NOCSR_COM_PHY_BCR 16
|
||||
#define GCC_PDM_BCR 17
|
||||
#define GCC_QUPV3_WRAPPER_0_BCR 18
|
||||
#define GCC_QUPV3_WRAPPER_1_BCR 19
|
||||
#define GCC_QUPV3_WRAPPER_2_BCR 20
|
||||
#define GCC_QUPV3_WRAPPER_3_BCR 21
|
||||
#define GCC_SDCC1_BCR 22
|
||||
#define GCC_TSCSS_BCR 23
|
||||
#define GCC_UFS_CARD_BCR 24
|
||||
#define GCC_UFS_PHY_BCR 25
|
||||
#define GCC_USB20_PRIM_BCR 26
|
||||
#define GCC_USB2_PHY_PRIM_BCR 27
|
||||
#define GCC_USB2_PHY_SEC_BCR 28
|
||||
#define GCC_USB30_PRIM_BCR 29
|
||||
#define GCC_USB30_SEC_BCR 30
|
||||
#define GCC_USB3_DP_PHY_PRIM_BCR 31
|
||||
#define GCC_USB3_DP_PHY_SEC_BCR 32
|
||||
#define GCC_USB3_PHY_PRIM_BCR 33
|
||||
#define GCC_USB3_PHY_SEC_BCR 34
|
||||
#define GCC_USB3_PHY_TERT_BCR 35
|
||||
#define GCC_USB3_UNIPHY_MP0_BCR 36
|
||||
#define GCC_USB3_UNIPHY_MP1_BCR 37
|
||||
#define GCC_USB3PHY_PHY_PRIM_BCR 38
|
||||
#define GCC_USB3PHY_PHY_SEC_BCR 39
|
||||
#define GCC_USB3UNIPHY_PHY_MP0_BCR 40
|
||||
#define GCC_USB3UNIPHY_PHY_MP1_BCR 41
|
||||
#define GCC_USB_PHY_CFG_AHB2PHY_BCR 42
|
||||
#define GCC_VIDEO_BCR 43
|
||||
#define GCC_VIDEO_AXI0_CLK_ARES 44
|
||||
#define GCC_VIDEO_AXI1_CLK_ARES 45
|
||||
|
||||
/* GCC GDSCs */
|
||||
#define PCIE_0_GDSC 0
|
||||
#define PCIE_1_GDSC 1
|
||||
#define UFS_CARD_GDSC 2
|
||||
#define UFS_PHY_GDSC 3
|
||||
#define USB20_PRIM_GDSC 4
|
||||
#define USB30_PRIM_GDSC 5
|
||||
#define USB30_SEC_GDSC 6
|
||||
#define EMAC0_GDSC 7
|
||||
#define EMAC1_GDSC 8
|
||||
|
||||
#endif /* _DT_BINDINGS_CLK_QCOM_GCC_SA8775P_H */
|
109
include/dt-bindings/clock/qcom,sm6350-camcc.h
Normal file
109
include/dt-bindings/clock/qcom,sm6350-camcc.h
Normal file
@ -0,0 +1,109 @@
|
||||
/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
|
||||
/*
|
||||
* Copyright (c) 2022, The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2022, Linaro Limited
|
||||
*/
|
||||
|
||||
#ifndef _DT_BINDINGS_CLK_QCOM_CAMCC_SM6350_H
|
||||
#define _DT_BINDINGS_CLK_QCOM_CAMCC_SM6350_H
|
||||
|
||||
/* CAMCC clocks */
|
||||
#define CAMCC_PLL2_OUT_EARLY 0
|
||||
#define CAMCC_PLL0 1
|
||||
#define CAMCC_PLL0_OUT_EVEN 2
|
||||
#define CAMCC_PLL1 3
|
||||
#define CAMCC_PLL1_OUT_EVEN 4
|
||||
#define CAMCC_PLL2 5
|
||||
#define CAMCC_PLL2_OUT_MAIN 6
|
||||
#define CAMCC_PLL3 7
|
||||
#define CAMCC_BPS_AHB_CLK 8
|
||||
#define CAMCC_BPS_AREG_CLK 9
|
||||
#define CAMCC_BPS_AXI_CLK 10
|
||||
#define CAMCC_BPS_CLK 11
|
||||
#define CAMCC_BPS_CLK_SRC 12
|
||||
#define CAMCC_CAMNOC_ATB_CLK 13
|
||||
#define CAMCC_CAMNOC_AXI_CLK 14
|
||||
#define CAMCC_CCI_0_CLK 15
|
||||
#define CAMCC_CCI_0_CLK_SRC 16
|
||||
#define CAMCC_CCI_1_CLK 17
|
||||
#define CAMCC_CCI_1_CLK_SRC 18
|
||||
#define CAMCC_CORE_AHB_CLK 19
|
||||
#define CAMCC_CPAS_AHB_CLK 20
|
||||
#define CAMCC_CPHY_RX_CLK_SRC 21
|
||||
#define CAMCC_CSI0PHYTIMER_CLK 22
|
||||
#define CAMCC_CSI0PHYTIMER_CLK_SRC 23
|
||||
#define CAMCC_CSI1PHYTIMER_CLK 24
|
||||
#define CAMCC_CSI1PHYTIMER_CLK_SRC 25
|
||||
#define CAMCC_CSI2PHYTIMER_CLK 26
|
||||
#define CAMCC_CSI2PHYTIMER_CLK_SRC 27
|
||||
#define CAMCC_CSI3PHYTIMER_CLK 28
|
||||
#define CAMCC_CSI3PHYTIMER_CLK_SRC 29
|
||||
#define CAMCC_CSIPHY0_CLK 30
|
||||
#define CAMCC_CSIPHY1_CLK 31
|
||||
#define CAMCC_CSIPHY2_CLK 32
|
||||
#define CAMCC_CSIPHY3_CLK 33
|
||||
#define CAMCC_FAST_AHB_CLK_SRC 34
|
||||
#define CAMCC_ICP_APB_CLK 35
|
||||
#define CAMCC_ICP_ATB_CLK 36
|
||||
#define CAMCC_ICP_CLK 37
|
||||
#define CAMCC_ICP_CLK_SRC 38
|
||||
#define CAMCC_ICP_CTI_CLK 39
|
||||
#define CAMCC_ICP_TS_CLK 40
|
||||
#define CAMCC_IFE_0_AXI_CLK 41
|
||||
#define CAMCC_IFE_0_CLK 42
|
||||
#define CAMCC_IFE_0_CLK_SRC 43
|
||||
#define CAMCC_IFE_0_CPHY_RX_CLK 44
|
||||
#define CAMCC_IFE_0_CSID_CLK 45
|
||||
#define CAMCC_IFE_0_CSID_CLK_SRC 46
|
||||
#define CAMCC_IFE_0_DSP_CLK 47
|
||||
#define CAMCC_IFE_1_AXI_CLK 48
|
||||
#define CAMCC_IFE_1_CLK 49
|
||||
#define CAMCC_IFE_1_CLK_SRC 50
|
||||
#define CAMCC_IFE_1_CPHY_RX_CLK 51
|
||||
#define CAMCC_IFE_1_CSID_CLK 52
|
||||
#define CAMCC_IFE_1_CSID_CLK_SRC 53
|
||||
#define CAMCC_IFE_1_DSP_CLK 54
|
||||
#define CAMCC_IFE_2_AXI_CLK 55
|
||||
#define CAMCC_IFE_2_CLK 56
|
||||
#define CAMCC_IFE_2_CLK_SRC 57
|
||||
#define CAMCC_IFE_2_CPHY_RX_CLK 58
|
||||
#define CAMCC_IFE_2_CSID_CLK 59
|
||||
#define CAMCC_IFE_2_CSID_CLK_SRC 60
|
||||
#define CAMCC_IFE_2_DSP_CLK 61
|
||||
#define CAMCC_IFE_LITE_CLK 62
|
||||
#define CAMCC_IFE_LITE_CLK_SRC 63
|
||||
#define CAMCC_IFE_LITE_CPHY_RX_CLK 64
|
||||
#define CAMCC_IFE_LITE_CSID_CLK 65
|
||||
#define CAMCC_IFE_LITE_CSID_CLK_SRC 66
|
||||
#define CAMCC_IPE_0_AHB_CLK 67
|
||||
#define CAMCC_IPE_0_AREG_CLK 68
|
||||
#define CAMCC_IPE_0_AXI_CLK 69
|
||||
#define CAMCC_IPE_0_CLK 70
|
||||
#define CAMCC_IPE_0_CLK_SRC 71
|
||||
#define CAMCC_JPEG_CLK 72
|
||||
#define CAMCC_JPEG_CLK_SRC 73
|
||||
#define CAMCC_LRME_CLK 74
|
||||
#define CAMCC_LRME_CLK_SRC 75
|
||||
#define CAMCC_MCLK0_CLK 76
|
||||
#define CAMCC_MCLK0_CLK_SRC 77
|
||||
#define CAMCC_MCLK1_CLK 78
|
||||
#define CAMCC_MCLK1_CLK_SRC 79
|
||||
#define CAMCC_MCLK2_CLK 80
|
||||
#define CAMCC_MCLK2_CLK_SRC 81
|
||||
#define CAMCC_MCLK3_CLK 82
|
||||
#define CAMCC_MCLK3_CLK_SRC 83
|
||||
#define CAMCC_MCLK4_CLK 84
|
||||
#define CAMCC_MCLK4_CLK_SRC 85
|
||||
#define CAMCC_SLOW_AHB_CLK_SRC 86
|
||||
#define CAMCC_SOC_AHB_CLK 87
|
||||
#define CAMCC_SYS_TMR_CLK 88
|
||||
|
||||
/* GDSCs */
|
||||
#define BPS_GDSC 0
|
||||
#define IPE_0_GDSC 1
|
||||
#define IFE_0_GDSC 2
|
||||
#define IFE_1_GDSC 3
|
||||
#define IFE_2_GDSC 4
|
||||
#define TITAN_TOP_GDSC 5
|
||||
|
||||
#endif
|
101
include/dt-bindings/clock/qcom,sm8550-dispcc.h
Normal file
101
include/dt-bindings/clock/qcom,sm8550-dispcc.h
Normal file
@ -0,0 +1,101 @@
|
||||
/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
|
||||
/*
|
||||
* Copyright (c) 2022, The Linux Foundation. All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef _DT_BINDINGS_CLK_QCOM_SM8550_DISP_CC_H
|
||||
#define _DT_BINDINGS_CLK_QCOM_SM8550_DISP_CC_H
|
||||
|
||||
/* DISP_CC clocks */
|
||||
#define DISP_CC_MDSS_ACCU_CLK 0
|
||||
#define DISP_CC_MDSS_AHB1_CLK 1
|
||||
#define DISP_CC_MDSS_AHB_CLK 2
|
||||
#define DISP_CC_MDSS_AHB_CLK_SRC 3
|
||||
#define DISP_CC_MDSS_BYTE0_CLK 4
|
||||
#define DISP_CC_MDSS_BYTE0_CLK_SRC 5
|
||||
#define DISP_CC_MDSS_BYTE0_DIV_CLK_SRC 6
|
||||
#define DISP_CC_MDSS_BYTE0_INTF_CLK 7
|
||||
#define DISP_CC_MDSS_BYTE1_CLK 8
|
||||
#define DISP_CC_MDSS_BYTE1_CLK_SRC 9
|
||||
#define DISP_CC_MDSS_BYTE1_DIV_CLK_SRC 10
|
||||
#define DISP_CC_MDSS_BYTE1_INTF_CLK 11
|
||||
#define DISP_CC_MDSS_DPTX0_AUX_CLK 12
|
||||
#define DISP_CC_MDSS_DPTX0_AUX_CLK_SRC 13
|
||||
#define DISP_CC_MDSS_DPTX0_CRYPTO_CLK 14
|
||||
#define DISP_CC_MDSS_DPTX0_LINK_CLK 15
|
||||
#define DISP_CC_MDSS_DPTX0_LINK_CLK_SRC 16
|
||||
#define DISP_CC_MDSS_DPTX0_LINK_DIV_CLK_SRC 17
|
||||
#define DISP_CC_MDSS_DPTX0_LINK_INTF_CLK 18
|
||||
#define DISP_CC_MDSS_DPTX0_PIXEL0_CLK 19
|
||||
#define DISP_CC_MDSS_DPTX0_PIXEL0_CLK_SRC 20
|
||||
#define DISP_CC_MDSS_DPTX0_PIXEL1_CLK 21
|
||||
#define DISP_CC_MDSS_DPTX0_PIXEL1_CLK_SRC 22
|
||||
#define DISP_CC_MDSS_DPTX0_USB_ROUTER_LINK_INTF_CLK 23
|
||||
#define DISP_CC_MDSS_DPTX1_AUX_CLK 24
|
||||
#define DISP_CC_MDSS_DPTX1_AUX_CLK_SRC 25
|
||||
#define DISP_CC_MDSS_DPTX1_CRYPTO_CLK 26
|
||||
#define DISP_CC_MDSS_DPTX1_LINK_CLK 27
|
||||
#define DISP_CC_MDSS_DPTX1_LINK_CLK_SRC 28
|
||||
#define DISP_CC_MDSS_DPTX1_LINK_DIV_CLK_SRC 29
|
||||
#define DISP_CC_MDSS_DPTX1_LINK_INTF_CLK 30
|
||||
#define DISP_CC_MDSS_DPTX1_PIXEL0_CLK 31
|
||||
#define DISP_CC_MDSS_DPTX1_PIXEL0_CLK_SRC 32
|
||||
#define DISP_CC_MDSS_DPTX1_PIXEL1_CLK 33
|
||||
#define DISP_CC_MDSS_DPTX1_PIXEL1_CLK_SRC 34
|
||||
#define DISP_CC_MDSS_DPTX1_USB_ROUTER_LINK_INTF_CLK 35
|
||||
#define DISP_CC_MDSS_DPTX2_AUX_CLK 36
|
||||
#define DISP_CC_MDSS_DPTX2_AUX_CLK_SRC 37
|
||||
#define DISP_CC_MDSS_DPTX2_CRYPTO_CLK 38
|
||||
#define DISP_CC_MDSS_DPTX2_LINK_CLK 39
|
||||
#define DISP_CC_MDSS_DPTX2_LINK_CLK_SRC 40
|
||||
#define DISP_CC_MDSS_DPTX2_LINK_DIV_CLK_SRC 41
|
||||
#define DISP_CC_MDSS_DPTX2_LINK_INTF_CLK 42
|
||||
#define DISP_CC_MDSS_DPTX2_PIXEL0_CLK 43
|
||||
#define DISP_CC_MDSS_DPTX2_PIXEL0_CLK_SRC 44
|
||||
#define DISP_CC_MDSS_DPTX2_PIXEL1_CLK 45
|
||||
#define DISP_CC_MDSS_DPTX2_PIXEL1_CLK_SRC 46
|
||||
#define DISP_CC_MDSS_DPTX3_AUX_CLK 47
|
||||
#define DISP_CC_MDSS_DPTX3_AUX_CLK_SRC 48
|
||||
#define DISP_CC_MDSS_DPTX3_CRYPTO_CLK 49
|
||||
#define DISP_CC_MDSS_DPTX3_LINK_CLK 50
|
||||
#define DISP_CC_MDSS_DPTX3_LINK_CLK_SRC 51
|
||||
#define DISP_CC_MDSS_DPTX3_LINK_DIV_CLK_SRC 52
|
||||
#define DISP_CC_MDSS_DPTX3_LINK_INTF_CLK 53
|
||||
#define DISP_CC_MDSS_DPTX3_PIXEL0_CLK 54
|
||||
#define DISP_CC_MDSS_DPTX3_PIXEL0_CLK_SRC 55
|
||||
#define DISP_CC_MDSS_ESC0_CLK 56
|
||||
#define DISP_CC_MDSS_ESC0_CLK_SRC 57
|
||||
#define DISP_CC_MDSS_ESC1_CLK 58
|
||||
#define DISP_CC_MDSS_ESC1_CLK_SRC 59
|
||||
#define DISP_CC_MDSS_MDP1_CLK 60
|
||||
#define DISP_CC_MDSS_MDP_CLK 61
|
||||
#define DISP_CC_MDSS_MDP_CLK_SRC 62
|
||||
#define DISP_CC_MDSS_MDP_LUT1_CLK 63
|
||||
#define DISP_CC_MDSS_MDP_LUT_CLK 64
|
||||
#define DISP_CC_MDSS_NON_GDSC_AHB_CLK 65
|
||||
#define DISP_CC_MDSS_PCLK0_CLK 66
|
||||
#define DISP_CC_MDSS_PCLK0_CLK_SRC 67
|
||||
#define DISP_CC_MDSS_PCLK1_CLK 68
|
||||
#define DISP_CC_MDSS_PCLK1_CLK_SRC 69
|
||||
#define DISP_CC_MDSS_RSCC_AHB_CLK 70
|
||||
#define DISP_CC_MDSS_RSCC_VSYNC_CLK 71
|
||||
#define DISP_CC_MDSS_VSYNC1_CLK 72
|
||||
#define DISP_CC_MDSS_VSYNC_CLK 73
|
||||
#define DISP_CC_MDSS_VSYNC_CLK_SRC 74
|
||||
#define DISP_CC_PLL0 75
|
||||
#define DISP_CC_PLL1 76
|
||||
#define DISP_CC_SLEEP_CLK 77
|
||||
#define DISP_CC_SLEEP_CLK_SRC 78
|
||||
#define DISP_CC_XO_CLK 79
|
||||
#define DISP_CC_XO_CLK_SRC 80
|
||||
|
||||
/* DISP_CC resets */
|
||||
#define DISP_CC_MDSS_CORE_BCR 0
|
||||
#define DISP_CC_MDSS_CORE_INT2_BCR 1
|
||||
#define DISP_CC_MDSS_RSCC_BCR 2
|
||||
|
||||
/* DISP_CC GDSCR */
|
||||
#define MDSS_GDSC 0
|
||||
#define MDSS_INT2_GDSC 1
|
||||
|
||||
#endif
|
18
include/dt-bindings/clock/qcom,sm8550-tcsr.h
Normal file
18
include/dt-bindings/clock/qcom,sm8550-tcsr.h
Normal file
@ -0,0 +1,18 @@
|
||||
/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
|
||||
/*
|
||||
* Copyright (c) 2022, The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2022, Linaro Limited
|
||||
*/
|
||||
|
||||
#ifndef _DT_BINDINGS_CLK_QCOM_TCSR_CC_SM8550_H
|
||||
#define _DT_BINDINGS_CLK_QCOM_TCSR_CC_SM8550_H
|
||||
|
||||
/* TCSR CC clocks */
|
||||
#define TCSR_PCIE_0_CLKREF_EN 0
|
||||
#define TCSR_PCIE_1_CLKREF_EN 1
|
||||
#define TCSR_UFS_CLKREF_EN 2
|
||||
#define TCSR_UFS_PAD_CLKREF_EN 3
|
||||
#define TCSR_USB2_CLKREF_EN 4
|
||||
#define TCSR_USB3_CLKREF_EN 5
|
||||
|
||||
#endif
|
@ -136,6 +136,7 @@ struct generic_pm_domain {
|
||||
unsigned int prepared_count; /* Suspend counter of prepared devices */
|
||||
unsigned int performance_state; /* Aggregated max performance state */
|
||||
cpumask_var_t cpus; /* A cpumask of the attached CPUs */
|
||||
bool synced_poweroff; /* A consumer needs a synced poweroff */
|
||||
int (*power_off)(struct generic_pm_domain *domain);
|
||||
int (*power_on)(struct generic_pm_domain *domain);
|
||||
struct raw_notifier_head power_notifiers; /* Power on/off notifiers */
|
||||
@ -235,6 +236,7 @@ int dev_pm_genpd_add_notifier(struct device *dev, struct notifier_block *nb);
|
||||
int dev_pm_genpd_remove_notifier(struct device *dev);
|
||||
void dev_pm_genpd_set_next_wakeup(struct device *dev, ktime_t next);
|
||||
ktime_t dev_pm_genpd_get_next_hrtimer(struct device *dev);
|
||||
void dev_pm_genpd_synced_poweroff(struct device *dev);
|
||||
|
||||
extern struct dev_power_governor simple_qos_governor;
|
||||
extern struct dev_power_governor pm_domain_always_on_gov;
|
||||
@ -300,6 +302,9 @@ static inline ktime_t dev_pm_genpd_get_next_hrtimer(struct device *dev)
|
||||
{
|
||||
return KTIME_MAX;
|
||||
}
|
||||
static inline void dev_pm_genpd_synced_poweroff(struct device *dev)
|
||||
{ }
|
||||
|
||||
#define simple_qos_governor (*(struct dev_power_governor *)(NULL))
|
||||
#define pm_domain_always_on_gov (*(struct dev_power_governor *)(NULL))
|
||||
#endif
|
||||
|
@ -43,7 +43,6 @@ struct qcom_smd_rpm;
|
||||
#define QCOM_SMD_RPM_HWKM_CLK 0x6d6b7768
|
||||
#define QCOM_SMD_RPM_PKA_CLK 0x616b70
|
||||
#define QCOM_SMD_RPM_MCFG_CLK 0x6766636d
|
||||
#define QCOM_SMD_RPM_MMXI_CLK 0x69786d6d
|
||||
|
||||
int qcom_rpm_smd_write(struct qcom_smd_rpm *rpm,
|
||||
int state,
|
||||
|
Loading…
Reference in New Issue
Block a user