On Dec 12 2016 or thereabouts, Jiri Kosina wrote:
> Given the timing (merge window being open) and given then NACK given by 
> Rob, I've now unapplied the patches (the for-4.10/i2c-hid branch is now 
> obsolete, and has been superseded by for-4.10/i2c-hid-nopower).
> 
> However, this is mostly done in order to provide more time for discussion; 
> I still disagree with the reasoning behind the NACK.
> 

To hopefully make things going forward a little bit, I was wondering
over the week-end if we should not solve this particular issue by adding
an intermediate platform DT node:

instead of having:
---
        i2c-hid-dev@2c {
                compatible = "hid-over-i2c";
                reg = <0x2c>;
                hid-descr-addr = <0x0020>;
                interrupt-parent = <&gpx3>;
                interrupts = <3 2>;
                vdd-supply = <sth>;
                init-delay-ms = <100>;
        };
---

we would have:
---
        platform-i2c-hid@01 {
                compatible = 
"very-special-board-that-needs-firmware-quirks-and-delay-of-100ms";
                vdd-supply = <sth>;
                i2c-hid-dev@2c {
                        compatible = "hid-over-i2c";
                        reg = <0x2c>;
                        hid-descr-addr = <0x0020>;
                        interrupt-parent = <&gpx3>;
                        interrupts = <3 2>;
                };
        };
---

If I am not wrong, the platform device should be initialized before
i2c-hid get called, which allows to setup properly the vdd supply.
On resume/suspend, the tree should be respected and we should be able to
enable/disable power in the same fashion this patch provides.

We could then extend this platform device at will without tinkering in
i2c-hid and we could also handle the GPIOs, reset or whatever is
required in the future through compatibles.

Thoughts? yes? no? bullshit?

Cheers,
Benjamin

Reply via email to