diff --git a/bindings/regulator/gdsc-regulator.yaml b/bindings/regulator/gdsc-regulator.yaml new file mode 100644 index 00000000..d5546dc3 --- /dev/null +++ b/bindings/regulator/gdsc-regulator.yaml @@ -0,0 +1,170 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/regulator/gdsc-regulator.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Qualcomm Technologies, Inc. Global Distributed Switch Controller Regulator + +maintainers: + - Xubin Bai + +description: | + The GDSC driver, implemented under the regulator framework, + is responsible for safely collapsing and restoring power to + peripheral and multimedia cores on chipsets for power savings. + +properties: + compatible: + const: qcom,gdsc + + regulator-name: + description: A string used as a descriptive name for regulator outputs. + + reg: + description: The address of the GDSCR register. + + parent-supply: + description: phandle to the parent supply regulator node. + + clocks: + description: phandle to clock used by GDSC. + + clock-names: + description: List of string names for core clocks. + + qcom,retain-regs: + description: | + Presence denotes a hardware requirement to enable the + usage of retention registers which maintain their state + after the GDSC is disabled and re-enabled. + $ref: /schemas/types.yaml#/definitions/flag + + qcom,skip-logic-collapse: + description: | + Presence denotes a requirement to leave power to + the core's logic enabled. + $ref: /schemas/types.yaml#/definitions/flag + + qcom,support-hw-trigger: + description: | + Presence denotes a hardware feature to switch on/off this + regulator based on internal HW signals to save more power. + $ref: /schemas/types.yaml#/definitions/flag + + qcom,enable-root-clk: + description: | + Presence denotes that the clocks in the "clocks" + property are required to be enabled before gdsc is + turned on and disabled before turning off gdsc. This + will be used in subsystems where reset is synchronous + and root clk is active without sw being aware of its + state. The clock-name which denotes the root clock + should be named as "core_root_clk". + $ref: /schemas/types.yaml#/definitions/flag + + qcom,force-enable-root-clk: + description: | + If set, denotes that the root clock should be force enabled + before turning on the GDSC and then be immediately force + disabled. Likewise for GDSC disable. This is used in cases + where the core root clock needs to be force-enabled prior + to turning on the core. The clock-name which denotes the + root clock should be "core_root_clk". + $ref: /schemas/types.yaml#/definitions/flag + + qcom,clk-dis-wait-val: + description: | + Input value for CLK_DIS_WAIT controls state transition + delay after halting clock in the collapsible core. + $ref: /schemas/types.yaml#/definitions/flag + + reg-names: + description: | + Names of the bases for the above "reg" registers. + Ex. "base", "domain-addr", "sw-reset", "hw-ctrl-addr". + + qcom,no-status-check-on-disable: + description: Do not poll the status bit when GDSC is disabled. + $ref: /schemas/types.yaml#/definitions/flag + + qcom,gds-timeout: + description: | + Maximum time (in usecs) that might be taken by a GDSC to enable. + $ref: /schemas/types.yaml#/definitions/uint32 + + qcom,reset-aon-logic: + description: | + If present, the GPU DEMET cells need to be reset while + enabling the GX GDSC. + $ref: /schemas/types.yaml#/definitions/flag + + qcom,support-cfg-gdscr: + description: | + Presence denotes HW supports CFG_GDSCR register + when checking the status of gdsc. + $ref: /schemas/types.yaml#/definitions/flag + + qcom,collapse-vote: + description: | + Phandle pointer to the register APCS_GDSC_BRANCH_ENA_VOTE + that collapse GDSCs. + $ref: /schemas/types.yaml#/definitions/phandle + + qcom,skip-disable: + description: | + If the disable skipping feature is allowed, then use mode + control to enable and disable the feature at runtime instead + of using it to enable and disable hardware triggering. + $ref: /schemas/types.yaml#/definitions/flag + + vdd_parent-supply: + description: | + phandle to the regulator that this GDSC gates. If present, + need to vote for a minimum operational voltage (LOW_SVS) on + the GDSC parent regulator prior to configuring it. The vote + is removed once the GDSC FSM has latched on to the new state. + + resets: + minItems: 1 + maxItems: 2 + description: | + reset specifier pair consisting of phandle for the reset + controller and reset lines used by this controller. These + can be supplied only if we support qcom,skip-logic-collapse. + + reset-names: + description: | + reset signal name strings sorted in the same order as + the resets property. These can be supplied only if we + support qcom,skip-logic-collapse. + + qcom,skip-disable-before-sw-enable: + description: | + Presence denotes a hardware requirement to leave the + GDSC on that has been enabled by an entity external to HLOS. + $ref: /schemas/types.yaml#/definitions/flag + + qcom,no-config-gdscr: + description: | + Presence denotes HW only supports a single register per GDSC. + $ref: /schemas/types.yaml#/definitions/flag + +required: + - compatible + - regulator-name + - reg + +additionalProperties: false + +examples: + - | + gdsc_oxili_gx: qcom,gdsc@fd8c4024 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_oxili_gx"; + parent-supply = <&pm8841_s4>; + reg = <0xfd8c4024 0x4>; + clock-names = "core_clk"; + }; +... +