mbox series

[v6,0/3] Firmware Support for USB-HID Devices and CP2112

Message ID 20230217184904.1290-1-kaehndan@gmail.com
Headers show
Series Firmware Support for USB-HID Devices and CP2112 | expand

Message

Daniel Kaehn Feb. 17, 2023, 6:49 p.m. UTC
This patchset allows USB-HID devices to have DeviceTree bindings through sharing
the USB of_node with the HID driver, and adds such a binding and driver
implementation for the CP2112 USB to SMBus Bridge (which necessitated the
USB-HID change). This change allows a CP2112 permanently attached in hardware to
be described in DT and interoperate with other drivers.

Changes in v6:
- Fix fwnode_handle reference leaks in hid-cp21112.c
- Simplify hog node pattern in silabs,cp2112.yaml

Changes in v5:
 - Use fwnode API instead of of_node api in hid-core.c and hid-cp2112.c
 - Include sda-gpios and scl-gpios in silabs,cp2112.yaml
 - Additional fixups to silabs,cp2112.yaml to address comments
 - Submit threaded interrupt bugfix separately from this patchset, as requested

Changes in v4:
 - Moved silabs,cp2112.yaml to /Documentation/devicetree/bindings/i2c

Changes in v3:
 - Additional fixups to silabs,cp2112.yaml to address comments

Changes in v2:
 - Added more detail to silabs,cp2112.yaml dt-binding
 - Moved silabs,cp2112.yaml to /Documentation/devicetree/bindings/input
 - Added support for setting smbus clock-frequency from DT in hid-cp2112.c
 - Added freeing of of_nodes on error paths of _probe in hid-cp2112.c

Danny Kaehn (3):
  dt-bindings: i2c: Add CP2112 HID USB to SMBus Bridge
  HID: usbhid: Share USB device firmware node with child HID device
  HID: cp2112: Fwnode Support

 .../bindings/i2c/silabs,cp2112.yaml           | 113 ++++++++++++++++++
 drivers/hid/hid-cp2112.c                      |  15 ++-
 drivers/hid/usbhid/hid-core.c                 |   2 +
 3 files changed, 128 insertions(+), 2 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/i2c/silabs,cp2112.yaml

Comments

Andy Shevchenko Feb. 17, 2023, 7:13 p.m. UTC | #1
On Fri, Feb 17, 2023 at 12:49:04PM -0600, Danny Kaehn wrote:
> Bind i2c and gpio interfaces to subnodes with names

I2C
GPIO

> "i2c" and "gpio" if they exist, respectively. This
> allows the gpio and i2c controllers to be described

GPIO
I2C

> in firmware as usual. Additionally, support configuring the
> i2c bus speed from the clock-frequency device property.

I2C

...

> +err_free_i2c_of:
> +	fwnode_handle_put(dev->adap.dev.fwnode);

Please, use dev_fwnode(&dev->adap.dev)

...

> +	fwnode_handle_put(dev->adap.dev.fwnode);

Ditto.