Message ID | 20241220-qcom_ipq_cmnpll-v7-1-438a1b5cb98e@quicinc.com |
---|---|
State | New |
Headers | show |
Series | [v7,1/5] dt-bindings: clock: qcom: Add CMN PLL clock controller for IPQ SoC | expand |
On Fri, Dec 20, 2024 at 09:22:42PM +0800, Luo Jie wrote: > 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. > > Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> > Signed-off-by: Luo Jie <quic_luoj@quicinc.com> > --- > .../bindings/clock/qcom,ipq9574-cmn-pll.yaml | 85 ++++++++++++++++++++++ > include/dt-bindings/clock/qcom,ipq-cmn-pll.h | 22 ++++++ > 2 files changed, 107 insertions(+) > > diff --git a/Documentation/devicetree/bindings/clock/qcom,ipq9574-cmn-pll.yaml b/Documentation/devicetree/bindings/clock/qcom,ipq9574-cmn-pll.yaml > new file mode 100644 > index 000000000000..db8a3ee56067 > --- /dev/null > +++ b/Documentation/devicetree/bindings/clock/qcom,ipq9574-cmn-pll.yaml > @@ -0,0 +1,85 @@ > +# 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 <andersson@kernel.org> > + - Luo Jie <quic_luoj@quicinc.com> > + > +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 > + > + assigned-clocks: Drop > + maxItems: 1 > + > + assigned-clock-rates-u64: > + maxItems: 1 These wasn't here when you received review. Adding new properties always invalidates review. No, drop them. > + > +required: > + - compatible > + - reg > + - clocks > + - clock-names > + - "#clock-cells" > + - assigned-clocks Drop > + - assigned-clock-rates-u64 Drop... or explain Drop all review tags after making significant changes like that. Best regards, Krzysztof
diff --git a/Documentation/devicetree/bindings/clock/qcom,ipq9574-cmn-pll.yaml b/Documentation/devicetree/bindings/clock/qcom,ipq9574-cmn-pll.yaml new file mode 100644 index 000000000000..db8a3ee56067 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/qcom,ipq9574-cmn-pll.yaml @@ -0,0 +1,85 @@ +# 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 <andersson@kernel.org> + - Luo Jie <quic_luoj@quicinc.com> + +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 + + assigned-clocks: + maxItems: 1 + + assigned-clock-rates-u64: + maxItems: 1 + +required: + - compatible + - reg + - clocks + - clock-names + - "#clock-cells" + - assigned-clocks + - assigned-clock-rates-u64 + +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>; + }; +... diff --git a/include/dt-bindings/clock/qcom,ipq-cmn-pll.h b/include/dt-bindings/clock/qcom,ipq-cmn-pll.h new file mode 100644 index 000000000000..936e92b3b62c --- /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