Re: [PATCH RFC 4/7] i2c: Add device tree bindings for GENI I2C Controller
From: Karthik Ramasubramanian <hidden>
Date: 2018-01-12 21:35:37
Also in:
linux-arm-msm, linux-i2c, linux-serial
On 1/11/2018 8:19 AM, Rob Herring wrote:
On Mon, Jan 8, 2018 at 6:33 PM, Karthik Ramasubramanian [off-list ref] wrote:quoted
On 1/2/2018 8:51 AM, Rob Herring wrote:quoted
On Wed, Dec 27, 2017 at 09:27:23AM -0700, Karthikeyan Ramasubramanian wrote:quoted
Add device tree binding support for I2C Controller in GENI based QUP Wrapper. Signed-off-by: Sagar Dharia <redacted> Signed-off-by: Karthikeyan Ramasubramanian <redacted> --- .../devicetree/bindings/i2c/i2c-qcom-geni.txt | 39 ++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 Documentation/devicetree/bindings/i2c/i2c-qcom-geni.txtdiff --git a/Documentation/devicetree/bindings/i2c/i2c-qcom-geni.txtb/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.quoted
quoted
+ - 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