Message ID | 20230319204802.1364-2-kaehndan@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Firmware Support for USB-HID Devices and CP2112 | expand |
On 19/03/2023 21:48, Danny Kaehn wrote: > This is a USB HID device which includes an I2C controller and 8 GPIO pins. > > The binding allows describing the chip's gpio and i2c controller in DT > using the subnodes named "gpio" and "i2c", respectively. This is > intended to be used in configurations where the CP2112 is permanently > connected in hardware. > > Signed-off-by: Danny Kaehn <kaehndan@gmail.com> > Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> From where did you get it? There was no such tag at v7: https://lore.kernel.org/all/20230223213147.268-2-kaehndan@gmail.com/ nor at v6: https://lore.kernel.org/all/20230217184904.1290-2-kaehndan@gmail.com/ ??? Best regards, Krzysztof
On Mon, Mar 20, 2023, 1:44 AM Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> wrote: > > On 19/03/2023 21:48, Danny Kaehn wrote: > > This is a USB HID device which includes an I2C controller and 8 GPIO pins. > > > > The binding allows describing the chip's gpio and i2c controller in DT > > using the subnodes named "gpio" and "i2c", respectively. This is > > intended to be used in configurations where the CP2112 is permanently > > connected in hardware. > > > > Signed-off-by: Danny Kaehn <kaehndan@gmail.com> > > Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> > > From where did you get it? There was no such tag at v7: > https://lore.kernel.org/all/20230223213147.268-2-kaehndan@gmail.com/ > nor at v6: > https://lore.kernel.org/all/20230217184904.1290-2-kaehndan@gmail.com/ > > ??? Hi Krzysztof, My apologies. It looks like you reviewed this in v4 [1]. I had received feedback on v7 that I should be carrying tags from previous reviews forward if minimal / no changes have been made to the patch reviewed, out of respect for reviewers who look at lots of patches (like yourself) [2], and hadn't retroactively applied your tag until v8. Since v4, I'd only made a few changes suggested by Rob, plus added an example of specifying bus recovery GPIOs in the binding, and thought those would fall within the scope of minor changes -- but my apologies if this was a bad assumption! I can remove and re-submit if desired. Thanks, Danny Kaehn [1]: https://lore.kernel.org/all/c999c387-401a-e3a1-f431-2770930c5ecc@linaro.org/ [2]: https://lore.kernel.org/all/Y%2FjpME2mb5CqPooj@smile.fi.intel.com/
diff --git a/Documentation/devicetree/bindings/i2c/silabs,cp2112.yaml b/Documentation/devicetree/bindings/i2c/silabs,cp2112.yaml new file mode 100644 index 000000000000..a27509627804 --- /dev/null +++ b/Documentation/devicetree/bindings/i2c/silabs,cp2112.yaml @@ -0,0 +1,113 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/i2c/silabs,cp2112.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: CP2112 HID USB to SMBus/I2C Bridge + +maintainers: + - Danny Kaehn <kaehndan@gmail.com> + +description: + The CP2112 is a USB HID device which includes an integrated I2C controller + and 8 GPIO pins. Its GPIO pins can each be configured as inputs, open-drain + outputs, or push-pull outputs. + +properties: + compatible: + const: usb10c4,ea90 + + reg: + maxItems: 1 + description: The USB port number on the host controller + + i2c: + description: The SMBus/I2C controller node for the CP2112 + $ref: /schemas/i2c/i2c-controller.yaml# + unevaluatedProperties: false + + properties: + sda-gpios: + maxItems: 1 + + scl-gpios: + maxItems: 1 + + clock-frequency: + minimum: 10000 + default: 100000 + maximum: 400000 + + gpio: + description: The GPIO controller node for the CP2112 + type: object + unevaluatedProperties: false + + properties: + interrupt-controller: true + "#interrupt-cells": + const: 2 + + gpio-controller: true + "#gpio-cells": + const: 2 + + gpio-line-names: + minItems: 1 + maxItems: 8 + + patternProperties: + "-hog(-[0-9]+)?$": + type: object + + required: + - gpio-hog + +required: + - compatible + - reg + +additionalProperties: false + +examples: + - | + #include <dt-bindings/interrupt-controller/irq.h> + #include <dt-bindings/gpio/gpio.h> + + usb { + #address-cells = <1>; + #size-cells = <0>; + + device@1 { + compatible = "usb10c4,ea90"; + reg = <1>; + + i2c { + #address-cells = <1>; + #size-cells = <0>; + sda-gpios = <&cp2112_gpio 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + scl-gpios = <&cp2112_gpio 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + + temp@48 { + compatible = "national,lm75"; + reg = <0x48>; + }; + }; + + cp2112_gpio: gpio { + gpio-controller; + interrupt-controller; + #gpio-cells = <2>; + gpio-line-names = "CP2112_SDA", "CP2112_SCL", "TEST2", + "TEST3","TEST4", "TEST5", "TEST6"; + + fan-rst-hog { + gpio-hog; + gpios = <7 GPIO_ACTIVE_HIGH>; + output-high; + line-name = "FAN_RST"; + }; + }; + }; + };