Linux-6.18.2/Documentation/devicetree/bindings/mailbox/qcom,apcs-kpss-global.yaml

292 lines
7.3 KiB
YAML
Raw Normal View History

2025-12-23 20:05:50 +08:00
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/mailbox/qcom,apcs-kpss-global.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm APCS global block
description:
This binding describes the APCS "global" block found in various Qualcomm
platforms.
maintainers:
- Jassi Brar <jassisinghbrar@gmail.com>
properties:
compatible:
oneOf:
- items:
- enum:
- qcom,ipq5018-apcs-apps-global
- qcom,ipq5332-apcs-apps-global
- qcom,ipq5424-apcs-apps-global
- qcom,ipq8074-apcs-apps-global
- qcom,ipq9574-apcs-apps-global
- const: qcom,ipq6018-apcs-apps-global
- items:
- enum:
- qcom,msm8226-apcs-kpss-global
- qcom,qcs404-apcs-apps-global
- const: qcom,msm8916-apcs-kpss-global
- const: syscon
- items:
- enum:
- qcom,msm8974-apcs-kpss-global
- qcom,msm8976-apcs-kpss-global
- const: qcom,msm8994-apcs-kpss-global
- const: syscon
- items:
- enum:
- qcom,msm8998-apcs-hmss-global
- qcom,sdm660-apcs-hmss-global
- qcom,sm4250-apcs-hmss-global
- qcom,sm6115-apcs-hmss-global
- qcom,sm6125-apcs-hmss-global
- const: qcom,msm8994-apcs-kpss-global
- items:
- enum:
- qcom,qcs615-apss-shared
- qcom,sc7180-apss-shared
- qcom,sc8180x-apss-shared
- qcom,sm7150-apss-shared
- qcom,sm8150-apss-shared
- const: qcom,sdm845-apss-shared
- items:
- enum:
- qcom,msm8916-apcs-kpss-global
- qcom,msm8939-apcs-kpss-global
- qcom,msm8953-apcs-kpss-global
- qcom,msm8994-apcs-kpss-global
- qcom,sdx55-apcs-gcc
- const: syscon
- enum:
- qcom,ipq6018-apcs-apps-global
- qcom,msm8996-apcs-hmss-global
- qcom,qcm2290-apcs-hmss-global
- qcom,sdm845-apss-shared
reg:
maxItems: 1
clocks:
description: phandles to the parent clocks of the clock driver
minItems: 2
maxItems: 3
deprecated: true
'#mbox-cells':
const: 1
'#clock-cells':
enum: [0, 1]
clock-names:
minItems: 2
maxItems: 3
deprecated: true
clock-controller:
type: object
additionalProperties: false
properties:
clocks:
description: phandles to the parent clocks of the clock driver
minItems: 2
maxItems: 3
'#clock-cells':
enum: [0, 1]
clock-names:
minItems: 2
maxItems: 3
required:
- compatible
- reg
- '#mbox-cells'
additionalProperties: false
# Clocks should be specified either on the parent node or on the child node
oneOf:
- required:
- clock-controller
properties:
clocks: false
clock-names: false
'#clock-cells': false
- properties:
clock-controller: false
$defs:
msm8916-apcs-clock-controller:
properties:
clocks:
items:
- description: primary pll parent of the clock driver
- description: auxiliary parent
clock-names:
items:
- const: pll
- const: aux
'#clock-cells':
const: 0
msm8939-apcs-clock-controller:
properties:
clocks:
items:
- description: primary pll parent of the clock driver
- description: auxiliary parent
- description: reference clock
clock-names:
items:
- const: pll
- const: aux
- const: ref
'#clock-cells':
const: 0
sdx55-apcs-clock-controller:
properties:
clocks:
items:
- description: reference clock
- description: primary pll parent of the clock driver
- description: auxiliary parent
clock-names:
items:
- const: ref
- const: pll
- const: aux
'#clock-cells':
const: 0
ipq6018-apcs-clock-controller:
properties:
clocks:
items:
- description: primary pll parent of the clock driver
- description: XO clock
- description: GCC GPLL0 clock source
clock-names:
items:
- const: pll
- const: xo
- const: gpll0
'#clock-cells':
const: 1
allOf:
- if:
properties:
compatible:
contains:
enum:
- qcom,msm8916-apcs-kpss-global
then:
$ref: "#/$defs/msm8916-apcs-clock-controller"
properties:
clock-controller:
$ref: "#/$defs/msm8916-apcs-clock-controller"
- if:
properties:
compatible:
contains:
enum:
- qcom,msm8939-apcs-kpss-global
then:
$ref: "#/$defs/msm8939-apcs-clock-controller"
properties:
clock-controller:
$ref: "#/$defs/msm8939-apcs-clock-controller"
- if:
properties:
compatible:
contains:
enum:
- qcom,sdx55-apcs-gcc
then:
$ref: "#/$defs/sdx55-apcs-clock-controller"
properties:
clock-controller:
$ref: "#/$defs/sdx55-apcs-clock-controller"
- if:
properties:
compatible:
contains:
enum:
- qcom,ipq6018-apcs-apps-global
then:
$ref: "#/$defs/ipq6018-apcs-clock-controller"
properties:
clock-controller:
$ref: "#/$defs/ipq6018-apcs-clock-controller"
- if:
properties:
compatible:
contains:
enum:
- qcom,msm8953-apcs-kpss-global
- qcom,msm8994-apcs-kpss-global
- qcom,msm8996-apcs-hmss-global
- qcom,qcm2290-apcs-hmss-global
- qcom,sdm845-apss-shared
then:
properties:
clocks: false
clock-names: false
clock-controller: false
'#clock-cells':
const: 0
examples:
# Example apcs with msm8996
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
mailbox@9820000 {
compatible = "qcom,msm8996-apcs-hmss-global";
reg = <0x9820000 0x1000>;
#mbox-cells = <1>;
#clock-cells = <0>;
};
# Example apcs with qcs404
- |
#define GCC_APSS_AHB_CLK_SRC 1
#define GCC_GPLL0_AO_OUT_MAIN 123
mailbox@b011000 {
compatible = "qcom,qcs404-apcs-apps-global",
"qcom,msm8916-apcs-kpss-global", "syscon";
reg = <0x0b011000 0x1000>;
#mbox-cells = <1>;
apcs_clk: clock-controller {
clocks = <&apcs_hfpll>, <&gcc GCC_GPLL0_AO_OUT_MAIN>;
clock-names = "pll", "aux";
#clock-cells = <0>;
};
};
# Example apcs with qcs404 (deprecated: use clock-controller subnode)
- |
#define GCC_APSS_AHB_CLK_SRC 1
#define GCC_GPLL0_AO_OUT_MAIN 123
apcs: mailbox@b011000 {
compatible = "qcom,qcs404-apcs-apps-global",
"qcom,msm8916-apcs-kpss-global", "syscon";
reg = <0x0b011000 0x1000>;
#mbox-cells = <1>;
clocks = <&apcs_hfpll>, <&gcc GCC_GPLL0_AO_OUT_MAIN>;
clock-names = "pll", "aux";
#clock-cells = <0>;
};