145 lines
3.7 KiB
YAML
145 lines
3.7 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/bus/qcom,ssc-block-bus.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: The AHB Bus Providing a Global View of the SSC Block on (some) qcom SoCs
|
|
|
|
maintainers:
|
|
- Michael Srba <Michael.Srba@seznam.cz>
|
|
|
|
description: |
|
|
This binding describes the dependencies (clocks, resets, power domains) which
|
|
need to be turned on in a sequence before communication over the AHB bus
|
|
becomes possible.
|
|
|
|
Additionally, the reg property is used to pass to the driver the location of
|
|
two sadly undocumented registers which need to be poked as part of the sequence.
|
|
|
|
The SSC (Snapdragon Sensor Core) block contains a gpio controller, i2c/spi/uart
|
|
controllers, a hexagon core, and a clock controller which provides clocks for
|
|
the above.
|
|
|
|
properties:
|
|
compatible:
|
|
items:
|
|
- const: qcom,msm8998-ssc-block-bus
|
|
- const: qcom,ssc-block-bus
|
|
|
|
reg:
|
|
items:
|
|
- description: SSCAON_CONFIG0 registers
|
|
- description: SSCAON_CONFIG1 registers
|
|
|
|
reg-names:
|
|
items:
|
|
- const: mpm_sscaon_config0
|
|
- const: mpm_sscaon_config1
|
|
|
|
'#address-cells':
|
|
enum: [ 1, 2 ]
|
|
|
|
'#size-cells':
|
|
enum: [ 1, 2 ]
|
|
|
|
ranges: true
|
|
|
|
clocks:
|
|
maxItems: 6
|
|
|
|
clock-names:
|
|
items:
|
|
- const: xo
|
|
- const: aggre2
|
|
- const: gcc_im_sleep
|
|
- const: aggre2_north
|
|
- const: ssc_xo
|
|
- const: ssc_ahbs
|
|
|
|
power-domains:
|
|
items:
|
|
- description: CX power domain
|
|
- description: MX power domain
|
|
|
|
power-domain-names:
|
|
items:
|
|
- const: ssc_cx
|
|
- const: ssc_mx
|
|
|
|
resets:
|
|
items:
|
|
- description: Main reset
|
|
- description:
|
|
SSC Branch Control Register reset (associated with the ssc_xo and
|
|
ssc_ahbs clocks)
|
|
|
|
reset-names:
|
|
items:
|
|
- const: ssc_reset
|
|
- const: ssc_bcr
|
|
|
|
qcom,halt-regs:
|
|
$ref: /schemas/types.yaml#/definitions/phandle-array
|
|
description: describes how to locate the ssc AXI halt register
|
|
items:
|
|
- items:
|
|
- description: Phandle reference to a syscon representing TCSR
|
|
- description: offset for the ssc AXI halt register
|
|
|
|
required:
|
|
- compatible
|
|
- reg
|
|
- reg-names
|
|
- '#address-cells'
|
|
- '#size-cells'
|
|
- ranges
|
|
- clocks
|
|
- clock-names
|
|
- power-domains
|
|
- power-domain-names
|
|
- resets
|
|
- reset-names
|
|
- qcom,halt-regs
|
|
|
|
additionalProperties:
|
|
type: object
|
|
|
|
examples:
|
|
- |
|
|
#include <dt-bindings/clock/qcom,gcc-msm8998.h>
|
|
#include <dt-bindings/clock/qcom,rpmcc.h>
|
|
#include <dt-bindings/power/qcom-rpmpd.h>
|
|
|
|
soc {
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
|
|
// devices under this node are physically located in the SSC block, connected to an ssc-internal bus;
|
|
ssc_ahb_slave: bus@10ac008 {
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
ranges;
|
|
|
|
compatible = "qcom,msm8998-ssc-block-bus", "qcom,ssc-block-bus";
|
|
reg = <0x10ac008 0x4>, <0x10ac010 0x4>;
|
|
reg-names = "mpm_sscaon_config0", "mpm_sscaon_config1";
|
|
|
|
clocks = <&xo>,
|
|
<&rpmcc RPM_SMD_AGGR2_NOC_CLK>,
|
|
<&gcc GCC_IM_SLEEP>,
|
|
<&gcc AGGRE2_SNOC_NORTH_AXI>,
|
|
<&gcc SSC_XO>,
|
|
<&gcc SSC_CNOC_AHBS_CLK>;
|
|
clock-names = "xo", "aggre2", "gcc_im_sleep", "aggre2_north", "ssc_xo", "ssc_ahbs";
|
|
|
|
resets = <&gcc GCC_SSC_RESET>, <&gcc GCC_SSC_BCR>;
|
|
reset-names = "ssc_reset", "ssc_bcr";
|
|
|
|
power-domains = <&rpmpd MSM8998_SSCCX>, <&rpmpd MSM8998_SSCMX>;
|
|
power-domain-names = "ssc_cx", "ssc_mx";
|
|
|
|
qcom,halt-regs = <&tcsr_mutex_regs 0x26000>;
|
|
};
|
|
};
|