|
|
@@ -0,0 +1,132 @@
|
|
|
+From c0f1cbf795095c21b92a46fa1dc47a7b787ce538 Mon Sep 17 00:00:00 2001
|
|
|
+From: Luo Jie <[email protected]>
|
|
|
+Date: Fri, 3 Jan 2025 15:31:34 +0800
|
|
|
+Subject: [PATCH] dt-bindings: clock: qcom: Add CMN PLL clock controller for
|
|
|
+ IPQ SoC
|
|
|
+
|
|
|
+The CMN PLL controller provides clocks to networking hardware blocks
|
|
|
+and to GCC on Qualcomm IPQ9574 SoC. It receives input clock from the
|
|
|
+on-chip Wi-Fi, and produces output clocks at fixed rates. These output
|
|
|
+rates are predetermined, and are unrelated to the input clock rate.
|
|
|
+The primary purpose of CMN PLL is to supply clocks to the networking
|
|
|
+hardware such as PPE (packet process engine), PCS and the externally
|
|
|
+connected switch or PHY device. The CMN PLL block also outputs fixed
|
|
|
+rate clocks to GCC, such as 24 MHZ as XO clock and 32 KHZ as sleep
|
|
|
+clock supplied to GCC.
|
|
|
+
|
|
|
+Signed-off-by: Luo Jie <[email protected]>
|
|
|
+Reviewed-by: Krzysztof Kozlowski <[email protected]>
|
|
|
+Link: https://lore.kernel.org/r/[email protected]
|
|
|
+Signed-off-by: Bjorn Andersson <[email protected]>
|
|
|
+---
|
|
|
+ .../bindings/clock/qcom,ipq9574-cmn-pll.yaml | 77 +++++++++++++++++++
|
|
|
+ include/dt-bindings/clock/qcom,ipq-cmn-pll.h | 22 ++++++
|
|
|
+ 2 files changed, 99 insertions(+)
|
|
|
+ create mode 100644 Documentation/devicetree/bindings/clock/qcom,ipq9574-cmn-pll.yaml
|
|
|
+ create mode 100644 include/dt-bindings/clock/qcom,ipq-cmn-pll.h
|
|
|
+
|
|
|
+--- /dev/null
|
|
|
++++ b/Documentation/devicetree/bindings/clock/qcom,ipq9574-cmn-pll.yaml
|
|
|
+@@ -0,0 +1,77 @@
|
|
|
++# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
|
|
++%YAML 1.2
|
|
|
++---
|
|
|
++$id: http://devicetree.org/schemas/clock/qcom,ipq9574-cmn-pll.yaml#
|
|
|
++$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
++
|
|
|
++title: Qualcomm CMN PLL Clock Controller on IPQ SoC
|
|
|
++
|
|
|
++maintainers:
|
|
|
++ - Bjorn Andersson <[email protected]>
|
|
|
++ - Luo Jie <[email protected]>
|
|
|
++
|
|
|
++description:
|
|
|
++ The CMN (or common) PLL clock controller expects a reference
|
|
|
++ input clock. This reference clock is from the on-board Wi-Fi.
|
|
|
++ The CMN PLL supplies a number of fixed rate output clocks to
|
|
|
++ the devices providing networking functions and to GCC. These
|
|
|
++ networking hardware include PPE (packet process engine), PCS
|
|
|
++ and the externally connected switch or PHY devices. The CMN
|
|
|
++ PLL block also outputs fixed rate clocks to GCC. The PLL's
|
|
|
++ primary function is to enable fixed rate output clocks for
|
|
|
++ networking hardware functions used with the IPQ SoC.
|
|
|
++
|
|
|
++properties:
|
|
|
++ compatible:
|
|
|
++ enum:
|
|
|
++ - qcom,ipq9574-cmn-pll
|
|
|
++
|
|
|
++ reg:
|
|
|
++ maxItems: 1
|
|
|
++
|
|
|
++ clocks:
|
|
|
++ items:
|
|
|
++ - description: The reference clock. The supported clock rates include
|
|
|
++ 25000000, 31250000, 40000000, 48000000, 50000000 and 96000000 HZ.
|
|
|
++ - description: The AHB clock
|
|
|
++ - description: The SYS clock
|
|
|
++ description:
|
|
|
++ The reference clock is the source clock of CMN PLL, which is from the
|
|
|
++ Wi-Fi. The AHB and SYS clocks must be enabled to access CMN PLL
|
|
|
++ clock registers.
|
|
|
++
|
|
|
++ clock-names:
|
|
|
++ items:
|
|
|
++ - const: ref
|
|
|
++ - const: ahb
|
|
|
++ - const: sys
|
|
|
++
|
|
|
++ "#clock-cells":
|
|
|
++ const: 1
|
|
|
++
|
|
|
++required:
|
|
|
++ - compatible
|
|
|
++ - reg
|
|
|
++ - clocks
|
|
|
++ - clock-names
|
|
|
++ - "#clock-cells"
|
|
|
++
|
|
|
++additionalProperties: false
|
|
|
++
|
|
|
++examples:
|
|
|
++ - |
|
|
|
++ #include <dt-bindings/clock/qcom,ipq-cmn-pll.h>
|
|
|
++ #include <dt-bindings/clock/qcom,ipq9574-gcc.h>
|
|
|
++
|
|
|
++ cmn_pll: clock-controller@9b000 {
|
|
|
++ compatible = "qcom,ipq9574-cmn-pll";
|
|
|
++ reg = <0x0009b000 0x800>;
|
|
|
++ clocks = <&cmn_pll_ref_clk>,
|
|
|
++ <&gcc GCC_CMN_12GPLL_AHB_CLK>,
|
|
|
++ <&gcc GCC_CMN_12GPLL_SYS_CLK>;
|
|
|
++ clock-names = "ref", "ahb", "sys";
|
|
|
++ #clock-cells = <1>;
|
|
|
++ assigned-clocks = <&cmn_pll CMN_PLL_CLK>;
|
|
|
++ assigned-clock-rates-u64 = /bits/ 64 <12000000000>;
|
|
|
++ };
|
|
|
++...
|
|
|
+--- /dev/null
|
|
|
++++ b/include/dt-bindings/clock/qcom,ipq-cmn-pll.h
|
|
|
+@@ -0,0 +1,22 @@
|
|
|
++/* 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_IPQ_CMN_PLL_H
|
|
|
++#define _DT_BINDINGS_CLK_QCOM_IPQ_CMN_PLL_H
|
|
|
++
|
|
|
++/* CMN PLL core clock. */
|
|
|
++#define CMN_PLL_CLK 0
|
|
|
++
|
|
|
++/* The output clocks from CMN PLL of IPQ9574. */
|
|
|
++#define XO_24MHZ_CLK 1
|
|
|
++#define SLEEP_32KHZ_CLK 2
|
|
|
++#define PCS_31P25MHZ_CLK 3
|
|
|
++#define NSS_1200MHZ_CLK 4
|
|
|
++#define PPE_353MHZ_CLK 5
|
|
|
++#define ETH0_50MHZ_CLK 6
|
|
|
++#define ETH1_50MHZ_CLK 7
|
|
|
++#define ETH2_50MHZ_CLK 8
|
|
|
++#define ETH_25MHZ_CLK 9
|
|
|
++#endif
|