Merge tag 'qcom-clk-for-6.15' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into clk-qcom
Pull Qualcomm clk driver updates from Bjorn Andersson: - Support associating GDSCs with multiple power domains - Add Qualcomm IPQ9574 NSS clk driver - Add Qualcomm QCS8300 GPU and video clk drivers - Add Qualcomm SDM429 RPM clks - Add Qualcomm QCM6490 LPASS (low power audio) resets - Fix halt check of voted branch clks - Properly park Qualcomm SM8250 camera clks - Add SDCC rests to Qualcomm SDM660 - Fix Qualcomm SM8750 regmap to skip protected registers - Retain state for Qualcomm's SM8650 USB hardware when powered down - Remove GPU AHB and dispaly XO clks from Qualcomm X Elite clk driver - Update UART frequency table on Qualcomm IPQ5424 to fix flow control - Allow Qualcomm IPQ5018 GCC driver to be compiled on arm32 * tag 'qcom-clk-for-6.15' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux: (41 commits) clk: qcom: Add NSS clock Controller driver for IPQ9574 clk: qcom: gcc-ipq9574: Add support for gpll0_out_aux clock dt-bindings: clock: Add ipq9574 NSSCC clock and reset definitions dt-bindings: clock: gcc-ipq9574: Add definition for GPLL0_OUT_AUX clk: qcom: gcc-msm8953: fix stuck venus0_core0 clock clk: qcom: mmcc-sdm660: fix stuck video_subcore0 clock dt-bindings: clock: qcom,x1e80100-camcc: Fix the list of required-opps drivers: clk: qcom: ipq5424: fix the freq table of sdcc1_apps clock clk: qcom: lpassaudiocc-sc7280: Add support for LPASS resets for QCM6490 dt-bindings: clock: qcom: Add compatible for QCM6490 boards clk: qcom: gdsc: Update the status poll timeout for GDSC clk: qcom: gdsc: Set retain_ff before moving to HW CTRL clk: qcom: gcc-sm8650: Do not turn off USB GDSCs during gdsc_disable() clk: qcom: videocc: Constify 'struct qcom_cc_desc' clk: qcom: gpucc: Constify 'struct qcom_cc_desc' clk: qcom: dispcc: Constify 'struct qcom_cc_desc' clk: qcom: camcc: Constify 'struct qcom_cc_desc' dt-bindings: clock: qcom: sm8450-camcc: Remove qcom,x1e80100-camcc leftover clk: qcom: Add support for Video Clock Controller on QCS8300 clk: qcom: Add support for GPU Clock Controller on QCS8300 ...
This commit is contained in:
@@ -8,6 +8,7 @@ title: Qualcomm Graphics Clock & Reset Controller
|
||||
|
||||
maintainers:
|
||||
- Taniya Das <quic_tdas@quicinc.com>
|
||||
- Imran Shaik <quic_imrashai@quicinc.com>
|
||||
|
||||
description: |
|
||||
Qualcomm graphics clock control module provides the clocks, resets and power
|
||||
@@ -23,10 +24,12 @@ description: |
|
||||
include/dt-bindings/clock/qcom,gpucc-sm8150.h
|
||||
include/dt-bindings/clock/qcom,gpucc-sm8250.h
|
||||
include/dt-bindings/clock/qcom,gpucc-sm8350.h
|
||||
include/dt-bindings/clock/qcom,qcs8300-gpucc.h
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- qcom,qcs8300-gpucc
|
||||
- qcom,sdm845-gpucc
|
||||
- qcom,sa8775p-gpucc
|
||||
- qcom,sc7180-gpucc
|
||||
|
||||
@@ -0,0 +1,98 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/clock/qcom,ipq9574-nsscc.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Qualcomm Networking Sub System Clock & Reset Controller on IPQ9574
|
||||
|
||||
maintainers:
|
||||
- Bjorn Andersson <andersson@kernel.org>
|
||||
- Anusha Rao <quic_anusha@quicinc.com>
|
||||
|
||||
description: |
|
||||
Qualcomm networking sub system clock control module provides the clocks,
|
||||
resets on IPQ9574
|
||||
|
||||
See also::
|
||||
include/dt-bindings/clock/qcom,ipq9574-nsscc.h
|
||||
include/dt-bindings/reset/qcom,ipq9574-nsscc.h
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: qcom,ipq9574-nsscc
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: Board XO source
|
||||
- description: CMN_PLL NSS 1200MHz (Bias PLL cc) clock source
|
||||
- description: CMN_PLL PPE 353MHz (Bias PLL ubi nc) clock source
|
||||
- description: GCC GPLL0 OUT AUX clock source
|
||||
- description: Uniphy0 NSS Rx clock source
|
||||
- description: Uniphy0 NSS Tx clock source
|
||||
- description: Uniphy1 NSS Rx clock source
|
||||
- description: Uniphy1 NSS Tx clock source
|
||||
- description: Uniphy2 NSS Rx clock source
|
||||
- description: Uniphy2 NSS Tx clock source
|
||||
- description: GCC NSSCC clock source
|
||||
|
||||
'#interconnect-cells':
|
||||
const: 1
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: xo
|
||||
- const: nss_1200
|
||||
- const: ppe_353
|
||||
- const: gpll0_out
|
||||
- const: uniphy0_rx
|
||||
- const: uniphy0_tx
|
||||
- const: uniphy1_rx
|
||||
- const: uniphy1_tx
|
||||
- const: uniphy2_rx
|
||||
- const: uniphy2_tx
|
||||
- const: bus
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- clocks
|
||||
- clock-names
|
||||
|
||||
allOf:
|
||||
- $ref: qcom,gcc.yaml#
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/qcom,ipq9574-gcc.h>
|
||||
#include <dt-bindings/clock/qcom,ipq-cmn-pll.h>
|
||||
clock-controller@39b00000 {
|
||||
compatible = "qcom,ipq9574-nsscc";
|
||||
reg = <0x39b00000 0x80000>;
|
||||
clocks = <&xo_board_clk>,
|
||||
<&cmn_pll NSS_1200MHZ_CLK>,
|
||||
<&cmn_pll PPE_353MHZ_CLK>,
|
||||
<&gcc GPLL0_OUT_AUX>,
|
||||
<&uniphy 0>,
|
||||
<&uniphy 1>,
|
||||
<&uniphy 2>,
|
||||
<&uniphy 3>,
|
||||
<&uniphy 4>,
|
||||
<&uniphy 5>,
|
||||
<&gcc GCC_NSSCC_CLK>;
|
||||
clock-names = "xo",
|
||||
"nss_1200",
|
||||
"ppe_353",
|
||||
"gpll0_out",
|
||||
"uniphy0_rx",
|
||||
"uniphy0_tx",
|
||||
"uniphy1_rx",
|
||||
"uniphy1_tx",
|
||||
"uniphy2_rx",
|
||||
"uniphy2_tx",
|
||||
"bus";
|
||||
#clock-cells = <1>;
|
||||
#reset-cells = <1>;
|
||||
};
|
||||
...
|
||||
@@ -44,6 +44,7 @@ properties:
|
||||
- qcom,rpmcc-msm8998
|
||||
- qcom,rpmcc-qcm2290
|
||||
- qcom,rpmcc-qcs404
|
||||
- qcom,rpmcc-sdm429
|
||||
- qcom,rpmcc-sdm660
|
||||
- qcom,rpmcc-sm6115
|
||||
- qcom,rpmcc-sm6125
|
||||
@@ -123,6 +124,7 @@ allOf:
|
||||
- qcom,rpmcc-msm8998
|
||||
- qcom,rpmcc-qcm2290
|
||||
- qcom,rpmcc-qcs404
|
||||
- qcom,rpmcc-sdm429
|
||||
- qcom,rpmcc-sdm660
|
||||
- qcom,rpmcc-sm6115
|
||||
- qcom,rpmcc-sm6125
|
||||
|
||||
@@ -8,16 +8,20 @@ title: Qualcomm Camera Clock & Reset Controller on SA8775P
|
||||
|
||||
maintainers:
|
||||
- Taniya Das <quic_tdas@quicinc.com>
|
||||
- Imran Shaik <quic_imrashai@quicinc.com>
|
||||
|
||||
description: |
|
||||
Qualcomm camera clock control module provides the clocks, resets and power
|
||||
domains on SA8775p.
|
||||
|
||||
See also: include/dt-bindings/clock/qcom,sa8775p-camcc.h
|
||||
See also:
|
||||
include/dt-bindings/clock/qcom,qcs8300-camcc.h
|
||||
include/dt-bindings/clock/qcom,sa8775p-camcc.h
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- qcom,qcs8300-camcc
|
||||
- qcom,sa8775p-camcc
|
||||
|
||||
clocks:
|
||||
|
||||
@@ -18,6 +18,7 @@ description: |
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- qcom,qcs8300-videocc
|
||||
- qcom,sa8775p-videocc
|
||||
|
||||
clocks:
|
||||
|
||||
@@ -20,6 +20,7 @@ description: |
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- qcom,qcm6490-lpassaudiocc
|
||||
- qcom,sc7280-lpassaoncc
|
||||
- qcom,sc7280-lpassaudiocc
|
||||
- qcom,sc7280-lpasscorecc
|
||||
@@ -68,7 +69,9 @@ allOf:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: qcom,sc7280-lpassaudiocc
|
||||
enum:
|
||||
- qcom,qcm6490-lpassaudiocc
|
||||
- qcom,sc7280-lpassaudiocc
|
||||
|
||||
then:
|
||||
properties:
|
||||
|
||||
@@ -64,7 +64,6 @@ allOf:
|
||||
- qcom,sc8280xp-camcc
|
||||
- qcom,sm8450-camcc
|
||||
- qcom,sm8550-camcc
|
||||
- qcom,x1e80100-camcc
|
||||
then:
|
||||
required:
|
||||
- required-opps
|
||||
|
||||
@@ -40,9 +40,9 @@ properties:
|
||||
- description: A phandle to the MMCX power-domain
|
||||
|
||||
required-opps:
|
||||
maxItems: 1
|
||||
description:
|
||||
A phandle to an OPP node describing MMCX performance points.
|
||||
items:
|
||||
- description: A phandle to an OPP node describing MXC performance points
|
||||
- description: A phandle to an OPP node describing MMCX performance points
|
||||
|
||||
required:
|
||||
- compatible
|
||||
@@ -66,7 +66,8 @@ examples:
|
||||
<&sleep_clk>;
|
||||
power-domains = <&rpmhpd RPMHPD_MXC>,
|
||||
<&rpmhpd RPMHPD_MMCX>;
|
||||
required-opps = <&rpmhpd_opp_low_svs>;
|
||||
required-opps = <&rpmhpd_opp_low_svs>,
|
||||
<&rpmhpd_opp_low_svs>;
|
||||
#clock-cells = <1>;
|
||||
#reset-cells = <1>;
|
||||
#power-domain-cells = <1>;
|
||||
|
||||
@@ -217,7 +217,7 @@ config IPQ_GCC_4019
|
||||
|
||||
config IPQ_GCC_5018
|
||||
tristate "IPQ5018 Global Clock Controller"
|
||||
depends on ARM64 || COMPILE_TEST
|
||||
depends on ARM || ARM64 || COMPILE_TEST
|
||||
help
|
||||
Support for global clock controller on ipq5018 devices.
|
||||
Say Y if you want to use peripheral devices such as UART, SPI,
|
||||
@@ -281,6 +281,13 @@ config IPQ_GCC_9574
|
||||
i2c, USB, SD/eMMC, etc. Select this for the root clock
|
||||
of ipq9574.
|
||||
|
||||
config IPQ_NSSCC_9574
|
||||
tristate "IPQ9574 NSS Clock Controller"
|
||||
depends on ARM64 || COMPILE_TEST
|
||||
depends on IPQ_GCC_9574
|
||||
help
|
||||
Support for NSS clock controller on ipq9574 devices.
|
||||
|
||||
config IPQ_NSSCC_QCA8K
|
||||
tristate "QCA8K(QCA8386 or QCA8084) NSS Clock Controller"
|
||||
depends on MDIO_BUS
|
||||
|
||||
@@ -39,6 +39,7 @@ obj-$(CONFIG_IPQ_GCC_6018) += gcc-ipq6018.o
|
||||
obj-$(CONFIG_IPQ_GCC_806X) += gcc-ipq806x.o
|
||||
obj-$(CONFIG_IPQ_GCC_8074) += gcc-ipq8074.o
|
||||
obj-$(CONFIG_IPQ_GCC_9574) += gcc-ipq9574.o
|
||||
obj-$(CONFIG_IPQ_NSSCC_9574) += nsscc-ipq9574.o
|
||||
obj-$(CONFIG_IPQ_LCC_806X) += lcc-ipq806x.o
|
||||
obj-$(CONFIG_IPQ_NSSCC_QCA8K) += nsscc-qca8k.o
|
||||
obj-$(CONFIG_MDM_GCC_9607) += gcc-mdm9607.o
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/regmap.h>
|
||||
@@ -1801,7 +1800,7 @@ static const struct regmap_config cam_cc_sa8775p_regmap_config = {
|
||||
.fast_io = true,
|
||||
};
|
||||
|
||||
static struct qcom_cc_desc cam_cc_sa8775p_desc = {
|
||||
static const struct qcom_cc_desc cam_cc_sa8775p_desc = {
|
||||
.config = &cam_cc_sa8775p_regmap_config,
|
||||
.clks = cam_cc_sa8775p_clocks,
|
||||
.num_clks = ARRAY_SIZE(cam_cc_sa8775p_clocks),
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/pm_clock.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
|
||||
@@ -2987,7 +2987,7 @@ static const struct regmap_config camcc_sc8280xp_regmap_config = {
|
||||
.fast_io = true,
|
||||
};
|
||||
|
||||
static struct qcom_cc_desc camcc_sc8280xp_desc = {
|
||||
static const struct qcom_cc_desc camcc_sc8280xp_desc = {
|
||||
.config = &camcc_sc8280xp_regmap_config,
|
||||
.clks = camcc_sc8280xp_clocks,
|
||||
.num_clks = ARRAY_SIZE(camcc_sc8280xp_clocks),
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
*/
|
||||
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
@@ -1641,7 +1640,7 @@ static const struct regmap_config cam_cc_sm4450_regmap_config = {
|
||||
.fast_io = true,
|
||||
};
|
||||
|
||||
static struct qcom_cc_desc cam_cc_sm4450_desc = {
|
||||
static const struct qcom_cc_desc cam_cc_sm4450_desc = {
|
||||
.config = &cam_cc_sm4450_regmap_config,
|
||||
.clks = cam_cc_sm4450_clocks,
|
||||
.num_clks = ARRAY_SIZE(cam_cc_sm4450_clocks),
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
*/
|
||||
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
|
||||
@@ -6,9 +6,9 @@
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
|
||||
@@ -2094,7 +2094,7 @@ static const struct regmap_config cam_cc_sm8150_regmap_config = {
|
||||
.fast_io = true,
|
||||
};
|
||||
|
||||
static struct qcom_cc_desc cam_cc_sm8150_desc = {
|
||||
static const struct qcom_cc_desc cam_cc_sm8150_desc = {
|
||||
.config = &cam_cc_sm8150_regmap_config,
|
||||
.clks = cam_cc_sm8150_clocks,
|
||||
.num_clks = ARRAY_SIZE(cam_cc_sm8150_clocks),
|
||||
|
||||
@@ -4,10 +4,10 @@
|
||||
*/
|
||||
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/reset-controller.h>
|
||||
|
||||
#include <dt-bindings/clock/qcom,camcc-sm8250.h>
|
||||
|
||||
@@ -411,7 +411,7 @@ static struct clk_rcg2 cam_cc_bps_clk_src = {
|
||||
.parent_data = cam_cc_parent_data_0,
|
||||
.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
.ops = &clk_rcg2_ops,
|
||||
.ops = &clk_rcg2_shared_ops,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -433,7 +433,7 @@ static struct clk_rcg2 cam_cc_camnoc_axi_clk_src = {
|
||||
.parent_data = cam_cc_parent_data_0,
|
||||
.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
.ops = &clk_rcg2_ops,
|
||||
.ops = &clk_rcg2_shared_ops,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -454,7 +454,7 @@ static struct clk_rcg2 cam_cc_cci_0_clk_src = {
|
||||
.parent_data = cam_cc_parent_data_0,
|
||||
.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
.ops = &clk_rcg2_ops,
|
||||
.ops = &clk_rcg2_shared_ops,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -469,7 +469,7 @@ static struct clk_rcg2 cam_cc_cci_1_clk_src = {
|
||||
.parent_data = cam_cc_parent_data_0,
|
||||
.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
.ops = &clk_rcg2_ops,
|
||||
.ops = &clk_rcg2_shared_ops,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -490,7 +490,7 @@ static struct clk_rcg2 cam_cc_cphy_rx_clk_src = {
|
||||
.parent_data = cam_cc_parent_data_0,
|
||||
.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
.ops = &clk_rcg2_ops,
|
||||
.ops = &clk_rcg2_shared_ops,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -511,7 +511,7 @@ static struct clk_rcg2 cam_cc_csi0phytimer_clk_src = {
|
||||
.parent_data = cam_cc_parent_data_0,
|
||||
.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
.ops = &clk_rcg2_ops,
|
||||
.ops = &clk_rcg2_shared_ops,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -526,7 +526,7 @@ static struct clk_rcg2 cam_cc_csi1phytimer_clk_src = {
|
||||
.parent_data = cam_cc_parent_data_0,
|
||||
.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
.ops = &clk_rcg2_ops,
|
||||
.ops = &clk_rcg2_shared_ops,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -556,7 +556,7 @@ static struct clk_rcg2 cam_cc_csi3phytimer_clk_src = {
|
||||
.parent_data = cam_cc_parent_data_0,
|
||||
.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
.ops = &clk_rcg2_ops,
|
||||
.ops = &clk_rcg2_shared_ops,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -571,7 +571,7 @@ static struct clk_rcg2 cam_cc_csi4phytimer_clk_src = {
|
||||
.parent_data = cam_cc_parent_data_0,
|
||||
.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
.ops = &clk_rcg2_ops,
|
||||
.ops = &clk_rcg2_shared_ops,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -586,7 +586,7 @@ static struct clk_rcg2 cam_cc_csi5phytimer_clk_src = {
|
||||
.parent_data = cam_cc_parent_data_0,
|
||||
.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
.ops = &clk_rcg2_ops,
|
||||
.ops = &clk_rcg2_shared_ops,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -611,7 +611,7 @@ static struct clk_rcg2 cam_cc_fast_ahb_clk_src = {
|
||||
.parent_data = cam_cc_parent_data_0,
|
||||
.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
.ops = &clk_rcg2_ops,
|
||||
.ops = &clk_rcg2_shared_ops,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -634,7 +634,7 @@ static struct clk_rcg2 cam_cc_fd_core_clk_src = {
|
||||
.parent_data = cam_cc_parent_data_0,
|
||||
.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
.ops = &clk_rcg2_ops,
|
||||
.ops = &clk_rcg2_shared_ops,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -649,7 +649,7 @@ static struct clk_rcg2 cam_cc_icp_clk_src = {
|
||||
.parent_data = cam_cc_parent_data_0,
|
||||
.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
.ops = &clk_rcg2_ops,
|
||||
.ops = &clk_rcg2_shared_ops,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -673,7 +673,7 @@ static struct clk_rcg2 cam_cc_ife_0_clk_src = {
|
||||
.parent_data = cam_cc_parent_data_2,
|
||||
.num_parents = ARRAY_SIZE(cam_cc_parent_data_2),
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
.ops = &clk_rcg2_ops,
|
||||
.ops = &clk_rcg2_shared_ops,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -710,7 +710,7 @@ static struct clk_rcg2 cam_cc_ife_0_csid_clk_src = {
|
||||
.parent_data = cam_cc_parent_data_0,
|
||||
.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
.ops = &clk_rcg2_ops,
|
||||
.ops = &clk_rcg2_shared_ops,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -734,7 +734,7 @@ static struct clk_rcg2 cam_cc_ife_1_clk_src = {
|
||||
.parent_data = cam_cc_parent_data_3,
|
||||
.num_parents = ARRAY_SIZE(cam_cc_parent_data_3),
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
.ops = &clk_rcg2_ops,
|
||||
.ops = &clk_rcg2_shared_ops,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -749,7 +749,7 @@ static struct clk_rcg2 cam_cc_ife_1_csid_clk_src = {
|
||||
.parent_data = cam_cc_parent_data_0,
|
||||
.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
.ops = &clk_rcg2_ops,
|
||||
.ops = &clk_rcg2_shared_ops,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -771,7 +771,7 @@ static struct clk_rcg2 cam_cc_ife_lite_clk_src = {
|
||||
.parent_data = cam_cc_parent_data_0,
|
||||
.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
.ops = &clk_rcg2_ops,
|
||||
.ops = &clk_rcg2_shared_ops,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -786,7 +786,7 @@ static struct clk_rcg2 cam_cc_ife_lite_csid_clk_src = {
|
||||
.parent_data = cam_cc_parent_data_0,
|
||||
.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
.ops = &clk_rcg2_ops,
|
||||
.ops = &clk_rcg2_shared_ops,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -810,7 +810,7 @@ static struct clk_rcg2 cam_cc_ipe_0_clk_src = {
|
||||
.parent_data = cam_cc_parent_data_4,
|
||||
.num_parents = ARRAY_SIZE(cam_cc_parent_data_4),
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
.ops = &clk_rcg2_ops,
|
||||
.ops = &clk_rcg2_shared_ops,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -825,7 +825,7 @@ static struct clk_rcg2 cam_cc_jpeg_clk_src = {
|
||||
.parent_data = cam_cc_parent_data_0,
|
||||
.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
.ops = &clk_rcg2_ops,
|
||||
.ops = &clk_rcg2_shared_ops,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -847,7 +847,7 @@ static struct clk_rcg2 cam_cc_mclk0_clk_src = {
|
||||
.parent_data = cam_cc_parent_data_1,
|
||||
.num_parents = ARRAY_SIZE(cam_cc_parent_data_1),
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
.ops = &clk_rcg2_ops,
|
||||
.ops = &clk_rcg2_shared_ops,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -862,7 +862,7 @@ static struct clk_rcg2 cam_cc_mclk1_clk_src = {
|
||||
.parent_data = cam_cc_parent_data_1,
|
||||
.num_parents = ARRAY_SIZE(cam_cc_parent_data_1),
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
.ops = &clk_rcg2_ops,
|
||||
.ops = &clk_rcg2_shared_ops,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -877,7 +877,7 @@ static struct clk_rcg2 cam_cc_mclk2_clk_src = {
|
||||
.parent_data = cam_cc_parent_data_1,
|
||||
.num_parents = ARRAY_SIZE(cam_cc_parent_data_1),
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
.ops = &clk_rcg2_ops,
|
||||
.ops = &clk_rcg2_shared_ops,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -892,7 +892,7 @@ static struct clk_rcg2 cam_cc_mclk3_clk_src = {
|
||||
.parent_data = cam_cc_parent_data_1,
|
||||
.num_parents = ARRAY_SIZE(cam_cc_parent_data_1),
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
.ops = &clk_rcg2_ops,
|
||||
.ops = &clk_rcg2_shared_ops,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -907,7 +907,7 @@ static struct clk_rcg2 cam_cc_mclk4_clk_src = {
|
||||
.parent_data = cam_cc_parent_data_1,
|
||||
.num_parents = ARRAY_SIZE(cam_cc_parent_data_1),
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
.ops = &clk_rcg2_ops,
|
||||
.ops = &clk_rcg2_shared_ops,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -922,7 +922,7 @@ static struct clk_rcg2 cam_cc_mclk5_clk_src = {
|
||||
.parent_data = cam_cc_parent_data_1,
|
||||
.num_parents = ARRAY_SIZE(cam_cc_parent_data_1),
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
.ops = &clk_rcg2_ops,
|
||||
.ops = &clk_rcg2_shared_ops,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -993,7 +993,7 @@ static struct clk_rcg2 cam_cc_slow_ahb_clk_src = {
|
||||
.parent_data = cam_cc_parent_data_0,
|
||||
.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
.ops = &clk_rcg2_ops,
|
||||
.ops = &clk_rcg2_shared_ops,
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
@@ -3487,7 +3487,7 @@ static const struct regmap_config cam_cc_sm8550_regmap_config = {
|
||||
.fast_io = true,
|
||||
};
|
||||
|
||||
static struct qcom_cc_desc cam_cc_sm8550_desc = {
|
||||
static const struct qcom_cc_desc cam_cc_sm8550_desc = {
|
||||
.config = &cam_cc_sm8550_regmap_config,
|
||||
.clks = cam_cc_sm8550_clocks,
|
||||
.num_clks = ARRAY_SIZE(cam_cc_sm8550_clocks),
|
||||
|
||||
@@ -3517,7 +3517,7 @@ static const struct regmap_config cam_cc_sm8650_regmap_config = {
|
||||
.fast_io = true,
|
||||
};
|
||||
|
||||
static struct qcom_cc_desc cam_cc_sm8650_desc = {
|
||||
static const struct qcom_cc_desc cam_cc_sm8650_desc = {
|
||||
.config = &cam_cc_sm8650_regmap_config,
|
||||
.clks = cam_cc_sm8650_clocks,
|
||||
.num_clks = ARRAY_SIZE(cam_cc_sm8650_clocks),
|
||||
|
||||
@@ -709,14 +709,19 @@ clk_alpha_pll_recalc_rate(struct clk_hw *hw, unsigned long parent_rate)
|
||||
struct clk_alpha_pll *pll = to_clk_alpha_pll(hw);
|
||||
u32 alpha_width = pll_alpha_width(pll);
|
||||
|
||||
regmap_read(pll->clkr.regmap, PLL_L_VAL(pll), &l);
|
||||
if (regmap_read(pll->clkr.regmap, PLL_L_VAL(pll), &l))
|
||||
return 0;
|
||||
|
||||
if (regmap_read(pll->clkr.regmap, PLL_USER_CTL(pll), &ctl))
|
||||
return 0;
|
||||
|
||||
regmap_read(pll->clkr.regmap, PLL_USER_CTL(pll), &ctl);
|
||||
if (ctl & PLL_ALPHA_EN) {
|
||||
regmap_read(pll->clkr.regmap, PLL_ALPHA_VAL(pll), &low);
|
||||
if (regmap_read(pll->clkr.regmap, PLL_ALPHA_VAL(pll), &low))
|
||||
return 0;
|
||||
if (alpha_width > 32) {
|
||||
regmap_read(pll->clkr.regmap, PLL_ALPHA_VAL_U(pll),
|
||||
&high);
|
||||
if (regmap_read(pll->clkr.regmap, PLL_ALPHA_VAL_U(pll),
|
||||
&high))
|
||||
return 0;
|
||||
a = (u64)high << 32 | low;
|
||||
} else {
|
||||
a = low & GENMASK(alpha_width - 1, 0);
|
||||
@@ -942,8 +947,11 @@ alpha_pll_huayra_recalc_rate(struct clk_hw *hw, unsigned long parent_rate)
|
||||
struct clk_alpha_pll *pll = to_clk_alpha_pll(hw);
|
||||
u32 l, alpha = 0, ctl, alpha_m, alpha_n;
|
||||
|
||||
regmap_read(pll->clkr.regmap, PLL_L_VAL(pll), &l);
|
||||
regmap_read(pll->clkr.regmap, PLL_USER_CTL(pll), &ctl);
|
||||
if (regmap_read(pll->clkr.regmap, PLL_L_VAL(pll), &l))
|
||||
return 0;
|
||||
|
||||
if (regmap_read(pll->clkr.regmap, PLL_USER_CTL(pll), &ctl))
|
||||
return 0;
|
||||
|
||||
if (ctl & PLL_ALPHA_EN) {
|
||||
regmap_read(pll->clkr.regmap, PLL_ALPHA_VAL(pll), &alpha);
|
||||
@@ -1137,8 +1145,11 @@ clk_trion_pll_recalc_rate(struct clk_hw *hw, unsigned long parent_rate)
|
||||
struct clk_alpha_pll *pll = to_clk_alpha_pll(hw);
|
||||
u32 l, frac, alpha_width = pll_alpha_width(pll);
|
||||
|
||||
regmap_read(pll->clkr.regmap, PLL_L_VAL(pll), &l);
|
||||
regmap_read(pll->clkr.regmap, PLL_ALPHA_VAL(pll), &frac);
|
||||
if (regmap_read(pll->clkr.regmap, PLL_L_VAL(pll), &l))
|
||||
return 0;
|
||||
|
||||
if (regmap_read(pll->clkr.regmap, PLL_ALPHA_VAL(pll), &frac))
|
||||
return 0;
|
||||
|
||||
return alpha_pll_calc_rate(parent_rate, l, frac, alpha_width);
|
||||
}
|
||||
@@ -1196,7 +1207,8 @@ clk_alpha_pll_postdiv_recalc_rate(struct clk_hw *hw, unsigned long parent_rate)
|
||||
struct clk_alpha_pll_postdiv *pll = to_clk_alpha_pll_postdiv(hw);
|
||||
u32 ctl;
|
||||
|
||||
regmap_read(pll->clkr.regmap, PLL_USER_CTL(pll), &ctl);
|
||||
if (regmap_read(pll->clkr.regmap, PLL_USER_CTL(pll), &ctl))
|
||||
return 0;
|
||||
|
||||
ctl >>= PLL_POST_DIV_SHIFT;
|
||||
ctl &= PLL_POST_DIV_MASK(pll);
|
||||
@@ -1412,8 +1424,11 @@ static unsigned long alpha_pll_fabia_recalc_rate(struct clk_hw *hw,
|
||||
struct clk_alpha_pll *pll = to_clk_alpha_pll(hw);
|
||||
u32 l, frac, alpha_width = pll_alpha_width(pll);
|
||||
|
||||
regmap_read(pll->clkr.regmap, PLL_L_VAL(pll), &l);
|
||||
regmap_read(pll->clkr.regmap, PLL_FRAC(pll), &frac);
|
||||
if (regmap_read(pll->clkr.regmap, PLL_L_VAL(pll), &l))
|
||||
return 0;
|
||||
|
||||
if (regmap_read(pll->clkr.regmap, PLL_FRAC(pll), &frac))
|
||||
return 0;
|
||||
|
||||
return alpha_pll_calc_rate(parent_rate, l, frac, alpha_width);
|
||||
}
|
||||
@@ -1563,7 +1578,8 @@ clk_trion_pll_postdiv_recalc_rate(struct clk_hw *hw, unsigned long parent_rate)
|
||||
struct regmap *regmap = pll->clkr.regmap;
|
||||
u32 i, div = 1, val;
|
||||
|
||||
regmap_read(regmap, PLL_USER_CTL(pll), &val);
|
||||
if (regmap_read(regmap, PLL_USER_CTL(pll), &val))
|
||||
return 0;
|
||||
|
||||
val >>= pll->post_div_shift;
|
||||
val &= PLL_POST_DIV_MASK(pll);
|
||||
@@ -2484,9 +2500,12 @@ static unsigned long alpha_pll_lucid_evo_recalc_rate(struct clk_hw *hw,
|
||||
struct regmap *regmap = pll->clkr.regmap;
|
||||
u32 l, frac;
|
||||
|
||||
regmap_read(regmap, PLL_L_VAL(pll), &l);
|
||||
if (regmap_read(regmap, PLL_L_VAL(pll), &l))
|
||||
return 0;
|
||||
l &= LUCID_EVO_PLL_L_VAL_MASK;
|
||||
regmap_read(regmap, PLL_ALPHA_VAL(pll), &frac);
|
||||
|
||||
if (regmap_read(regmap, PLL_ALPHA_VAL(pll), &frac))
|
||||
return 0;
|
||||
|
||||
return alpha_pll_calc_rate(parent_rate, l, frac, pll_alpha_width(pll));
|
||||
}
|
||||
@@ -2699,7 +2718,8 @@ static unsigned long clk_rivian_evo_pll_recalc_rate(struct clk_hw *hw,
|
||||
struct clk_alpha_pll *pll = to_clk_alpha_pll(hw);
|
||||
u32 l;
|
||||
|
||||
regmap_read(pll->clkr.regmap, PLL_L_VAL(pll), &l);
|
||||
if (regmap_read(pll->clkr.regmap, PLL_L_VAL(pll), &l))
|
||||
return 0;
|
||||
|
||||
return parent_rate * l;
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ static bool clk_branch_in_hwcg_mode(const struct clk_branch *br)
|
||||
|
||||
static bool clk_branch_check_halt(const struct clk_branch *br, bool enabling)
|
||||
{
|
||||
bool invert = (br->halt_check == BRANCH_HALT_ENABLE);
|
||||
bool invert = (br->halt_check & BRANCH_HALT_ENABLE);
|
||||
u32 val;
|
||||
|
||||
regmap_read(br->clkr.regmap, br->halt_reg, &val);
|
||||
@@ -44,7 +44,7 @@ static bool clk_branch2_check_halt(const struct clk_branch *br, bool enabling)
|
||||
{
|
||||
u32 val;
|
||||
u32 mask;
|
||||
bool invert = (br->halt_check == BRANCH_HALT_ENABLE);
|
||||
bool invert = (br->halt_check & BRANCH_HALT_ENABLE);
|
||||
|
||||
mask = CBCR_NOC_FSM_STATUS;
|
||||
mask |= CBCR_CLK_OFF;
|
||||
|
||||
@@ -486,6 +486,7 @@ DEFINE_CLK_SMD_RPM(qup, QCOM_SMD_RPM_QUP_CLK, 0);
|
||||
|
||||
DEFINE_CLK_SMD_RPM_XO_BUFFER_PINCTRL(bb_clk1, 1, 19200000);
|
||||
DEFINE_CLK_SMD_RPM_XO_BUFFER_PINCTRL(bb_clk2, 2, 19200000);
|
||||
DEFINE_CLK_SMD_RPM_XO_BUFFER_PINCTRL(bb_clk3, 3, 19200000);
|
||||
DEFINE_CLK_SMD_RPM_XO_BUFFER_PINCTRL(ln_bb_clk1, 1, 19200000);
|
||||
DEFINE_CLK_SMD_RPM_XO_BUFFER_PINCTRL(ln_bb_clk2, 2, 19200000);
|
||||
DEFINE_CLK_SMD_RPM_XO_BUFFER_PINCTRL(ln_bb_clk3, 3, 19200000);
|
||||
@@ -1046,6 +1047,36 @@ static const struct rpm_smd_clk_desc rpm_clk_msm8998 = {
|
||||
.num_icc_clks = ARRAY_SIZE(msm8998_icc_clks),
|
||||
};
|
||||
|
||||
static struct clk_smd_rpm *sdm429_clks[] = {
|
||||
[RPM_SMD_XO_CLK_SRC] = &clk_smd_rpm_branch_bi_tcxo,
|
||||
[RPM_SMD_XO_A_CLK_SRC] = &clk_smd_rpm_branch_bi_tcxo_a,
|
||||
[RPM_SMD_QDSS_CLK] = &clk_smd_rpm_qdss_clk,
|
||||
[RPM_SMD_QDSS_A_CLK] = &clk_smd_rpm_qdss_a_clk,
|
||||
[RPM_SMD_BB_CLK1] = &clk_smd_rpm_bb_clk1,
|
||||
[RPM_SMD_BB_CLK1_A] = &clk_smd_rpm_bb_clk1_a,
|
||||
[RPM_SMD_BB_CLK2] = &clk_smd_rpm_bb_clk2,
|
||||
[RPM_SMD_BB_CLK2_A] = &clk_smd_rpm_bb_clk2_a,
|
||||
[RPM_SMD_BB_CLK3] = &clk_smd_rpm_bb_clk3,
|
||||
[RPM_SMD_BB_CLK3_A] = &clk_smd_rpm_bb_clk3_a,
|
||||
[RPM_SMD_RF_CLK2] = &clk_smd_rpm_rf_clk2,
|
||||
[RPM_SMD_RF_CLK2_A] = &clk_smd_rpm_rf_clk2_a,
|
||||
[RPM_SMD_DIV_CLK2] = &clk_smd_rpm_div_clk2,
|
||||
[RPM_SMD_DIV_A_CLK2] = &clk_smd_rpm_div_clk2_a,
|
||||
[RPM_SMD_BB_CLK1_PIN] = &clk_smd_rpm_bb_clk1_pin,
|
||||
[RPM_SMD_BB_CLK1_A_PIN] = &clk_smd_rpm_bb_clk1_a_pin,
|
||||
[RPM_SMD_BB_CLK2_PIN] = &clk_smd_rpm_bb_clk2_pin,
|
||||
[RPM_SMD_BB_CLK2_A_PIN] = &clk_smd_rpm_bb_clk2_a_pin,
|
||||
[RPM_SMD_BB_CLK3_PIN] = &clk_smd_rpm_bb_clk3_pin,
|
||||
[RPM_SMD_BB_CLK3_A_PIN] = &clk_smd_rpm_bb_clk3_a_pin,
|
||||
};
|
||||
|
||||
static const struct rpm_smd_clk_desc rpm_clk_sdm429 = {
|
||||
.clks = sdm429_clks,
|
||||
.num_clks = ARRAY_SIZE(sdm429_clks),
|
||||
.icc_clks = bimc_pcnoc_snoc_smmnoc_icc_clks,
|
||||
.num_icc_clks = ARRAY_SIZE(bimc_pcnoc_snoc_smmnoc_icc_clks),
|
||||
};
|
||||
|
||||
static struct clk_smd_rpm *sdm660_clks[] = {
|
||||
[RPM_SMD_XO_CLK_SRC] = &clk_smd_rpm_branch_bi_tcxo,
|
||||
[RPM_SMD_XO_A_CLK_SRC] = &clk_smd_rpm_branch_bi_tcxo_a,
|
||||
@@ -1276,6 +1307,7 @@ static const struct of_device_id rpm_smd_clk_match_table[] = {
|
||||
{ .compatible = "qcom,rpmcc-msm8998", .data = &rpm_clk_msm8998 },
|
||||
{ .compatible = "qcom,rpmcc-qcm2290", .data = &rpm_clk_qcm2290 },
|
||||
{ .compatible = "qcom,rpmcc-qcs404", .data = &rpm_clk_qcs404 },
|
||||
{ .compatible = "qcom,rpmcc-sdm429", .data = &rpm_clk_sdm429 },
|
||||
{ .compatible = "qcom,rpmcc-sdm660", .data = &rpm_clk_sdm660 },
|
||||
{ .compatible = "qcom,rpmcc-sm6115", .data = &rpm_clk_sm6115 },
|
||||
{ .compatible = "qcom,rpmcc-sm6125", .data = &rpm_clk_sm6125 },
|
||||
|
||||
@@ -22,6 +22,7 @@ struct qcom_cc {
|
||||
struct qcom_reset_controller reset;
|
||||
struct clk_regmap **rclks;
|
||||
size_t num_rclks;
|
||||
struct dev_pm_domain_list *pd_list;
|
||||
};
|
||||
|
||||
const
|
||||
@@ -299,6 +300,10 @@ int qcom_cc_really_probe(struct device *dev,
|
||||
if (!cc)
|
||||
return -ENOMEM;
|
||||
|
||||
ret = devm_pm_domain_attach_list(dev, NULL, &cc->pd_list);
|
||||
if (ret < 0 && ret != -EEXIST)
|
||||
return ret;
|
||||
|
||||
reset = &cc->reset;
|
||||
reset->rcdev.of_node = dev->of_node;
|
||||
reset->rcdev.ops = &qcom_reset_ops;
|
||||
@@ -318,6 +323,7 @@ int qcom_cc_really_probe(struct device *dev,
|
||||
scd->dev = dev;
|
||||
scd->scs = desc->gdscs;
|
||||
scd->num = desc->num_gdscs;
|
||||
scd->pd_list = cc->pd_list;
|
||||
ret = gdsc_register(scd, &reset->rcdev, regmap);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
@@ -4,10 +4,11 @@
|
||||
* Copyright (c) 2021, Linaro Ltd.
|
||||
*/
|
||||
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
*/
|
||||
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
*/
|
||||
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
@@ -5,13 +5,12 @@
|
||||
*/
|
||||
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/property.h>
|
||||
#include <linux/pm_clock.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/reset-controller.h>
|
||||
|
||||
#include <dt-bindings/clock/qcom,dispcc-sc8280xp.h>
|
||||
|
||||
@@ -3114,7 +3113,7 @@ static const struct regmap_config disp_cc_sc8280xp_regmap_config = {
|
||||
.fast_io = true,
|
||||
};
|
||||
|
||||
static struct qcom_cc_desc disp0_cc_sc8280xp_desc = {
|
||||
static const struct qcom_cc_desc disp0_cc_sc8280xp_desc = {
|
||||
.config = &disp_cc_sc8280xp_regmap_config,
|
||||
.clks = disp0_cc_sc8280xp_clocks,
|
||||
.num_clks = ARRAY_SIZE(disp0_cc_sc8280xp_clocks),
|
||||
@@ -3124,7 +3123,7 @@ static struct qcom_cc_desc disp0_cc_sc8280xp_desc = {
|
||||
.num_gdscs = ARRAY_SIZE(disp0_cc_sc8280xp_gdscs),
|
||||
};
|
||||
|
||||
static struct qcom_cc_desc disp1_cc_sc8280xp_desc = {
|
||||
static const struct qcom_cc_desc disp1_cc_sc8280xp_desc = {
|
||||
.config = &disp_cc_sc8280xp_regmap_config,
|
||||
.clks = disp1_cc_sc8280xp_clocks,
|
||||
.num_clks = ARRAY_SIZE(disp1_cc_sc8280xp_clocks),
|
||||
|
||||
@@ -4,10 +4,10 @@
|
||||
*/
|
||||
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/reset-controller.h>
|
||||
|
||||
#include <dt-bindings/clock/qcom,dispcc-sdm845.h>
|
||||
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
@@ -722,7 +721,7 @@ static const struct regmap_config disp_cc_sm4450_regmap_config = {
|
||||
.fast_io = true,
|
||||
};
|
||||
|
||||
static struct qcom_cc_desc disp_cc_sm4450_desc = {
|
||||
static const struct qcom_cc_desc disp_cc_sm4450_desc = {
|
||||
.config = &disp_cc_sm4450_regmap_config,
|
||||
.clks = disp_cc_sm4450_clocks,
|
||||
.num_clks = ARRAY_SIZE(disp_cc_sm4450_clocks),
|
||||
|
||||
@@ -5,10 +5,11 @@
|
||||
* Copyright (c) 2021, Linaro Ltd.
|
||||
*/
|
||||
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
*/
|
||||
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
*/
|
||||
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
*/
|
||||
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
|
||||
@@ -4,11 +4,11 @@
|
||||
*/
|
||||
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/reset-controller.h>
|
||||
|
||||
#include <dt-bindings/clock/qcom,dispcc-sm8250.h>
|
||||
|
||||
|
||||
@@ -4,12 +4,11 @@
|
||||
* Copyright (c) 2022, Linaro Ltd.
|
||||
*/
|
||||
|
||||
#include <linux/clk.h>
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
@@ -1780,7 +1779,7 @@ static const struct regmap_config disp_cc_sm8450_regmap_config = {
|
||||
.fast_io = true,
|
||||
};
|
||||
|
||||
static struct qcom_cc_desc disp_cc_sm8450_desc = {
|
||||
static const struct qcom_cc_desc disp_cc_sm8450_desc = {
|
||||
.config = &disp_cc_sm8450_regmap_config,
|
||||
.clks = disp_cc_sm8450_clocks,
|
||||
.num_clks = ARRAY_SIZE(disp_cc_sm8450_clocks),
|
||||
|
||||
@@ -4,12 +4,11 @@
|
||||
* Copyright (c) 2023, Linaro Ltd.
|
||||
*/
|
||||
|
||||
#include <linux/clk.h>
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
@@ -1746,7 +1745,7 @@ static const struct regmap_config disp_cc_sm8550_regmap_config = {
|
||||
.fast_io = true,
|
||||
};
|
||||
|
||||
static struct qcom_cc_desc disp_cc_sm8550_desc = {
|
||||
static const struct qcom_cc_desc disp_cc_sm8550_desc = {
|
||||
.config = &disp_cc_sm8550_regmap_config,
|
||||
.clks = disp_cc_sm8550_clocks,
|
||||
.num_clks = ARRAY_SIZE(disp_cc_sm8550_clocks),
|
||||
|
||||
@@ -1883,11 +1883,11 @@ static const struct regmap_config disp_cc_sm8750_regmap_config = {
|
||||
.reg_bits = 32,
|
||||
.reg_stride = 4,
|
||||
.val_bits = 32,
|
||||
.max_register = 0x11014,
|
||||
.max_register = 0xf004, /* 0x10000, 0x10004 and maybe others are for TZ */
|
||||
.fast_io = true,
|
||||
};
|
||||
|
||||
static struct qcom_cc_desc disp_cc_sm8750_desc = {
|
||||
static const struct qcom_cc_desc disp_cc_sm8750_desc = {
|
||||
.config = &disp_cc_sm8750_regmap_config,
|
||||
.clks = disp_cc_sm8750_clocks,
|
||||
.num_clks = ARRAY_SIZE(disp_cc_sm8750_clocks),
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/regmap.h>
|
||||
@@ -1418,7 +1417,7 @@ static const struct regmap_config disp_cc_0_sa8775p_regmap_config = {
|
||||
.fast_io = true,
|
||||
};
|
||||
|
||||
static struct qcom_cc_desc disp_cc_0_sa8775p_desc = {
|
||||
static const struct qcom_cc_desc disp_cc_0_sa8775p_desc = {
|
||||
.config = &disp_cc_0_sa8775p_regmap_config,
|
||||
.clks = disp_cc_0_sa8775p_clocks,
|
||||
.num_clks = ARRAY_SIZE(disp_cc_0_sa8775p_clocks),
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/regmap.h>
|
||||
@@ -1418,7 +1417,7 @@ static const struct regmap_config disp_cc_1_sa8775p_regmap_config = {
|
||||
.fast_io = true,
|
||||
};
|
||||
|
||||
static struct qcom_cc_desc disp_cc_1_sa8775p_desc = {
|
||||
static const struct qcom_cc_desc disp_cc_1_sa8775p_desc = {
|
||||
.config = &disp_cc_1_sa8775p_regmap_config,
|
||||
.clks = disp_cc_1_sa8775p_clocks,
|
||||
.num_clks = ARRAY_SIZE(disp_cc_1_sa8775p_clocks),
|
||||
|
||||
@@ -592,13 +592,19 @@ static struct clk_rcg2 gcc_qupv3_spi1_clk_src = {
|
||||
};
|
||||
|
||||
static const struct freq_tbl ftbl_gcc_qupv3_uart0_clk_src[] = {
|
||||
F(960000, P_XO, 10, 2, 5),
|
||||
F(4800000, P_XO, 5, 0, 0),
|
||||
F(9600000, P_XO, 2, 4, 5),
|
||||
F(16000000, P_GPLL0_OUT_MAIN, 10, 1, 5),
|
||||
F(3686400, P_GCC_GPLL0_OUT_MAIN_DIV_CLK_SRC, 1, 144, 15625),
|
||||
F(7372800, P_GCC_GPLL0_OUT_MAIN_DIV_CLK_SRC, 1, 288, 15625),
|
||||
F(14745600, P_GCC_GPLL0_OUT_MAIN_DIV_CLK_SRC, 1, 576, 15625),
|
||||
F(24000000, P_XO, 1, 0, 0),
|
||||
F(25000000, P_GPLL0_OUT_MAIN, 16, 1, 2),
|
||||
F(50000000, P_GPLL0_OUT_MAIN, 16, 0, 0),
|
||||
F(32000000, P_GPLL0_OUT_MAIN, 1, 1, 25),
|
||||
F(40000000, P_GPLL0_OUT_MAIN, 1, 1, 20),
|
||||
F(46400000, P_GPLL0_OUT_MAIN, 1, 29, 500),
|
||||
F(48000000, P_GPLL0_OUT_MAIN, 1, 3, 50),
|
||||
F(51200000, P_GPLL0_OUT_MAIN, 1, 8, 125),
|
||||
F(56000000, P_GPLL0_OUT_MAIN, 1, 7, 100),
|
||||
F(58982400, P_GPLL0_OUT_MAIN, 1, 1152, 15625),
|
||||
F(60000000, P_GPLL0_OUT_MAIN, 1, 3, 40),
|
||||
F(64000000, P_GPLL0_OUT_MAIN, 12.5, 0, 0),
|
||||
{ }
|
||||
};
|
||||
@@ -634,11 +640,11 @@ static struct clk_rcg2 gcc_qupv3_uart1_clk_src = {
|
||||
static const struct freq_tbl ftbl_gcc_sdcc1_apps_clk_src[] = {
|
||||
F(144000, P_XO, 16, 12, 125),
|
||||
F(400000, P_XO, 12, 1, 5),
|
||||
F(24000000, P_XO, 1, 0, 0),
|
||||
F(48000000, P_GPLL2_OUT_MAIN, 12, 1, 2),
|
||||
F(96000000, P_GPLL2_OUT_MAIN, 6, 1, 2),
|
||||
F(24000000, P_GPLL2_OUT_MAIN, 12, 1, 2),
|
||||
F(48000000, P_GPLL2_OUT_MAIN, 12, 0, 0),
|
||||
F(96000000, P_GPLL2_OUT_MAIN, 6, 0, 0),
|
||||
F(177777778, P_GPLL0_OUT_MAIN, 4.5, 0, 0),
|
||||
F(192000000, P_GPLL2_OUT_MAIN, 6, 0, 0),
|
||||
F(192000000, P_GPLL2_OUT_MAIN, 3, 0, 0),
|
||||
F(200000000, P_GPLL0_OUT_MAIN, 4, 0, 0),
|
||||
{ }
|
||||
};
|
||||
|
||||
@@ -108,6 +108,20 @@ static struct clk_alpha_pll_postdiv gpll0 = {
|
||||
},
|
||||
};
|
||||
|
||||
static struct clk_alpha_pll_postdiv gpll0_out_aux = {
|
||||
.offset = 0x20000,
|
||||
.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
|
||||
.width = 4,
|
||||
.clkr.hw.init = &(const struct clk_init_data) {
|
||||
.name = "gpll0_out_aux",
|
||||
.parent_hws = (const struct clk_hw *[]) {
|
||||
&gpll0_main.clkr.hw
|
||||
},
|
||||
.num_parents = 1,
|
||||
.ops = &clk_alpha_pll_postdiv_ro_ops,
|
||||
},
|
||||
};
|
||||
|
||||
static struct clk_alpha_pll gpll4_main = {
|
||||
.offset = 0x22000,
|
||||
.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT_EVO],
|
||||
@@ -3896,6 +3910,7 @@ static struct clk_regmap *gcc_ipq9574_clks[] = {
|
||||
[GCC_PCIE1_PIPE_CLK] = &gcc_pcie1_pipe_clk.clkr,
|
||||
[GCC_PCIE2_PIPE_CLK] = &gcc_pcie2_pipe_clk.clkr,
|
||||
[GCC_PCIE3_PIPE_CLK] = &gcc_pcie3_pipe_clk.clkr,
|
||||
[GPLL0_OUT_AUX] = &gpll0_out_aux.clkr,
|
||||
};
|
||||
|
||||
static const struct qcom_reset_map gcc_ipq9574_resets[] = {
|
||||
|
||||
@@ -3770,7 +3770,7 @@ static struct clk_branch gcc_venus0_axi_clk = {
|
||||
|
||||
static struct clk_branch gcc_venus0_core0_vcodec0_clk = {
|
||||
.halt_reg = 0x4c02c,
|
||||
.halt_check = BRANCH_HALT,
|
||||
.halt_check = BRANCH_HALT_SKIP,
|
||||
.clkr = {
|
||||
.enable_reg = 0x4c02c,
|
||||
.enable_mask = BIT(0),
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
#include <linux/bitops.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/property.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_platform.h>
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
#include <linux/bitops.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/property.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/clk-provider.h>
|
||||
|
||||
@@ -2420,6 +2420,8 @@ static struct gdsc *gcc_sdm660_gdscs[] = {
|
||||
static const struct qcom_reset_map gcc_sdm660_resets[] = {
|
||||
[GCC_QUSB2PHY_PRIM_BCR] = { 0x12000 },
|
||||
[GCC_QUSB2PHY_SEC_BCR] = { 0x12004 },
|
||||
[GCC_SDCC2_BCR] = { 0x14000 },
|
||||
[GCC_SDCC1_BCR] = { 0x16000 },
|
||||
[GCC_UFS_BCR] = { 0x75000 },
|
||||
[GCC_USB3_DP_PHY_BCR] = { 0x50028 },
|
||||
[GCC_USB3_PHY_BCR] = { 0x50020 },
|
||||
|
||||
@@ -3497,7 +3497,7 @@ static struct gdsc usb30_prim_gdsc = {
|
||||
.pd = {
|
||||
.name = "usb30_prim_gdsc",
|
||||
},
|
||||
.pwrsts = PWRSTS_OFF_ON,
|
||||
.pwrsts = PWRSTS_RET_ON,
|
||||
.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
|
||||
};
|
||||
|
||||
@@ -3506,7 +3506,7 @@ static struct gdsc usb3_phy_gdsc = {
|
||||
.pd = {
|
||||
.name = "usb3_phy_gdsc",
|
||||
},
|
||||
.pwrsts = PWRSTS_OFF_ON,
|
||||
.pwrsts = PWRSTS_RET_ON,
|
||||
.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
|
||||
};
|
||||
|
||||
|
||||
@@ -2564,19 +2564,6 @@ static struct clk_branch gcc_disp_hf_axi_clk = {
|
||||
},
|
||||
};
|
||||
|
||||
static struct clk_branch gcc_disp_xo_clk = {
|
||||
.halt_reg = 0x27018,
|
||||
.halt_check = BRANCH_HALT,
|
||||
.clkr = {
|
||||
.enable_reg = 0x27018,
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "gcc_disp_xo_clk",
|
||||
.ops = &clk_branch2_ops,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
static struct clk_branch gcc_gp1_clk = {
|
||||
.halt_reg = 0x64000,
|
||||
.halt_check = BRANCH_HALT,
|
||||
@@ -2631,21 +2618,6 @@ static struct clk_branch gcc_gp3_clk = {
|
||||
},
|
||||
};
|
||||
|
||||
static struct clk_branch gcc_gpu_cfg_ahb_clk = {
|
||||
.halt_reg = 0x71004,
|
||||
.halt_check = BRANCH_HALT_VOTED,
|
||||
.hwcg_reg = 0x71004,
|
||||
.hwcg_bit = 1,
|
||||
.clkr = {
|
||||
.enable_reg = 0x71004,
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "gcc_gpu_cfg_ahb_clk",
|
||||
.ops = &clk_branch2_ops,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
static struct clk_branch gcc_gpu_gpll0_cph_clk_src = {
|
||||
.halt_check = BRANCH_HALT_DELAY,
|
||||
.clkr = {
|
||||
@@ -6268,7 +6240,6 @@ static struct clk_regmap *gcc_x1e80100_clocks[] = {
|
||||
[GCC_CNOC_PCIE_TUNNEL_CLK] = &gcc_cnoc_pcie_tunnel_clk.clkr,
|
||||
[GCC_DDRSS_GPU_AXI_CLK] = &gcc_ddrss_gpu_axi_clk.clkr,
|
||||
[GCC_DISP_HF_AXI_CLK] = &gcc_disp_hf_axi_clk.clkr,
|
||||
[GCC_DISP_XO_CLK] = &gcc_disp_xo_clk.clkr,
|
||||
[GCC_GP1_CLK] = &gcc_gp1_clk.clkr,
|
||||
[GCC_GP1_CLK_SRC] = &gcc_gp1_clk_src.clkr,
|
||||
[GCC_GP2_CLK] = &gcc_gp2_clk.clkr,
|
||||
@@ -6281,7 +6252,6 @@ static struct clk_regmap *gcc_x1e80100_clocks[] = {
|
||||
[GCC_GPLL7] = &gcc_gpll7.clkr,
|
||||
[GCC_GPLL8] = &gcc_gpll8.clkr,
|
||||
[GCC_GPLL9] = &gcc_gpll9.clkr,
|
||||
[GCC_GPU_CFG_AHB_CLK] = &gcc_gpu_cfg_ahb_clk.clkr,
|
||||
[GCC_GPU_GPLL0_CPH_CLK_SRC] = &gcc_gpu_gpll0_cph_clk_src.clkr,
|
||||
[GCC_GPU_GPLL0_DIV_CPH_CLK_SRC] = &gcc_gpu_gpll0_div_cph_clk_src.clkr,
|
||||
[GCC_GPU_MEMNOC_GFX_CLK] = &gcc_gpu_memnoc_gfx_clk.clkr,
|
||||
|
||||
+74
-24
@@ -46,7 +46,7 @@
|
||||
#define RETAIN_MEM BIT(14)
|
||||
#define RETAIN_PERIPH BIT(13)
|
||||
|
||||
#define STATUS_POLL_TIMEOUT_US 1500
|
||||
#define STATUS_POLL_TIMEOUT_US 2000
|
||||
#define TIMEOUT_US 500
|
||||
|
||||
#define domain_to_gdsc(domain) container_of(domain, struct gdsc, pd)
|
||||
@@ -292,6 +292,9 @@ static int gdsc_enable(struct generic_pm_domain *domain)
|
||||
*/
|
||||
udelay(1);
|
||||
|
||||
if (sc->flags & RETAIN_FF_ENABLE)
|
||||
gdsc_retain_ff_on(sc);
|
||||
|
||||
/* Turn on HW trigger mode if supported */
|
||||
if (sc->flags & HW_CTRL) {
|
||||
ret = gdsc_hwctrl(sc, true);
|
||||
@@ -308,9 +311,6 @@ static int gdsc_enable(struct generic_pm_domain *domain)
|
||||
udelay(1);
|
||||
}
|
||||
|
||||
if (sc->flags & RETAIN_FF_ENABLE)
|
||||
gdsc_retain_ff_on(sc);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -457,13 +457,6 @@ static int gdsc_init(struct gdsc *sc)
|
||||
goto err_disable_supply;
|
||||
}
|
||||
|
||||
/* Turn on HW trigger mode if supported */
|
||||
if (sc->flags & HW_CTRL) {
|
||||
ret = gdsc_hwctrl(sc, true);
|
||||
if (ret < 0)
|
||||
goto err_disable_supply;
|
||||
}
|
||||
|
||||
/*
|
||||
* Make sure the retain bit is set if the GDSC is already on,
|
||||
* otherwise we end up turning off the GDSC and destroying all
|
||||
@@ -471,6 +464,14 @@ static int gdsc_init(struct gdsc *sc)
|
||||
*/
|
||||
if (sc->flags & RETAIN_FF_ENABLE)
|
||||
gdsc_retain_ff_on(sc);
|
||||
|
||||
/* Turn on HW trigger mode if supported */
|
||||
if (sc->flags & HW_CTRL) {
|
||||
ret = gdsc_hwctrl(sc, true);
|
||||
if (ret < 0)
|
||||
goto err_disable_supply;
|
||||
}
|
||||
|
||||
} else if (sc->flags & ALWAYS_ON) {
|
||||
/* If ALWAYS_ON GDSCs are not ON, turn them ON */
|
||||
gdsc_enable(&sc->pd);
|
||||
@@ -506,6 +507,55 @@ err_disable_supply:
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int gdsc_add_subdomain_list(struct dev_pm_domain_list *pd_list,
|
||||
struct generic_pm_domain *subdomain)
|
||||
{
|
||||
int i, ret;
|
||||
|
||||
for (i = 0; i < pd_list->num_pds; i++) {
|
||||
struct device *dev = pd_list->pd_devs[i];
|
||||
struct generic_pm_domain *genpd = pd_to_genpd(dev->pm_domain);
|
||||
|
||||
ret = pm_genpd_add_subdomain(genpd, subdomain);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void gdsc_remove_subdomain_list(struct dev_pm_domain_list *pd_list,
|
||||
struct generic_pm_domain *subdomain)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < pd_list->num_pds; i++) {
|
||||
struct device *dev = pd_list->pd_devs[i];
|
||||
struct generic_pm_domain *genpd = pd_to_genpd(dev->pm_domain);
|
||||
|
||||
pm_genpd_remove_subdomain(genpd, subdomain);
|
||||
}
|
||||
}
|
||||
|
||||
static void gdsc_pm_subdomain_remove(struct gdsc_desc *desc, size_t num)
|
||||
{
|
||||
struct device *dev = desc->dev;
|
||||
struct gdsc **scs = desc->scs;
|
||||
int i;
|
||||
|
||||
/* Remove subdomains */
|
||||
for (i = num - 1; i >= 0; i--) {
|
||||
if (!scs[i])
|
||||
continue;
|
||||
if (scs[i]->parent)
|
||||
pm_genpd_remove_subdomain(scs[i]->parent, &scs[i]->pd);
|
||||
else if (!IS_ERR_OR_NULL(dev->pm_domain))
|
||||
pm_genpd_remove_subdomain(pd_to_genpd(dev->pm_domain), &scs[i]->pd);
|
||||
else if (desc->pd_list)
|
||||
gdsc_remove_subdomain_list(desc->pd_list, &scs[i]->pd);
|
||||
}
|
||||
}
|
||||
|
||||
int gdsc_register(struct gdsc_desc *desc,
|
||||
struct reset_controller_dev *rcdev, struct regmap *regmap)
|
||||
{
|
||||
@@ -555,30 +605,30 @@ int gdsc_register(struct gdsc_desc *desc,
|
||||
if (!scs[i])
|
||||
continue;
|
||||
if (scs[i]->parent)
|
||||
pm_genpd_add_subdomain(scs[i]->parent, &scs[i]->pd);
|
||||
ret = pm_genpd_add_subdomain(scs[i]->parent, &scs[i]->pd);
|
||||
else if (!IS_ERR_OR_NULL(dev->pm_domain))
|
||||
pm_genpd_add_subdomain(pd_to_genpd(dev->pm_domain), &scs[i]->pd);
|
||||
ret = pm_genpd_add_subdomain(pd_to_genpd(dev->pm_domain), &scs[i]->pd);
|
||||
else if (desc->pd_list)
|
||||
ret = gdsc_add_subdomain_list(desc->pd_list, &scs[i]->pd);
|
||||
|
||||
if (ret)
|
||||
goto err_pm_subdomain_remove;
|
||||
}
|
||||
|
||||
return of_genpd_add_provider_onecell(dev->of_node, data);
|
||||
|
||||
err_pm_subdomain_remove:
|
||||
gdsc_pm_subdomain_remove(desc, i);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void gdsc_unregister(struct gdsc_desc *desc)
|
||||
{
|
||||
int i;
|
||||
struct device *dev = desc->dev;
|
||||
struct gdsc **scs = desc->scs;
|
||||
size_t num = desc->num;
|
||||
|
||||
/* Remove subdomains */
|
||||
for (i = 0; i < num; i++) {
|
||||
if (!scs[i])
|
||||
continue;
|
||||
if (scs[i]->parent)
|
||||
pm_genpd_remove_subdomain(scs[i]->parent, &scs[i]->pd);
|
||||
else if (!IS_ERR_OR_NULL(dev->pm_domain))
|
||||
pm_genpd_remove_subdomain(pd_to_genpd(dev->pm_domain), &scs[i]->pd);
|
||||
}
|
||||
gdsc_pm_subdomain_remove(desc, num);
|
||||
of_genpd_del_provider(dev->of_node);
|
||||
}
|
||||
|
||||
|
||||
@@ -80,6 +80,7 @@ struct gdsc_desc {
|
||||
struct device *dev;
|
||||
struct gdsc **scs;
|
||||
size_t num;
|
||||
struct dev_pm_domain_list *pd_list;
|
||||
};
|
||||
|
||||
#ifdef CONFIG_QCOM_GDSC
|
||||
|
||||
@@ -7,11 +7,10 @@
|
||||
#include <linux/bitops.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/reset-controller.h>
|
||||
|
||||
#include <dt-bindings/clock/qcom,gpucc-msm8998.h>
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
#include <dt-bindings/clock/qcom,sa8775p-gpucc.h>
|
||||
#include <dt-bindings/clock/qcom,qcs8300-gpucc.h>
|
||||
|
||||
#include "clk-alpha-pll.h"
|
||||
#include "clk-branch.h"
|
||||
@@ -317,6 +317,24 @@ static struct clk_branch gpu_cc_crc_ahb_clk = {
|
||||
},
|
||||
};
|
||||
|
||||
static struct clk_branch gpu_cc_cx_accu_shift_clk = {
|
||||
.halt_reg = 0x95e8,
|
||||
.halt_check = BRANCH_HALT,
|
||||
.clkr = {
|
||||
.enable_reg = 0x95e8,
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data){
|
||||
.name = "gpu_cc_cx_accu_shift_clk",
|
||||
.parent_hws = (const struct clk_hw*[]){
|
||||
&gpu_cc_xo_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
.ops = &clk_branch2_ops,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
static struct clk_branch gpu_cc_cx_ff_clk = {
|
||||
.halt_reg = 0x914c,
|
||||
.halt_check = BRANCH_HALT,
|
||||
@@ -420,6 +438,24 @@ static struct clk_branch gpu_cc_demet_clk = {
|
||||
},
|
||||
};
|
||||
|
||||
static struct clk_branch gpu_cc_gx_accu_shift_clk = {
|
||||
.halt_reg = 0x95e4,
|
||||
.halt_check = BRANCH_HALT,
|
||||
.clkr = {
|
||||
.enable_reg = 0x95e4,
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data){
|
||||
.name = "gpu_cc_gx_accu_shift_clk",
|
||||
.parent_hws = (const struct clk_hw*[]){
|
||||
&gpu_cc_xo_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
.ops = &clk_branch2_ops,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
static struct clk_branch gpu_cc_hlos1_vote_gpu_smmu_clk = {
|
||||
.halt_reg = 0x7000,
|
||||
.halt_check = BRANCH_HALT_VOTED,
|
||||
@@ -499,6 +535,7 @@ static struct clk_regmap *gpu_cc_sa8775p_clocks[] = {
|
||||
[GPU_CC_AHB_CLK] = &gpu_cc_ahb_clk.clkr,
|
||||
[GPU_CC_CB_CLK] = &gpu_cc_cb_clk.clkr,
|
||||
[GPU_CC_CRC_AHB_CLK] = &gpu_cc_crc_ahb_clk.clkr,
|
||||
[GPU_CC_CX_ACCU_SHIFT_CLK] = NULL,
|
||||
[GPU_CC_CX_FF_CLK] = &gpu_cc_cx_ff_clk.clkr,
|
||||
[GPU_CC_CX_GMU_CLK] = &gpu_cc_cx_gmu_clk.clkr,
|
||||
[GPU_CC_CX_SNOC_DVM_CLK] = &gpu_cc_cx_snoc_dvm_clk.clkr,
|
||||
@@ -508,6 +545,7 @@ static struct clk_regmap *gpu_cc_sa8775p_clocks[] = {
|
||||
[GPU_CC_DEMET_DIV_CLK_SRC] = &gpu_cc_demet_div_clk_src.clkr,
|
||||
[GPU_CC_FF_CLK_SRC] = &gpu_cc_ff_clk_src.clkr,
|
||||
[GPU_CC_GMU_CLK_SRC] = &gpu_cc_gmu_clk_src.clkr,
|
||||
[GPU_CC_GX_ACCU_SHIFT_CLK] = NULL,
|
||||
[GPU_CC_HLOS1_VOTE_GPU_SMMU_CLK] = &gpu_cc_hlos1_vote_gpu_smmu_clk.clkr,
|
||||
[GPU_CC_HUB_AHB_DIV_CLK_SRC] = &gpu_cc_hub_ahb_div_clk_src.clkr,
|
||||
[GPU_CC_HUB_AON_CLK] = &gpu_cc_hub_aon_clk.clkr,
|
||||
@@ -583,6 +621,7 @@ static const struct qcom_cc_desc gpu_cc_sa8775p_desc = {
|
||||
};
|
||||
|
||||
static const struct of_device_id gpu_cc_sa8775p_match_table[] = {
|
||||
{ .compatible = "qcom,qcs8300-gpucc" },
|
||||
{ .compatible = "qcom,sa8775p-gpucc" },
|
||||
{ }
|
||||
};
|
||||
@@ -596,6 +635,14 @@ static int gpu_cc_sa8775p_probe(struct platform_device *pdev)
|
||||
if (IS_ERR(regmap))
|
||||
return PTR_ERR(regmap);
|
||||
|
||||
if (of_device_is_compatible(pdev->dev.of_node, "qcom,qcs8300-gpucc")) {
|
||||
gpu_cc_pll0_config.l = 0x31;
|
||||
gpu_cc_pll0_config.alpha = 0xe555;
|
||||
|
||||
gpu_cc_sa8775p_clocks[GPU_CC_CX_ACCU_SHIFT_CLK] = &gpu_cc_cx_accu_shift_clk.clkr;
|
||||
gpu_cc_sa8775p_clocks[GPU_CC_GX_ACCU_SHIFT_CLK] = &gpu_cc_gx_accu_shift_clk.clkr;
|
||||
}
|
||||
|
||||
clk_lucid_evo_pll_configure(&gpu_cc_pll0, regmap, &gpu_cc_pll0_config);
|
||||
clk_lucid_evo_pll_configure(&gpu_cc_pll1, regmap, &gpu_cc_pll1_config);
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
*/
|
||||
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
*/
|
||||
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
@@ -415,7 +416,7 @@ static const struct regmap_config gpu_cc_sc8280xp_regmap_config = {
|
||||
.fast_io = true,
|
||||
};
|
||||
|
||||
static struct qcom_cc_desc gpu_cc_sc8280xp_desc = {
|
||||
static const struct qcom_cc_desc gpu_cc_sc8280xp_desc = {
|
||||
.config = &gpu_cc_sc8280xp_regmap_config,
|
||||
.clks = gpu_cc_sc8280xp_clocks,
|
||||
.num_clks = ARRAY_SIZE(gpu_cc_sc8280xp_clocks),
|
||||
|
||||
@@ -6,15 +6,14 @@
|
||||
*/
|
||||
|
||||
#include <linux/bitops.h>
|
||||
#include <linux/clk.h>
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/reset-controller.h>
|
||||
|
||||
#include <dt-bindings/clock/qcom,gpucc-sdm660.h>
|
||||
|
||||
#include "clk-alpha-pll.h"
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
*/
|
||||
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
*/
|
||||
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
*/
|
||||
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
*/
|
||||
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
#include <linux/clk.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
|
||||
@@ -523,7 +523,7 @@ static const struct regmap_config gpu_cc_x1p42100_regmap_config = {
|
||||
.fast_io = true,
|
||||
};
|
||||
|
||||
static struct qcom_cc_desc gpu_cc_x1p42100_desc = {
|
||||
static const struct qcom_cc_desc gpu_cc_x1p42100_desc = {
|
||||
.config = &gpu_cc_x1p42100_regmap_config,
|
||||
.clks = gpu_cc_x1p42100_clocks,
|
||||
.num_clks = ARRAY_SIZE(gpu_cc_x1p42100_clocks),
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
#include <linux/init.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/property.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/of.h>
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
#include <linux/init.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/property.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/of.h>
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Copyright (c) 2021, The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2025, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#include <linux/clk-provider.h>
|
||||
@@ -713,14 +714,24 @@ static const struct qcom_reset_map lpass_audio_cc_sc7280_resets[] = {
|
||||
[LPASS_AUDIO_SWR_WSA_CGCR] = { 0xb0, 1 },
|
||||
};
|
||||
|
||||
static const struct regmap_config lpass_audio_cc_sc7280_reset_regmap_config = {
|
||||
.name = "lpassaudio_cc_reset",
|
||||
.reg_bits = 32,
|
||||
.reg_stride = 4,
|
||||
.val_bits = 32,
|
||||
.fast_io = true,
|
||||
.max_register = 0xc8,
|
||||
};
|
||||
|
||||
static const struct qcom_cc_desc lpass_audio_cc_reset_sc7280_desc = {
|
||||
.config = &lpass_audio_cc_sc7280_regmap_config,
|
||||
.config = &lpass_audio_cc_sc7280_reset_regmap_config,
|
||||
.resets = lpass_audio_cc_sc7280_resets,
|
||||
.num_resets = ARRAY_SIZE(lpass_audio_cc_sc7280_resets),
|
||||
};
|
||||
|
||||
static const struct of_device_id lpass_audio_cc_sc7280_match_table[] = {
|
||||
{ .compatible = "qcom,sc7280-lpassaudiocc" },
|
||||
{ .compatible = "qcom,qcm6490-lpassaudiocc", .data = &lpass_audio_cc_reset_sc7280_desc },
|
||||
{ .compatible = "qcom,sc7280-lpassaudiocc", .data = &lpass_audio_cc_sc7280_desc },
|
||||
{ }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, lpass_audio_cc_sc7280_match_table);
|
||||
@@ -752,13 +763,17 @@ static int lpass_audio_cc_sc7280_probe(struct platform_device *pdev)
|
||||
struct regmap *regmap;
|
||||
int ret;
|
||||
|
||||
desc = device_get_match_data(&pdev->dev);
|
||||
|
||||
if (of_device_is_compatible(pdev->dev.of_node, "qcom,qcm6490-lpassaudiocc"))
|
||||
return qcom_cc_probe_by_index(pdev, 1, desc);
|
||||
|
||||
ret = lpass_audio_setup_runtime_pm(pdev);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
lpass_audio_cc_sc7280_regmap_config.name = "lpassaudio_cc";
|
||||
lpass_audio_cc_sc7280_regmap_config.max_register = 0x2f000;
|
||||
desc = &lpass_audio_cc_sc7280_desc;
|
||||
|
||||
regmap = qcom_cc_map(pdev, desc);
|
||||
if (IS_ERR(regmap)) {
|
||||
@@ -772,7 +787,7 @@ static int lpass_audio_cc_sc7280_probe(struct platform_device *pdev)
|
||||
regmap_write(regmap, 0x4, 0x3b);
|
||||
regmap_write(regmap, 0x8, 0xff05);
|
||||
|
||||
ret = qcom_cc_really_probe(&pdev->dev, &lpass_audio_cc_sc7280_desc, regmap);
|
||||
ret = qcom_cc_really_probe(&pdev->dev, desc, regmap);
|
||||
if (ret) {
|
||||
dev_err(&pdev->dev, "Failed to register LPASS AUDIO CC clocks\n");
|
||||
goto exit;
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_address.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
#include <dt-bindings/clock/qcom,lpass-sdm845.h>
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/pm_clock.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
#include <dt-bindings/clock/qcom,lpasscorecc-sc7180.h>
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/pm_clock.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
|
||||
@@ -6,9 +6,9 @@
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/reset-controller.h>
|
||||
|
||||
#include <dt-bindings/clock/qcom,mmcc-apq8084.h>
|
||||
#include <dt-bindings/reset/qcom,mmcc-apq8084.h>
|
||||
|
||||
@@ -8,13 +8,11 @@
|
||||
#include <linux/err.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/property.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/clk.h>
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/reset-controller.h>
|
||||
|
||||
#include <dt-bindings/clock/qcom,mmcc-msm8960.h>
|
||||
#include <dt-bindings/reset/qcom,mmcc-msm8960.h>
|
||||
|
||||
@@ -7,11 +7,11 @@
|
||||
#include <linux/bitops.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/reset-controller.h>
|
||||
|
||||
#include <dt-bindings/clock/qcom,mmcc-msm8974.h>
|
||||
#include <dt-bindings/reset/qcom,mmcc-msm8974.h>
|
||||
|
||||
@@ -7,12 +7,11 @@
|
||||
#include <linux/bitops.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/reset-controller.h>
|
||||
#include <linux/clk.h>
|
||||
|
||||
#include <dt-bindings/clock/qcom,mmcc-msm8994.h>
|
||||
|
||||
|
||||
@@ -7,12 +7,10 @@
|
||||
#include <linux/bitops.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/reset-controller.h>
|
||||
#include <linux/clk.h>
|
||||
|
||||
#include <dt-bindings/clock/qcom,mmcc-msm8996.h>
|
||||
|
||||
|
||||
@@ -7,11 +7,10 @@
|
||||
#include <linux/bitops.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/reset-controller.h>
|
||||
|
||||
#include <dt-bindings/clock/qcom,mmcc-msm8998.h>
|
||||
|
||||
|
||||
@@ -9,14 +9,10 @@
|
||||
#include <linux/bitops.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/property.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/reset-controller.h>
|
||||
#include <linux/clk.h>
|
||||
|
||||
|
||||
#include <dt-bindings/clock/qcom,mmcc-sdm660.h>
|
||||
|
||||
@@ -2544,7 +2540,7 @@ static struct clk_branch video_core_clk = {
|
||||
|
||||
static struct clk_branch video_subcore0_clk = {
|
||||
.halt_reg = 0x1048,
|
||||
.halt_check = BRANCH_HALT,
|
||||
.halt_check = BRANCH_HALT_SKIP,
|
||||
.clkr = {
|
||||
.enable_reg = 0x1048,
|
||||
.enable_mask = BIT(0),
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -512,7 +512,7 @@ static const struct regmap_config video_cc_sa8775p_regmap_config = {
|
||||
.fast_io = true,
|
||||
};
|
||||
|
||||
static struct qcom_cc_desc video_cc_sa8775p_desc = {
|
||||
static const struct qcom_cc_desc video_cc_sa8775p_desc = {
|
||||
.config = &video_cc_sa8775p_regmap_config,
|
||||
.clks = video_cc_sa8775p_clocks,
|
||||
.num_clks = ARRAY_SIZE(video_cc_sa8775p_clocks),
|
||||
@@ -523,6 +523,7 @@ static struct qcom_cc_desc video_cc_sa8775p_desc = {
|
||||
};
|
||||
|
||||
static const struct of_device_id video_cc_sa8775p_match_table[] = {
|
||||
{ .compatible = "qcom,qcs8300-videocc" },
|
||||
{ .compatible = "qcom,sa8775p-videocc" },
|
||||
{ }
|
||||
};
|
||||
@@ -550,6 +551,13 @@ static int video_cc_sa8775p_probe(struct platform_device *pdev)
|
||||
clk_lucid_evo_pll_configure(&video_pll0, regmap, &video_pll0_config);
|
||||
clk_lucid_evo_pll_configure(&video_pll1, regmap, &video_pll1_config);
|
||||
|
||||
/*
|
||||
* Set mvs0c clock divider to div-3 to make the mvs0 and
|
||||
* mvs0c clocks to run at the same frequency on QCS8300
|
||||
*/
|
||||
if (of_device_is_compatible(pdev->dev.of_node, "qcom,qcs8300-videocc"))
|
||||
regmap_write(regmap, video_cc_mvs0c_div2_div_clk_src.reg, 2);
|
||||
|
||||
/* Keep some clocks always enabled */
|
||||
qcom_branch_set_clk_en(regmap, 0x80ec); /* VIDEO_CC_AHB_CLK */
|
||||
qcom_branch_set_clk_en(regmap, 0x8144); /* VIDEO_CC_SLEEP_CLK */
|
||||
|
||||
@@ -510,7 +510,7 @@ static const struct regmap_config video_cc_sm8350_regmap_config = {
|
||||
.fast_io = true,
|
||||
};
|
||||
|
||||
static struct qcom_cc_desc video_cc_sm8350_desc = {
|
||||
static const struct qcom_cc_desc video_cc_sm8350_desc = {
|
||||
.config = &video_cc_sm8350_regmap_config,
|
||||
.clks = video_cc_sm8350_clocks,
|
||||
.num_clks = ARRAY_SIZE(video_cc_sm8350_clocks),
|
||||
|
||||
@@ -415,7 +415,7 @@ static const struct regmap_config video_cc_sm8450_regmap_config = {
|
||||
.fast_io = true,
|
||||
};
|
||||
|
||||
static struct qcom_cc_desc video_cc_sm8450_desc = {
|
||||
static const struct qcom_cc_desc video_cc_sm8450_desc = {
|
||||
.config = &video_cc_sm8450_regmap_config,
|
||||
.clks = video_cc_sm8450_clocks,
|
||||
.num_clks = ARRAY_SIZE(video_cc_sm8450_clocks),
|
||||
|
||||
@@ -519,7 +519,7 @@ static const struct regmap_config video_cc_sm8550_regmap_config = {
|
||||
.fast_io = true,
|
||||
};
|
||||
|
||||
static struct qcom_cc_desc video_cc_sm8550_desc = {
|
||||
static const struct qcom_cc_desc video_cc_sm8550_desc = {
|
||||
.config = &video_cc_sm8550_regmap_config,
|
||||
.clks = video_cc_sm8550_clocks,
|
||||
.num_clks = ARRAY_SIZE(video_cc_sm8550_clocks),
|
||||
|
||||
@@ -153,5 +153,7 @@
|
||||
#define GCC_USB_30_BCR 7
|
||||
#define GCC_USB_PHY_CFG_AHB2PHY_BCR 8
|
||||
#define GCC_MSS_RESTART 9
|
||||
#define GCC_SDCC1_BCR 10
|
||||
#define GCC_SDCC2_BCR 11
|
||||
|
||||
#endif
|
||||
|
||||
@@ -202,4 +202,5 @@
|
||||
#define GCC_PCIE1_PIPE_CLK 211
|
||||
#define GCC_PCIE2_PIPE_CLK 212
|
||||
#define GCC_PCIE3_PIPE_CLK 213
|
||||
#define GPLL0_OUT_AUX 214
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,152 @@
|
||||
/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
|
||||
/*
|
||||
* Copyright (c) 2023, 2025 The Linux Foundation. All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef _DT_BINDINGS_CLOCK_IPQ_NSSCC_9574_H
|
||||
#define _DT_BINDINGS_CLOCK_IPQ_NSSCC_9574_H
|
||||
|
||||
#define NSS_CC_CE_APB_CLK 0
|
||||
#define NSS_CC_CE_AXI_CLK 1
|
||||
#define NSS_CC_CE_CLK_SRC 2
|
||||
#define NSS_CC_CFG_CLK_SRC 3
|
||||
#define NSS_CC_CLC_AXI_CLK 4
|
||||
#define NSS_CC_CLC_CLK_SRC 5
|
||||
#define NSS_CC_CRYPTO_CLK 6
|
||||
#define NSS_CC_CRYPTO_CLK_SRC 7
|
||||
#define NSS_CC_CRYPTO_PPE_CLK 8
|
||||
#define NSS_CC_HAQ_AHB_CLK 9
|
||||
#define NSS_CC_HAQ_AXI_CLK 10
|
||||
#define NSS_CC_HAQ_CLK_SRC 11
|
||||
#define NSS_CC_IMEM_AHB_CLK 12
|
||||
#define NSS_CC_IMEM_CLK_SRC 13
|
||||
#define NSS_CC_IMEM_QSB_CLK 14
|
||||
#define NSS_CC_INT_CFG_CLK_SRC 15
|
||||
#define NSS_CC_NSS_CSR_CLK 16
|
||||
#define NSS_CC_NSSNOC_CE_APB_CLK 17
|
||||
#define NSS_CC_NSSNOC_CE_AXI_CLK 18
|
||||
#define NSS_CC_NSSNOC_CLC_AXI_CLK 19
|
||||
#define NSS_CC_NSSNOC_CRYPTO_CLK 20
|
||||
#define NSS_CC_NSSNOC_HAQ_AHB_CLK 21
|
||||
#define NSS_CC_NSSNOC_HAQ_AXI_CLK 22
|
||||
#define NSS_CC_NSSNOC_IMEM_AHB_CLK 23
|
||||
#define NSS_CC_NSSNOC_IMEM_QSB_CLK 24
|
||||
#define NSS_CC_NSSNOC_NSS_CSR_CLK 25
|
||||
#define NSS_CC_NSSNOC_PPE_CFG_CLK 26
|
||||
#define NSS_CC_NSSNOC_PPE_CLK 27
|
||||
#define NSS_CC_NSSNOC_UBI32_AHB0_CLK 28
|
||||
#define NSS_CC_NSSNOC_UBI32_AXI0_CLK 29
|
||||
#define NSS_CC_NSSNOC_UBI32_INT0_AHB_CLK 30
|
||||
#define NSS_CC_NSSNOC_UBI32_NC_AXI0_1_CLK 31
|
||||
#define NSS_CC_NSSNOC_UBI32_NC_AXI0_CLK 32
|
||||
#define NSS_CC_PORT1_MAC_CLK 33
|
||||
#define NSS_CC_PORT1_RX_CLK 34
|
||||
#define NSS_CC_PORT1_RX_CLK_SRC 35
|
||||
#define NSS_CC_PORT1_RX_DIV_CLK_SRC 36
|
||||
#define NSS_CC_PORT1_TX_CLK 37
|
||||
#define NSS_CC_PORT1_TX_CLK_SRC 38
|
||||
#define NSS_CC_PORT1_TX_DIV_CLK_SRC 39
|
||||
#define NSS_CC_PORT2_MAC_CLK 40
|
||||
#define NSS_CC_PORT2_RX_CLK 41
|
||||
#define NSS_CC_PORT2_RX_CLK_SRC 42
|
||||
#define NSS_CC_PORT2_RX_DIV_CLK_SRC 43
|
||||
#define NSS_CC_PORT2_TX_CLK 44
|
||||
#define NSS_CC_PORT2_TX_CLK_SRC 45
|
||||
#define NSS_CC_PORT2_TX_DIV_CLK_SRC 46
|
||||
#define NSS_CC_PORT3_MAC_CLK 47
|
||||
#define NSS_CC_PORT3_RX_CLK 48
|
||||
#define NSS_CC_PORT3_RX_CLK_SRC 49
|
||||
#define NSS_CC_PORT3_RX_DIV_CLK_SRC 50
|
||||
#define NSS_CC_PORT3_TX_CLK 51
|
||||
#define NSS_CC_PORT3_TX_CLK_SRC 52
|
||||
#define NSS_CC_PORT3_TX_DIV_CLK_SRC 53
|
||||
#define NSS_CC_PORT4_MAC_CLK 54
|
||||
#define NSS_CC_PORT4_RX_CLK 55
|
||||
#define NSS_CC_PORT4_RX_CLK_SRC 56
|
||||
#define NSS_CC_PORT4_RX_DIV_CLK_SRC 57
|
||||
#define NSS_CC_PORT4_TX_CLK 58
|
||||
#define NSS_CC_PORT4_TX_CLK_SRC 59
|
||||
#define NSS_CC_PORT4_TX_DIV_CLK_SRC 60
|
||||
#define NSS_CC_PORT5_MAC_CLK 61
|
||||
#define NSS_CC_PORT5_RX_CLK 62
|
||||
#define NSS_CC_PORT5_RX_CLK_SRC 63
|
||||
#define NSS_CC_PORT5_RX_DIV_CLK_SRC 64
|
||||
#define NSS_CC_PORT5_TX_CLK 65
|
||||
#define NSS_CC_PORT5_TX_CLK_SRC 66
|
||||
#define NSS_CC_PORT5_TX_DIV_CLK_SRC 67
|
||||
#define NSS_CC_PORT6_MAC_CLK 68
|
||||
#define NSS_CC_PORT6_RX_CLK 69
|
||||
#define NSS_CC_PORT6_RX_CLK_SRC 70
|
||||
#define NSS_CC_PORT6_RX_DIV_CLK_SRC 71
|
||||
#define NSS_CC_PORT6_TX_CLK 72
|
||||
#define NSS_CC_PORT6_TX_CLK_SRC 73
|
||||
#define NSS_CC_PORT6_TX_DIV_CLK_SRC 74
|
||||
#define NSS_CC_PPE_CLK_SRC 75
|
||||
#define NSS_CC_PPE_EDMA_CFG_CLK 76
|
||||
#define NSS_CC_PPE_EDMA_CLK 77
|
||||
#define NSS_CC_PPE_SWITCH_BTQ_CLK 78
|
||||
#define NSS_CC_PPE_SWITCH_CFG_CLK 79
|
||||
#define NSS_CC_PPE_SWITCH_CLK 80
|
||||
#define NSS_CC_PPE_SWITCH_IPE_CLK 81
|
||||
#define NSS_CC_UBI0_CLK_SRC 82
|
||||
#define NSS_CC_UBI0_DIV_CLK_SRC 83
|
||||
#define NSS_CC_UBI1_CLK_SRC 84
|
||||
#define NSS_CC_UBI1_DIV_CLK_SRC 85
|
||||
#define NSS_CC_UBI2_CLK_SRC 86
|
||||
#define NSS_CC_UBI2_DIV_CLK_SRC 87
|
||||
#define NSS_CC_UBI32_AHB0_CLK 88
|
||||
#define NSS_CC_UBI32_AHB1_CLK 89
|
||||
#define NSS_CC_UBI32_AHB2_CLK 90
|
||||
#define NSS_CC_UBI32_AHB3_CLK 91
|
||||
#define NSS_CC_UBI32_AXI0_CLK 92
|
||||
#define NSS_CC_UBI32_AXI1_CLK 93
|
||||
#define NSS_CC_UBI32_AXI2_CLK 94
|
||||
#define NSS_CC_UBI32_AXI3_CLK 95
|
||||
#define NSS_CC_UBI32_CORE0_CLK 96
|
||||
#define NSS_CC_UBI32_CORE1_CLK 97
|
||||
#define NSS_CC_UBI32_CORE2_CLK 98
|
||||
#define NSS_CC_UBI32_CORE3_CLK 99
|
||||
#define NSS_CC_UBI32_INTR0_AHB_CLK 100
|
||||
#define NSS_CC_UBI32_INTR1_AHB_CLK 101
|
||||
#define NSS_CC_UBI32_INTR2_AHB_CLK 102
|
||||
#define NSS_CC_UBI32_INTR3_AHB_CLK 103
|
||||
#define NSS_CC_UBI32_NC_AXI0_CLK 104
|
||||
#define NSS_CC_UBI32_NC_AXI1_CLK 105
|
||||
#define NSS_CC_UBI32_NC_AXI2_CLK 106
|
||||
#define NSS_CC_UBI32_NC_AXI3_CLK 107
|
||||
#define NSS_CC_UBI32_UTCM0_CLK 108
|
||||
#define NSS_CC_UBI32_UTCM1_CLK 109
|
||||
#define NSS_CC_UBI32_UTCM2_CLK 110
|
||||
#define NSS_CC_UBI32_UTCM3_CLK 111
|
||||
#define NSS_CC_UBI3_CLK_SRC 112
|
||||
#define NSS_CC_UBI3_DIV_CLK_SRC 113
|
||||
#define NSS_CC_UBI_AXI_CLK_SRC 114
|
||||
#define NSS_CC_UBI_NC_AXI_BFDCD_CLK_SRC 115
|
||||
#define NSS_CC_UNIPHY_PORT1_RX_CLK 116
|
||||
#define NSS_CC_UNIPHY_PORT1_TX_CLK 117
|
||||
#define NSS_CC_UNIPHY_PORT2_RX_CLK 118
|
||||
#define NSS_CC_UNIPHY_PORT2_TX_CLK 119
|
||||
#define NSS_CC_UNIPHY_PORT3_RX_CLK 120
|
||||
#define NSS_CC_UNIPHY_PORT3_TX_CLK 121
|
||||
#define NSS_CC_UNIPHY_PORT4_RX_CLK 122
|
||||
#define NSS_CC_UNIPHY_PORT4_TX_CLK 123
|
||||
#define NSS_CC_UNIPHY_PORT5_RX_CLK 124
|
||||
#define NSS_CC_UNIPHY_PORT5_TX_CLK 125
|
||||
#define NSS_CC_UNIPHY_PORT6_RX_CLK 126
|
||||
#define NSS_CC_UNIPHY_PORT6_TX_CLK 127
|
||||
#define NSS_CC_XGMAC0_PTP_REF_CLK 128
|
||||
#define NSS_CC_XGMAC0_PTP_REF_DIV_CLK_SRC 129
|
||||
#define NSS_CC_XGMAC1_PTP_REF_CLK 130
|
||||
#define NSS_CC_XGMAC1_PTP_REF_DIV_CLK_SRC 131
|
||||
#define NSS_CC_XGMAC2_PTP_REF_CLK 132
|
||||
#define NSS_CC_XGMAC2_PTP_REF_DIV_CLK_SRC 133
|
||||
#define NSS_CC_XGMAC3_PTP_REF_CLK 134
|
||||
#define NSS_CC_XGMAC3_PTP_REF_DIV_CLK_SRC 135
|
||||
#define NSS_CC_XGMAC4_PTP_REF_CLK 136
|
||||
#define NSS_CC_XGMAC4_PTP_REF_DIV_CLK_SRC 137
|
||||
#define NSS_CC_XGMAC5_PTP_REF_CLK 138
|
||||
#define NSS_CC_XGMAC5_PTP_REF_DIV_CLK_SRC 139
|
||||
#define UBI32_PLL 140
|
||||
#define UBI32_PLL_MAIN 141
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,16 @@
|
||||
/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
|
||||
/*
|
||||
* Copyright (c) 2024, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef _DT_BINDINGS_CLK_QCOM_QCS8300_CAM_CC_H
|
||||
#define _DT_BINDINGS_CLK_QCOM_QCS8300_CAM_CC_H
|
||||
|
||||
#include "qcom,sa8775p-camcc.h"
|
||||
|
||||
/* QCS8300 introduces below new clocks compared to SA8775P */
|
||||
|
||||
/* CAM_CC clocks */
|
||||
#define CAM_CC_TITAN_TOP_ACCU_SHIFT_CLK 86
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,17 @@
|
||||
/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
|
||||
/*
|
||||
* Copyright (c) 2024, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef _DT_BINDINGS_CLK_QCOM_GPUCC_QCS8300_H
|
||||
#define _DT_BINDINGS_CLK_QCOM_GPUCC_QCS8300_H
|
||||
|
||||
#include "qcom,sa8775p-gpucc.h"
|
||||
|
||||
/* QCS8300 introduces below new clocks compared to SA8775P */
|
||||
|
||||
/* GPU_CC clocks */
|
||||
#define GPU_CC_CX_ACCU_SHIFT_CLK 23
|
||||
#define GPU_CC_GX_ACCU_SHIFT_CLK 24
|
||||
|
||||
#endif
|
||||
@@ -170,5 +170,9 @@
|
||||
#define RPM_SMD_BIMC_FREQ_LOG 124
|
||||
#define RPM_SMD_LN_BB_CLK_PIN 125
|
||||
#define RPM_SMD_LN_BB_A_CLK_PIN 126
|
||||
#define RPM_SMD_BB_CLK3 127
|
||||
#define RPM_SMD_BB_CLK3_A 128
|
||||
#define RPM_SMD_BB_CLK3_PIN 129
|
||||
#define RPM_SMD_BB_CLK3_A_PIN 130
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,134 @@
|
||||
/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
|
||||
/*
|
||||
* Copyright (c) 2023, 2025 The Linux Foundation. All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef _DT_BINDINGS_RESET_IPQ_NSSCC_9574_H
|
||||
#define _DT_BINDINGS_RESET_IPQ_NSSCC_9574_H
|
||||
|
||||
#define EDMA_HW_RESET 0
|
||||
#define NSS_CC_CE_BCR 1
|
||||
#define NSS_CC_CLC_BCR 2
|
||||
#define NSS_CC_EIP197_BCR 3
|
||||
#define NSS_CC_HAQ_BCR 4
|
||||
#define NSS_CC_IMEM_BCR 5
|
||||
#define NSS_CC_MAC_BCR 6
|
||||
#define NSS_CC_PPE_BCR 7
|
||||
#define NSS_CC_UBI_BCR 8
|
||||
#define NSS_CC_UNIPHY_BCR 9
|
||||
#define UBI3_CLKRST_CLAMP_ENABLE 10
|
||||
#define UBI3_CORE_CLAMP_ENABLE 11
|
||||
#define UBI2_CLKRST_CLAMP_ENABLE 12
|
||||
#define UBI2_CORE_CLAMP_ENABLE 13
|
||||
#define UBI1_CLKRST_CLAMP_ENABLE 14
|
||||
#define UBI1_CORE_CLAMP_ENABLE 15
|
||||
#define UBI0_CLKRST_CLAMP_ENABLE 16
|
||||
#define UBI0_CORE_CLAMP_ENABLE 17
|
||||
#define NSSNOC_NSS_CSR_ARES 18
|
||||
#define NSS_CSR_ARES 19
|
||||
#define PPE_BTQ_ARES 20
|
||||
#define PPE_IPE_ARES 21
|
||||
#define PPE_ARES 22
|
||||
#define PPE_CFG_ARES 23
|
||||
#define PPE_EDMA_ARES 24
|
||||
#define PPE_EDMA_CFG_ARES 25
|
||||
#define CRY_PPE_ARES 26
|
||||
#define NSSNOC_PPE_ARES 27
|
||||
#define NSSNOC_PPE_CFG_ARES 28
|
||||
#define PORT1_MAC_ARES 29
|
||||
#define PORT2_MAC_ARES 30
|
||||
#define PORT3_MAC_ARES 31
|
||||
#define PORT4_MAC_ARES 32
|
||||
#define PORT5_MAC_ARES 33
|
||||
#define PORT6_MAC_ARES 34
|
||||
#define XGMAC0_PTP_REF_ARES 35
|
||||
#define XGMAC1_PTP_REF_ARES 36
|
||||
#define XGMAC2_PTP_REF_ARES 37
|
||||
#define XGMAC3_PTP_REF_ARES 38
|
||||
#define XGMAC4_PTP_REF_ARES 39
|
||||
#define XGMAC5_PTP_REF_ARES 40
|
||||
#define HAQ_AHB_ARES 41
|
||||
#define HAQ_AXI_ARES 42
|
||||
#define NSSNOC_HAQ_AHB_ARES 43
|
||||
#define NSSNOC_HAQ_AXI_ARES 44
|
||||
#define CE_APB_ARES 45
|
||||
#define CE_AXI_ARES 46
|
||||
#define NSSNOC_CE_APB_ARES 47
|
||||
#define NSSNOC_CE_AXI_ARES 48
|
||||
#define CRYPTO_ARES 49
|
||||
#define NSSNOC_CRYPTO_ARES 50
|
||||
#define NSSNOC_NC_AXI0_1_ARES 51
|
||||
#define UBI0_CORE_ARES 52
|
||||
#define UBI1_CORE_ARES 53
|
||||
#define UBI2_CORE_ARES 54
|
||||
#define UBI3_CORE_ARES 55
|
||||
#define NC_AXI0_ARES 56
|
||||
#define UTCM0_ARES 57
|
||||
#define NC_AXI1_ARES 58
|
||||
#define UTCM1_ARES 59
|
||||
#define NC_AXI2_ARES 60
|
||||
#define UTCM2_ARES 61
|
||||
#define NC_AXI3_ARES 62
|
||||
#define UTCM3_ARES 63
|
||||
#define NSSNOC_NC_AXI0_ARES 64
|
||||
#define AHB0_ARES 65
|
||||
#define INTR0_AHB_ARES 66
|
||||
#define AHB1_ARES 67
|
||||
#define INTR1_AHB_ARES 68
|
||||
#define AHB2_ARES 69
|
||||
#define INTR2_AHB_ARES 70
|
||||
#define AHB3_ARES 71
|
||||
#define INTR3_AHB_ARES 72
|
||||
#define NSSNOC_AHB0_ARES 73
|
||||
#define NSSNOC_INT0_AHB_ARES 74
|
||||
#define AXI0_ARES 75
|
||||
#define AXI1_ARES 76
|
||||
#define AXI2_ARES 77
|
||||
#define AXI3_ARES 78
|
||||
#define NSSNOC_AXI0_ARES 79
|
||||
#define IMEM_QSB_ARES 80
|
||||
#define NSSNOC_IMEM_QSB_ARES 81
|
||||
#define IMEM_AHB_ARES 82
|
||||
#define NSSNOC_IMEM_AHB_ARES 83
|
||||
#define UNIPHY_PORT1_RX_ARES 84
|
||||
#define UNIPHY_PORT1_TX_ARES 85
|
||||
#define UNIPHY_PORT2_RX_ARES 86
|
||||
#define UNIPHY_PORT2_TX_ARES 87
|
||||
#define UNIPHY_PORT3_RX_ARES 88
|
||||
#define UNIPHY_PORT3_TX_ARES 89
|
||||
#define UNIPHY_PORT4_RX_ARES 90
|
||||
#define UNIPHY_PORT4_TX_ARES 91
|
||||
#define UNIPHY_PORT5_RX_ARES 92
|
||||
#define UNIPHY_PORT5_TX_ARES 93
|
||||
#define UNIPHY_PORT6_RX_ARES 94
|
||||
#define UNIPHY_PORT6_TX_ARES 95
|
||||
#define PORT1_RX_ARES 96
|
||||
#define PORT1_TX_ARES 97
|
||||
#define PORT2_RX_ARES 98
|
||||
#define PORT2_TX_ARES 99
|
||||
#define PORT3_RX_ARES 100
|
||||
#define PORT3_TX_ARES 101
|
||||
#define PORT4_RX_ARES 102
|
||||
#define PORT4_TX_ARES 103
|
||||
#define PORT5_RX_ARES 104
|
||||
#define PORT5_TX_ARES 105
|
||||
#define PORT6_RX_ARES 106
|
||||
#define PORT6_TX_ARES 107
|
||||
#define PPE_FULL_RESET 108
|
||||
#define UNIPHY0_SOFT_RESET 109
|
||||
#define UNIPHY1_SOFT_RESET 110
|
||||
#define UNIPHY2_SOFT_RESET 111
|
||||
#define UNIPHY_PORT1_ARES 112
|
||||
#define UNIPHY_PORT2_ARES 113
|
||||
#define UNIPHY_PORT3_ARES 114
|
||||
#define UNIPHY_PORT4_ARES 115
|
||||
#define UNIPHY_PORT5_ARES 116
|
||||
#define UNIPHY_PORT6_ARES 117
|
||||
#define NSSPORT1_RESET 118
|
||||
#define NSSPORT2_RESET 119
|
||||
#define NSSPORT3_RESET 120
|
||||
#define NSSPORT4_RESET 121
|
||||
#define NSSPORT5_RESET 122
|
||||
#define NSSPORT6_RESET 123
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user