public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Andrew Duggan <aduggan@synaptics.com>
To: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: <linux-input@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	Benjamin Tissoires <benjamin.tissoires@redhat.com>,
	Christopher Heiny <cheiny@synaptics.com>,
	Stephen Chandler Paul <cpaul@redhat.com>
Subject: Re: [PATCH] Input: synaptics-rmi4: Add device tree support for RMI4 I2C devices
Date: Tue, 11 Aug 2015 12:10:26 -0700	[thread overview]
Message-ID: <55CA48A2.9050409@synaptics.com> (raw)
In-Reply-To: <20150809074038.GB32984@dtor-ws>

Hi Dmitry,

On 08/09/2015 12:40 AM, Dmitry Torokhov wrote:
> Hi Andrew,
>
> On Fri, Aug 07, 2015 at 05:37:49PM -0700, Andrew Duggan wrote:
>> +Optional Properties:
>> +- syna,sensor-name: The string containing the name of the sensor.
>> +- syna,attn-gpio: The GPIO number used to assert attention.
>> +- syna,attn-polarity: The polarity of the attention GPIO.
>> +- syna,level-triggered: Set to 1 if attention GPIO is level triggered, 0 if
>> +			edge triggered.
> We already have generic bindings for i2c devices interrupt line, along
> with trigger type. We also have standard bindings for gpios, with the
> polarity. Interrupts are also parsed by the I2C core. There is no need
> to invent your own bindings.

In the current implementation rmi_driver expects an attention GPIO from 
the platform data and manages it internally. I just added those 
parameters to device tree. But, that essentially duplicates the generic 
I2C and device tree interrupt handling. I agree that rmi_driver should 
just use the irq provided in the I2C client and then we don't have to 
duplicate the GPIO handling and we can use the generic bindings.

One option is to check to see if there is an irq in the I2C client and 
skip the GPIO initialization if there is. I can provide a patch which 
does that and a v2 of this patch to use the generic bindings. But, this 
also brings up the question on whether or not we should still have the 
code for handling the GPIO in rmi_driver at all. The last time the GPIO 
code was discussed, Chris said it allowed for releasing the irq for 
certain diagnostic modes. But, there are cases when rmi_driver won't 
have access to the GPIO or when the device is directly connected to the 
IO_APIC (ie HID or SMBus devices) so the diagnostic mode won't be 
available for those devices. Also, I'm also not convinced that the 
diagnostic capabilities justify duplicating the GPIO handling. If most 
platforms are using device tree at this point I think it might be time 
to remove the GPIO code from rmi_driver and let the lower levels handle 
interrupts. Or, if there are major objections I can work around it and 
leave it as an option in the platform data for devices which still use 
board files.

http://marc.info/?l=linux-input&m=139155532321252&w=2

>> +- syna,poll-interval-ms: The interval in milliseconds to wait between reading
>> +			interrupts when the driver is polling.
>> +- syna,reset-delay-ms: The number of milliseconds to wait after resetting the
>> +			device.
>> +- syna,f01-*: Additional parameters specific to RMI4 function 1
>> +		see Documentation/devicetree/bindings/input/rmi4/rmi_f01.txt.
>> +- syna,f11-*: Additional parameters specific to RMI4 function 11
>> +		see Documentation/devicetree/bindings/input/rmi4/rmi_f11.txt.
> For function parameters I wonder if they should not be modelled as
> subnodes with "reg" representing function number.

I'll look in to doing this. Putting the function parameters into 
subnodes makes sense to me.

> Thanks.
>

Thanks,
Andrew

  reply	other threads:[~2015-08-11 19:10 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-08  0:37 [PATCH] Input: synaptics-rmi4: Add device tree support for RMI4 I2C devices Andrew Duggan
2015-08-09  7:40 ` Dmitry Torokhov
2015-08-11 19:10   ` Andrew Duggan [this message]
2015-08-11 20:36     ` Dmitry Torokhov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=55CA48A2.9050409@synaptics.com \
    --to=aduggan@synaptics.com \
    --cc=benjamin.tissoires@redhat.com \
    --cc=cheiny@synaptics.com \
    --cc=cpaul@redhat.com \
    --cc=dmitry.torokhov@gmail.com \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox