mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-23 15:32:33 +00:00
0b24527e4d
Patches are cherry-picked from linux-next. We're also adding the corresponding config option to the kernel. Signed-off-by: Mathieu Olivari <mathieu@codeaurora.org> SVN-Revision: 45729
257 lines
8.1 KiB
Diff
257 lines
8.1 KiB
Diff
From aa0c4b815045420ea54d5ae5362f5a0190609d46 Mon Sep 17 00:00:00 2001
|
|
From: Bjorn Andersson <bjorn.andersson@sonymobile.com>
|
|
Date: Wed, 26 Nov 2014 13:50:59 -0800
|
|
Subject: [PATCH] mfd: devicetree: bindings: Add Qualcomm RPM DT binding
|
|
|
|
Add binding for the Qualcomm Resource Power Manager (RPM) found in 8660,
|
|
8960 and 8064 based devices.
|
|
|
|
Signed-off-by: Bjorn Andersson <bjorn.andersson@sonymobile.com>
|
|
Signed-off-by: Lee Jones <lee.jones@linaro.org>
|
|
---
|
|
Documentation/devicetree/bindings/mfd/qcom-rpm.txt | 70 ++++++++++
|
|
include/dt-bindings/mfd/qcom-rpm.h | 154 +++++++++++++++++++++
|
|
2 files changed, 224 insertions(+)
|
|
create mode 100644 Documentation/devicetree/bindings/mfd/qcom-rpm.txt
|
|
create mode 100644 include/dt-bindings/mfd/qcom-rpm.h
|
|
|
|
diff --git a/Documentation/devicetree/bindings/mfd/qcom-rpm.txt b/Documentation/devicetree/bindings/mfd/qcom-rpm.txt
|
|
new file mode 100644
|
|
index 0000000..85e3198
|
|
--- /dev/null
|
|
+++ b/Documentation/devicetree/bindings/mfd/qcom-rpm.txt
|
|
@@ -0,0 +1,70 @@
|
|
+Qualcomm Resource Power Manager (RPM)
|
|
+
|
|
+This driver is used to interface with the Resource Power Manager (RPM) found in
|
|
+various Qualcomm platforms. The RPM allows each component in the system to vote
|
|
+for state of the system resources, such as clocks, regulators and bus
|
|
+frequencies.
|
|
+
|
|
+- compatible:
|
|
+ Usage: required
|
|
+ Value type: <string>
|
|
+ Definition: must be one of:
|
|
+ "qcom,rpm-apq8064"
|
|
+ "qcom,rpm-msm8660"
|
|
+ "qcom,rpm-msm8960"
|
|
+
|
|
+- reg:
|
|
+ Usage: required
|
|
+ Value type: <prop-encoded-array>
|
|
+ Definition: base address and size of the RPM's message ram
|
|
+
|
|
+- interrupts:
|
|
+ Usage: required
|
|
+ Value type: <prop-encoded-array>
|
|
+ Definition: three entries specifying the RPM's:
|
|
+ 1. acknowledgement interrupt
|
|
+ 2. error interrupt
|
|
+ 3. wakeup interrupt
|
|
+
|
|
+- interrupt-names:
|
|
+ Usage: required
|
|
+ Value type: <string-array>
|
|
+ Definition: must be the three strings "ack", "err" and "wakeup", in order
|
|
+
|
|
+- #address-cells:
|
|
+ Usage: required
|
|
+ Value type: <u32>
|
|
+ Definition: must be 1
|
|
+
|
|
+- #size-cells:
|
|
+ Usage: required
|
|
+ Value type: <u32>
|
|
+ Definition: must be 0
|
|
+
|
|
+- qcom,ipc:
|
|
+ Usage: required
|
|
+ Value type: <prop-encoded-array>
|
|
+
|
|
+ Definition: three entries specifying the outgoing ipc bit used for
|
|
+ signaling the RPM:
|
|
+ - phandle to a syscon node representing the apcs registers
|
|
+ - u32 representing offset to the register within the syscon
|
|
+ - u32 representing the ipc bit within the register
|
|
+
|
|
+
|
|
+= EXAMPLE
|
|
+
|
|
+ #include <dt-bindings/mfd/qcom-rpm.h>
|
|
+
|
|
+ rpm@108000 {
|
|
+ compatible = "qcom,rpm-msm8960";
|
|
+ reg = <0x108000 0x1000>;
|
|
+ qcom,ipc = <&apcs 0x8 2>;
|
|
+
|
|
+ interrupts = <0 19 0>, <0 21 0>, <0 22 0>;
|
|
+ interrupt-names = "ack", "err", "wakeup";
|
|
+
|
|
+ #address-cells = <1>;
|
|
+ #size-cells = <0>;
|
|
+ };
|
|
+
|
|
diff --git a/include/dt-bindings/mfd/qcom-rpm.h b/include/dt-bindings/mfd/qcom-rpm.h
|
|
new file mode 100644
|
|
index 0000000..388a6f3
|
|
--- /dev/null
|
|
+++ b/include/dt-bindings/mfd/qcom-rpm.h
|
|
@@ -0,0 +1,154 @@
|
|
+/*
|
|
+ * This header provides constants for the Qualcomm RPM bindings.
|
|
+ */
|
|
+
|
|
+#ifndef _DT_BINDINGS_MFD_QCOM_RPM_H
|
|
+#define _DT_BINDINGS_MFD_QCOM_RPM_H
|
|
+
|
|
+/*
|
|
+ * Constants use to identify individual resources in the RPM.
|
|
+ */
|
|
+#define QCOM_RPM_APPS_FABRIC_ARB 1
|
|
+#define QCOM_RPM_APPS_FABRIC_CLK 2
|
|
+#define QCOM_RPM_APPS_FABRIC_HALT 3
|
|
+#define QCOM_RPM_APPS_FABRIC_IOCTL 4
|
|
+#define QCOM_RPM_APPS_FABRIC_MODE 5
|
|
+#define QCOM_RPM_APPS_L2_CACHE_CTL 6
|
|
+#define QCOM_RPM_CFPB_CLK 7
|
|
+#define QCOM_RPM_CXO_BUFFERS 8
|
|
+#define QCOM_RPM_CXO_CLK 9
|
|
+#define QCOM_RPM_DAYTONA_FABRIC_CLK 10
|
|
+#define QCOM_RPM_DDR_DMM 11
|
|
+#define QCOM_RPM_EBI1_CLK 12
|
|
+#define QCOM_RPM_HDMI_SWITCH 13
|
|
+#define QCOM_RPM_MMFPB_CLK 14
|
|
+#define QCOM_RPM_MM_FABRIC_ARB 15
|
|
+#define QCOM_RPM_MM_FABRIC_CLK 16
|
|
+#define QCOM_RPM_MM_FABRIC_HALT 17
|
|
+#define QCOM_RPM_MM_FABRIC_IOCTL 18
|
|
+#define QCOM_RPM_MM_FABRIC_MODE 19
|
|
+#define QCOM_RPM_PLL_4 20
|
|
+#define QCOM_RPM_PM8058_LDO0 21
|
|
+#define QCOM_RPM_PM8058_LDO1 22
|
|
+#define QCOM_RPM_PM8058_LDO2 23
|
|
+#define QCOM_RPM_PM8058_LDO3 24
|
|
+#define QCOM_RPM_PM8058_LDO4 25
|
|
+#define QCOM_RPM_PM8058_LDO5 26
|
|
+#define QCOM_RPM_PM8058_LDO6 27
|
|
+#define QCOM_RPM_PM8058_LDO7 28
|
|
+#define QCOM_RPM_PM8058_LDO8 29
|
|
+#define QCOM_RPM_PM8058_LDO9 30
|
|
+#define QCOM_RPM_PM8058_LDO10 31
|
|
+#define QCOM_RPM_PM8058_LDO11 32
|
|
+#define QCOM_RPM_PM8058_LDO12 33
|
|
+#define QCOM_RPM_PM8058_LDO13 34
|
|
+#define QCOM_RPM_PM8058_LDO14 35
|
|
+#define QCOM_RPM_PM8058_LDO15 36
|
|
+#define QCOM_RPM_PM8058_LDO16 37
|
|
+#define QCOM_RPM_PM8058_LDO17 38
|
|
+#define QCOM_RPM_PM8058_LDO18 39
|
|
+#define QCOM_RPM_PM8058_LDO19 40
|
|
+#define QCOM_RPM_PM8058_LDO20 41
|
|
+#define QCOM_RPM_PM8058_LDO21 42
|
|
+#define QCOM_RPM_PM8058_LDO22 43
|
|
+#define QCOM_RPM_PM8058_LDO23 44
|
|
+#define QCOM_RPM_PM8058_LDO24 45
|
|
+#define QCOM_RPM_PM8058_LDO25 46
|
|
+#define QCOM_RPM_PM8058_LVS0 47
|
|
+#define QCOM_RPM_PM8058_LVS1 48
|
|
+#define QCOM_RPM_PM8058_NCP 49
|
|
+#define QCOM_RPM_PM8058_SMPS0 50
|
|
+#define QCOM_RPM_PM8058_SMPS1 51
|
|
+#define QCOM_RPM_PM8058_SMPS2 52
|
|
+#define QCOM_RPM_PM8058_SMPS3 53
|
|
+#define QCOM_RPM_PM8058_SMPS4 54
|
|
+#define QCOM_RPM_PM8821_LDO1 55
|
|
+#define QCOM_RPM_PM8821_SMPS1 56
|
|
+#define QCOM_RPM_PM8821_SMPS2 57
|
|
+#define QCOM_RPM_PM8901_LDO0 58
|
|
+#define QCOM_RPM_PM8901_LDO1 59
|
|
+#define QCOM_RPM_PM8901_LDO2 60
|
|
+#define QCOM_RPM_PM8901_LDO3 61
|
|
+#define QCOM_RPM_PM8901_LDO4 62
|
|
+#define QCOM_RPM_PM8901_LDO5 63
|
|
+#define QCOM_RPM_PM8901_LDO6 64
|
|
+#define QCOM_RPM_PM8901_LVS0 65
|
|
+#define QCOM_RPM_PM8901_LVS1 66
|
|
+#define QCOM_RPM_PM8901_LVS2 67
|
|
+#define QCOM_RPM_PM8901_LVS3 68
|
|
+#define QCOM_RPM_PM8901_MVS 69
|
|
+#define QCOM_RPM_PM8901_SMPS0 70
|
|
+#define QCOM_RPM_PM8901_SMPS1 71
|
|
+#define QCOM_RPM_PM8901_SMPS2 72
|
|
+#define QCOM_RPM_PM8901_SMPS3 73
|
|
+#define QCOM_RPM_PM8901_SMPS4 74
|
|
+#define QCOM_RPM_PM8921_CLK1 75
|
|
+#define QCOM_RPM_PM8921_CLK2 76
|
|
+#define QCOM_RPM_PM8921_LDO1 77
|
|
+#define QCOM_RPM_PM8921_LDO2 78
|
|
+#define QCOM_RPM_PM8921_LDO3 79
|
|
+#define QCOM_RPM_PM8921_LDO4 80
|
|
+#define QCOM_RPM_PM8921_LDO5 81
|
|
+#define QCOM_RPM_PM8921_LDO6 82
|
|
+#define QCOM_RPM_PM8921_LDO7 83
|
|
+#define QCOM_RPM_PM8921_LDO8 84
|
|
+#define QCOM_RPM_PM8921_LDO9 85
|
|
+#define QCOM_RPM_PM8921_LDO10 86
|
|
+#define QCOM_RPM_PM8921_LDO11 87
|
|
+#define QCOM_RPM_PM8921_LDO12 88
|
|
+#define QCOM_RPM_PM8921_LDO13 89
|
|
+#define QCOM_RPM_PM8921_LDO14 90
|
|
+#define QCOM_RPM_PM8921_LDO15 91
|
|
+#define QCOM_RPM_PM8921_LDO16 92
|
|
+#define QCOM_RPM_PM8921_LDO17 93
|
|
+#define QCOM_RPM_PM8921_LDO18 94
|
|
+#define QCOM_RPM_PM8921_LDO19 95
|
|
+#define QCOM_RPM_PM8921_LDO20 96
|
|
+#define QCOM_RPM_PM8921_LDO21 97
|
|
+#define QCOM_RPM_PM8921_LDO22 98
|
|
+#define QCOM_RPM_PM8921_LDO23 99
|
|
+#define QCOM_RPM_PM8921_LDO24 100
|
|
+#define QCOM_RPM_PM8921_LDO25 101
|
|
+#define QCOM_RPM_PM8921_LDO26 102
|
|
+#define QCOM_RPM_PM8921_LDO27 103
|
|
+#define QCOM_RPM_PM8921_LDO28 104
|
|
+#define QCOM_RPM_PM8921_LDO29 105
|
|
+#define QCOM_RPM_PM8921_LVS1 106
|
|
+#define QCOM_RPM_PM8921_LVS2 107
|
|
+#define QCOM_RPM_PM8921_LVS3 108
|
|
+#define QCOM_RPM_PM8921_LVS4 109
|
|
+#define QCOM_RPM_PM8921_LVS5 110
|
|
+#define QCOM_RPM_PM8921_LVS6 111
|
|
+#define QCOM_RPM_PM8921_LVS7 112
|
|
+#define QCOM_RPM_PM8921_MVS 113
|
|
+#define QCOM_RPM_PM8921_NCP 114
|
|
+#define QCOM_RPM_PM8921_SMPS1 115
|
|
+#define QCOM_RPM_PM8921_SMPS2 116
|
|
+#define QCOM_RPM_PM8921_SMPS3 117
|
|
+#define QCOM_RPM_PM8921_SMPS4 118
|
|
+#define QCOM_RPM_PM8921_SMPS5 119
|
|
+#define QCOM_RPM_PM8921_SMPS6 120
|
|
+#define QCOM_RPM_PM8921_SMPS7 121
|
|
+#define QCOM_RPM_PM8921_SMPS8 122
|
|
+#define QCOM_RPM_PXO_CLK 123
|
|
+#define QCOM_RPM_QDSS_CLK 124
|
|
+#define QCOM_RPM_SFPB_CLK 125
|
|
+#define QCOM_RPM_SMI_CLK 126
|
|
+#define QCOM_RPM_SYS_FABRIC_ARB 127
|
|
+#define QCOM_RPM_SYS_FABRIC_CLK 128
|
|
+#define QCOM_RPM_SYS_FABRIC_HALT 129
|
|
+#define QCOM_RPM_SYS_FABRIC_IOCTL 130
|
|
+#define QCOM_RPM_SYS_FABRIC_MODE 131
|
|
+#define QCOM_RPM_USB_OTG_SWITCH 132
|
|
+#define QCOM_RPM_VDDMIN_GPIO 133
|
|
+
|
|
+/*
|
|
+ * Constants used to select force mode for regulators.
|
|
+ */
|
|
+#define QCOM_RPM_FORCE_MODE_NONE 0
|
|
+#define QCOM_RPM_FORCE_MODE_LPM 1
|
|
+#define QCOM_RPM_FORCE_MODE_HPM 2
|
|
+#define QCOM_RPM_FORCE_MODE_AUTO 3
|
|
+#define QCOM_RPM_FORCE_MODE_BYPASS 4
|
|
+
|
|
+#endif
|
|
--
|
|
2.1.4
|
|
|