From 0fd2effdf2b5fd1d0260c61b08b22a0e6313006f Mon Sep 17 00:00:00 2001 From: Pankaj Gupta Date: Mon, 18 May 2020 13:22:18 +0530 Subject: [PATCH] dt-bindings: Add victims_table bindings for cx_ipeak driver Victim table support for client to register and throttle freq based on the cx-ipeak interrupt notifier callbacks to clients. Change-Id: I9717056e638ed70f5bf848f99f07a0b2c6919938 --- bindings/soc/qcom/qcom,cx_ipeak.txt | 42 +++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 bindings/soc/qcom/qcom,cx_ipeak.txt diff --git a/bindings/soc/qcom/qcom,cx_ipeak.txt b/bindings/soc/qcom/qcom,cx_ipeak.txt new file mode 100644 index 00000000..79e99d34 --- /dev/null +++ b/bindings/soc/qcom/qcom,cx_ipeak.txt @@ -0,0 +1,42 @@ +* Cx iPeak driver to handle requests from various multimedia clients. + +Cx ipeak HW module is used to limit the current drawn by various subsystem +blocks on Cx power rail. Each client needs to set their bit in tcsr register +if it is going to cross its own threshold. If all clients are going to cross +their thresholds then Cx ipeak hw module will raise an interrupt to cDSP block +to throttle cDSP's fmax. + +There are SOC like SCUBA where Cx ipeak HW module raised interrupt will +throttle frequency of other victim clients. + +Required properties: + +- #size-cells : Must be 1 + +- compatible : name of the component used for driver matching, should be one + "qcom,cx-ipeak-v1", "qcom,cx-ipeak-v2" + +- reg : physical base address and length of the register set(s), SRAM and XPU + of the component. + +Optional properties: + +- interrupts : Danger and Safe interrupts details having interrupt number and + type of interrupt. + +- interrupt-names : Identifier names for Danger and Safe interrupts. + +- victims_table : Victim clients details having client ID, victim ID and + limit frequency to be applied in case of danger interrupt. + +Example: + + cx_ipeak_lm: cx_ipeak@1fe5040 { + #size-cells = <1>; + compatible = "qcom,cx-ipeak-v1"; + reg = <0x01fe5040 0x28>; + interrupts = <0 415 IRQ_TYPE_EDGE_RISING>, + <0 416 IRQ_TYPE_EDGE_RISING>; + interrupt-names = "cx_ipeak_danger", "cx_ipeak_safe"; + victims_table = <1 0 844800000>; + };