On 1/11/2018 8:19 AM, Rob Herring wrote:
On Mon, Jan 8, 2018 at 6:33 PM, Karthik Ramasubramanian
<kramasub@xxxxxxxxxxxxxx> wrote:
On 1/2/2018 8:51 AM, Rob Herring wrote:
On Wed, Dec 27, 2017 at 09:27:23AM -0700, Karthikeyan Ramasubramanian
wrote:
Add device tree binding support for I2C Controller in GENI based
QUP Wrapper.
Signed-off-by: Sagar Dharia <sdharia@xxxxxxxxxxxxxx>
Signed-off-by: Karthikeyan Ramasubramanian <kramasub@xxxxxxxxxxxxxx>
---
.../devicetree/bindings/i2c/i2c-qcom-geni.txt | 39
++++++++++++++++++++++
1 file changed, 39 insertions(+)
create mode 100644
Documentation/devicetree/bindings/i2c/i2c-qcom-geni.txt
diff --git a/Documentation/devicetree/bindings/i2c/i2c-qcom-geni.txt
b/Documentation/devicetree/bindings/i2c/i2c-qcom-geni.txt
new file mode 100644
index 0000000..d2fa9ce
--- /dev/null
+++ b/Documentation/devicetree/bindings/i2c/i2c-qcom-geni.txt
@@ -0,0 +1,39 @@
+Qualcomm Technologies Inc. GENI based I2C Controller driver
+
+Required properties:
+ - compatible: Should be:
+ * "qcom,i2c-geni.
Only 1 version?
The Serial Engine used by I2C protocol has the same version as the QUP h/w
version. The QUP Wrapper driver exposes an interface function to get the h/w
version so that I2C controller driver can support version-specific
operations, if any.
+ - reg: Should contain QUP register address and length.
+ - interrupts: Should contain I2C interrupt.
+ - clocks: Serial engine core clock, and AHB clocks needed by the
device.
Are there really clocks for a firmware based device or these are just
clocks in the parent serial engine?
The clocks are required to derive the protocol clock. The clocks are also
required by the Serial Engine to access the System Memory during DMA mode of
operation.
You can get the QUP core (or Serial engine?) node and then get its
clocks if you need to know the frequency. Put the clocks in DT in the
h/w block they belong to. If you don't really have an I2C clock in the
h/w, don't put one in the DT.
The clocks that are used to access the System Memory are common to all
the Serial Engines in the QUP Wrapper. I will move those clock
definitions to the QUP core node. The clock that is used to derive the
protocol clock is Serial Engine specific. Since the serial engine DT
node is synonymous with the protocol with which it is programmed, I am
defining that clock in the child node i.e. protocol controller block.
Rob
Regards,
Karthik.
--
Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project