Loading Documentation/devicetree/bindings/clock/qcom,debugcc.txt +1 −1 Original line number Diff line number Diff line Loading @@ -11,7 +11,7 @@ Required properties : "qcom,atoll-debugcc", "qcom,debugcc-sdmshrike". "qcom,gcc-debug-sdm660". "qcom,sdm429w-debugcc". "qcom,debugcc-sdm429w". - qcom,gcc: phandle to the GCC device node. - qcom,videocc: phandle to the Video CC device node. - qcom,camcc: phandle to the Camera CC device node. Loading arch/arm64/boot/dts/qcom/sdm429-gdsc.dtsi 0 → 100644 +77 −0 Original line number Diff line number Diff line /* * Copyright (c) 2020, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and * only version 2 as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ &soc { venus_gdsc: qcom,gdsc@184c018 { compatible = "qcom,gdsc"; regulator-name = "gdsc_venus"; reg = <0x184c018 0x4>; status = "disabled"; }; venus_core0_gdsc: qcom,gdsc@184c028 { compatible = "qcom,gdsc"; regulator-name = "gdsc_venus_core0"; reg = <0x184c028 0x4>; status = "disabled"; }; mdss_gdsc: qcom,gdsc@184d078 { compatible = "qcom,gdsc"; regulator-name = "gdsc_mdss"; reg = <0x184d078 0x4>; status = "disabled"; }; jpeg_gdsc: qcom,gdsc@185701c { compatible = "qcom,gdsc"; regulator-name = "gdsc_jpeg"; reg = <0x185701c 0x4>; status = "disabled"; }; vfe_gdsc: qcom,gdsc@1858034 { compatible = "qcom,gdsc"; regulator-name = "gdsc_vfe"; reg = <0x1858034 0x4>; status = "disabled"; }; vfe1_gdsc: qcom,gdsc@185806c { compatible = "qcom,gdsc"; regulator-name = "gdsc_vfe1"; reg = <0x185806c 0x4>; status = "disabled"; }; cpp_gdsc: qcom,gdsc@1858078 { compatible = "qcom,gdsc"; regulator-name = "gdsc_cpp"; reg = <0x1858078 0x4>; status = "disabled"; }; oxili_gx_gdsc: qcom,gdsc@185901c { compatible = "qcom,gdsc"; regulator-name = "gdsc_oxili_gx"; reg = <0x185901c 0x4>; status = "disabled"; }; oxili_cx_gdsc: qcom,gdsc@1859044 { compatible = "qcom,gdsc"; regulator-name = "gdsc_oxili_cx"; reg = <0x1859044 0x4>; status = "disabled"; }; }; arch/arm64/boot/dts/qcom/sdm429.dtsi +113 −0 Original line number Diff line number Diff line Loading @@ -13,6 +13,8 @@ #include "skeleton64.dtsi" #include <dt-bindings/interrupt-controller/arm-gic.h> #include <dt-bindings/clock/qcom,gcc-sdm429w.h> #include <dt-bindings/clock/qcom,rpmcc.h> / { model = "Qualcomm Technologies, Inc. SDM429"; Loading Loading @@ -214,6 +216,45 @@ }; }; clocks { xo_board { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <19200000>; clock-output-names = "xo_board"; }; }; rpmcc: qcom,rpmcc { compatible = "qcom,rpmcc-sdm429w"; #clock-cells = <1>; }; gcc: qcom,gcc@1800000 { compatible = "qcom,gcc-sdm429w", "syscon"; reg = <0x1800000 0x80000>; reg-names = "cc_base"; vdd_cx-supply = <&VDD_CX_LEVEL>; clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>; clock-names = "bi_tcxo"; #clock-cells = <1>; #reset-cells = <1>; }; debugcc: qcom,cc-debug { compatible = "qcom,debugcc-sdm429w"; qcom,gcc = <&gcc>; clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>; clock-names = "xo_clk_src"; #clock-cells = <1>; }; gcc_mdss: qcom,gcc-mdss@1800000 { compatible = "qcom,gcc-mdss-sdm429w"; reg = <0x1800000 0x80000>; #clock-cells = <1>; }; cpu-pmu { compatible = "arm,armv8-pmuv3"; interrupts = <1 7 0xff00>; Loading Loading @@ -321,3 +362,75 @@ thermal_zones: thermal-zones { }; }; #include "sdm429-gdsc.dtsi" &venus_gdsc { clock-names = "bus_clk", "core_clk"; clocks = <&gcc GCC_VENUS0_AXI_CLK>, <&gcc GCC_VENUS0_VCODEC0_CLK>; status = "ok"; }; &venus_core0_gdsc { qcom,support-hw-trigger; clock-names ="core0_clk"; clocks = <&gcc GCC_VENUS0_CORE0_VCODEC0_CLK>; status = "okay"; }; &mdss_gdsc { clock-names = "core_clk", "bus_clk"; clocks = <&gcc GCC_MDSS_MDP_CLK>, <&gcc GCC_MDSS_AXI_CLK>; qcom,disallow-clear; status = "okay"; }; &jpeg_gdsc { clock-names = "core_clk", "bus_clk"; clocks = <&gcc GCC_CAMSS_JPEG0_CLK>, <&gcc GCC_CAMSS_JPEG_AXI_CLK>; status = "okay"; }; &vfe_gdsc { clock-names = "core_clk", "bus_clk", "micro_clk", "csi_clk"; clocks = <&gcc GCC_CAMSS_VFE0_CLK>, <&gcc GCC_CAMSS_VFE_AXI_CLK>, <&gcc GCC_CAMSS_MICRO_AHB_CLK>, <&gcc GCC_CAMSS_CSI_VFE0_CLK>; status = "okay"; }; &vfe1_gdsc { clock-names = "core_clk", "bus_clk", "micro_clk", "csi_clk"; clocks = <&gcc GCC_CAMSS_VFE1_CLK>, <&gcc GCC_CAMSS_VFE1_AXI_CLK>, <&gcc GCC_CAMSS_MICRO_AHB_CLK>, <&gcc GCC_CAMSS_CSI_VFE1_CLK>; status = "okay"; }; &cpp_gdsc { clock-names = "core_clk", "bus_clk"; clocks = <&gcc GCC_CAMSS_CPP_CLK>, <&gcc GCC_CAMSS_CPP_AXI_CLK>; status = "okay"; }; &oxili_gx_gdsc { clock-names = "core_root_clk"; clocks =<&gcc GFX3D_CLK_SRC>; qcom,enable-root-clk; qcom,clk-dis-wait-val = <0x5>; status = "okay"; }; &oxili_cx_gdsc { clock-names = "core_clk"; clocks = <&gcc GCC_OXILI_GFX3D_CLK>; status = "okay"; }; drivers/clk/qcom/Kconfig +8 −0 Original line number Diff line number Diff line Loading @@ -680,3 +680,11 @@ config SDM_GCC_429W Support for the global clock controller on SDM429W devices. Say Y if you want to use peripheral devices such as UART, SPI, I2C, USB, UFS, SDCC, Display, Camera, Video etc. config SDM_DEBUGCC_429W tristate "SDM429W Debug Clock Controller" select SDM_GCC_429W help Support for the debug clock controller on Qualcomm Technologies, Inc SDM429W devices. Say Y if you want to support the clock measurement functionality. drivers/clk/qcom/Makefile +2 −1 Original line number Diff line number Diff line Loading @@ -77,6 +77,8 @@ obj-$(CONFIG_QCOM_CLK_RPM) += clk-rpm.o obj-$(CONFIG_QCOM_CLK_SMD_RPM) += clk-smd-rpm.o obj-$(CONFIG_QCOM_CLK_VIRT) += clk-virt.o clk-virt-sm8150.o clk-virt-sm6150.o obj-$(CONFIG_QCS_CMN_BLK_PLL) += cmn-blk-pll.o obj-$(CONFIG_SDM_DEBUGCC_429W) += debugcc-sdm429w.o obj-$(CONFIG_SDM_GCC_429W) += gcc-sdm429w.o obj-$(CONFIG_SM_CAMCC_ATOLL) += camcc-atoll.o obj-$(CONFIG_SM_DEBUGCC_ATOLL) += debugcc-atoll.o obj-$(CONFIG_SM_DEBUGCC_TRINKET) += debugcc-trinket.o Loading @@ -90,6 +92,5 @@ obj-$(CONFIG_SM_VIDEOCC_ATOLL) += videocc-atoll.o obj-$(CONFIG_SM_VIDEOCC_TRINKET) += videocc-trinket.o obj-$(CONFIG_SPMI_PMIC_CLKDIV) += clk-spmi-pmic-div.o obj-$(CONFIG_VIRTIO_CLK) += virtio_clk.o virtio_clk_sm8150.o virtio_clk_sm6150.o virtio_clk_sa8195p.o obj-$(CONFIG_SDM_GCC_429W) += gcc-sdm429w.o obj-y += mdss/ Loading
Documentation/devicetree/bindings/clock/qcom,debugcc.txt +1 −1 Original line number Diff line number Diff line Loading @@ -11,7 +11,7 @@ Required properties : "qcom,atoll-debugcc", "qcom,debugcc-sdmshrike". "qcom,gcc-debug-sdm660". "qcom,sdm429w-debugcc". "qcom,debugcc-sdm429w". - qcom,gcc: phandle to the GCC device node. - qcom,videocc: phandle to the Video CC device node. - qcom,camcc: phandle to the Camera CC device node. Loading
arch/arm64/boot/dts/qcom/sdm429-gdsc.dtsi 0 → 100644 +77 −0 Original line number Diff line number Diff line /* * Copyright (c) 2020, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and * only version 2 as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ &soc { venus_gdsc: qcom,gdsc@184c018 { compatible = "qcom,gdsc"; regulator-name = "gdsc_venus"; reg = <0x184c018 0x4>; status = "disabled"; }; venus_core0_gdsc: qcom,gdsc@184c028 { compatible = "qcom,gdsc"; regulator-name = "gdsc_venus_core0"; reg = <0x184c028 0x4>; status = "disabled"; }; mdss_gdsc: qcom,gdsc@184d078 { compatible = "qcom,gdsc"; regulator-name = "gdsc_mdss"; reg = <0x184d078 0x4>; status = "disabled"; }; jpeg_gdsc: qcom,gdsc@185701c { compatible = "qcom,gdsc"; regulator-name = "gdsc_jpeg"; reg = <0x185701c 0x4>; status = "disabled"; }; vfe_gdsc: qcom,gdsc@1858034 { compatible = "qcom,gdsc"; regulator-name = "gdsc_vfe"; reg = <0x1858034 0x4>; status = "disabled"; }; vfe1_gdsc: qcom,gdsc@185806c { compatible = "qcom,gdsc"; regulator-name = "gdsc_vfe1"; reg = <0x185806c 0x4>; status = "disabled"; }; cpp_gdsc: qcom,gdsc@1858078 { compatible = "qcom,gdsc"; regulator-name = "gdsc_cpp"; reg = <0x1858078 0x4>; status = "disabled"; }; oxili_gx_gdsc: qcom,gdsc@185901c { compatible = "qcom,gdsc"; regulator-name = "gdsc_oxili_gx"; reg = <0x185901c 0x4>; status = "disabled"; }; oxili_cx_gdsc: qcom,gdsc@1859044 { compatible = "qcom,gdsc"; regulator-name = "gdsc_oxili_cx"; reg = <0x1859044 0x4>; status = "disabled"; }; };
arch/arm64/boot/dts/qcom/sdm429.dtsi +113 −0 Original line number Diff line number Diff line Loading @@ -13,6 +13,8 @@ #include "skeleton64.dtsi" #include <dt-bindings/interrupt-controller/arm-gic.h> #include <dt-bindings/clock/qcom,gcc-sdm429w.h> #include <dt-bindings/clock/qcom,rpmcc.h> / { model = "Qualcomm Technologies, Inc. SDM429"; Loading Loading @@ -214,6 +216,45 @@ }; }; clocks { xo_board { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <19200000>; clock-output-names = "xo_board"; }; }; rpmcc: qcom,rpmcc { compatible = "qcom,rpmcc-sdm429w"; #clock-cells = <1>; }; gcc: qcom,gcc@1800000 { compatible = "qcom,gcc-sdm429w", "syscon"; reg = <0x1800000 0x80000>; reg-names = "cc_base"; vdd_cx-supply = <&VDD_CX_LEVEL>; clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>; clock-names = "bi_tcxo"; #clock-cells = <1>; #reset-cells = <1>; }; debugcc: qcom,cc-debug { compatible = "qcom,debugcc-sdm429w"; qcom,gcc = <&gcc>; clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>; clock-names = "xo_clk_src"; #clock-cells = <1>; }; gcc_mdss: qcom,gcc-mdss@1800000 { compatible = "qcom,gcc-mdss-sdm429w"; reg = <0x1800000 0x80000>; #clock-cells = <1>; }; cpu-pmu { compatible = "arm,armv8-pmuv3"; interrupts = <1 7 0xff00>; Loading Loading @@ -321,3 +362,75 @@ thermal_zones: thermal-zones { }; }; #include "sdm429-gdsc.dtsi" &venus_gdsc { clock-names = "bus_clk", "core_clk"; clocks = <&gcc GCC_VENUS0_AXI_CLK>, <&gcc GCC_VENUS0_VCODEC0_CLK>; status = "ok"; }; &venus_core0_gdsc { qcom,support-hw-trigger; clock-names ="core0_clk"; clocks = <&gcc GCC_VENUS0_CORE0_VCODEC0_CLK>; status = "okay"; }; &mdss_gdsc { clock-names = "core_clk", "bus_clk"; clocks = <&gcc GCC_MDSS_MDP_CLK>, <&gcc GCC_MDSS_AXI_CLK>; qcom,disallow-clear; status = "okay"; }; &jpeg_gdsc { clock-names = "core_clk", "bus_clk"; clocks = <&gcc GCC_CAMSS_JPEG0_CLK>, <&gcc GCC_CAMSS_JPEG_AXI_CLK>; status = "okay"; }; &vfe_gdsc { clock-names = "core_clk", "bus_clk", "micro_clk", "csi_clk"; clocks = <&gcc GCC_CAMSS_VFE0_CLK>, <&gcc GCC_CAMSS_VFE_AXI_CLK>, <&gcc GCC_CAMSS_MICRO_AHB_CLK>, <&gcc GCC_CAMSS_CSI_VFE0_CLK>; status = "okay"; }; &vfe1_gdsc { clock-names = "core_clk", "bus_clk", "micro_clk", "csi_clk"; clocks = <&gcc GCC_CAMSS_VFE1_CLK>, <&gcc GCC_CAMSS_VFE1_AXI_CLK>, <&gcc GCC_CAMSS_MICRO_AHB_CLK>, <&gcc GCC_CAMSS_CSI_VFE1_CLK>; status = "okay"; }; &cpp_gdsc { clock-names = "core_clk", "bus_clk"; clocks = <&gcc GCC_CAMSS_CPP_CLK>, <&gcc GCC_CAMSS_CPP_AXI_CLK>; status = "okay"; }; &oxili_gx_gdsc { clock-names = "core_root_clk"; clocks =<&gcc GFX3D_CLK_SRC>; qcom,enable-root-clk; qcom,clk-dis-wait-val = <0x5>; status = "okay"; }; &oxili_cx_gdsc { clock-names = "core_clk"; clocks = <&gcc GCC_OXILI_GFX3D_CLK>; status = "okay"; };
drivers/clk/qcom/Kconfig +8 −0 Original line number Diff line number Diff line Loading @@ -680,3 +680,11 @@ config SDM_GCC_429W Support for the global clock controller on SDM429W devices. Say Y if you want to use peripheral devices such as UART, SPI, I2C, USB, UFS, SDCC, Display, Camera, Video etc. config SDM_DEBUGCC_429W tristate "SDM429W Debug Clock Controller" select SDM_GCC_429W help Support for the debug clock controller on Qualcomm Technologies, Inc SDM429W devices. Say Y if you want to support the clock measurement functionality.
drivers/clk/qcom/Makefile +2 −1 Original line number Diff line number Diff line Loading @@ -77,6 +77,8 @@ obj-$(CONFIG_QCOM_CLK_RPM) += clk-rpm.o obj-$(CONFIG_QCOM_CLK_SMD_RPM) += clk-smd-rpm.o obj-$(CONFIG_QCOM_CLK_VIRT) += clk-virt.o clk-virt-sm8150.o clk-virt-sm6150.o obj-$(CONFIG_QCS_CMN_BLK_PLL) += cmn-blk-pll.o obj-$(CONFIG_SDM_DEBUGCC_429W) += debugcc-sdm429w.o obj-$(CONFIG_SDM_GCC_429W) += gcc-sdm429w.o obj-$(CONFIG_SM_CAMCC_ATOLL) += camcc-atoll.o obj-$(CONFIG_SM_DEBUGCC_ATOLL) += debugcc-atoll.o obj-$(CONFIG_SM_DEBUGCC_TRINKET) += debugcc-trinket.o Loading @@ -90,6 +92,5 @@ obj-$(CONFIG_SM_VIDEOCC_ATOLL) += videocc-atoll.o obj-$(CONFIG_SM_VIDEOCC_TRINKET) += videocc-trinket.o obj-$(CONFIG_SPMI_PMIC_CLKDIV) += clk-spmi-pmic-div.o obj-$(CONFIG_VIRTIO_CLK) += virtio_clk.o virtio_clk_sm8150.o virtio_clk_sm6150.o virtio_clk_sa8195p.o obj-$(CONFIG_SDM_GCC_429W) += gcc-sdm429w.o obj-y += mdss/