Message ID | 20220419071503.1596423-1-patrick.rudolph@9elements.com |
---|---|
Headers | show |
Series | Add support for cy8c95x0 pinctrl | expand |
On 19/04/2022 09:15, Patrick Rudolph wrote: > Added device tree binding documentation for > Cypress CY8C95x0 I2C pin-controller. > Thank you for your patch. There is something to discuss/improve. (...) > + reg: > + maxItems: 1 > + > + gpio-controller: true > + > + '#gpio-cells': > + description: > + The first cell is the pin number and the second cell is used > + to specify optional parameters. > + const: 2 > + > + gpio-reserved-ranges: true > + > + interrupts: > + maxItems: 1 > + > + interrupt-controller: true > + > + '#interrupt-cells': > + description: > + Specifies the pin number and flags, as defined in > + include/dt-bindings/interrupt-controller/irq.h Skip description, it's obvious. > + const: 2 > + > + ngpios: > + minimum: 1 > + maximum: 60 > + > + gpio-line-names: > + minItems: 1 > + maxItems: 60 > + > + vdd-supply: > + description: > + Optional power supply. > + > +patternProperties: > + '-pins$': > + type: object > + description: > + Pinctrl node's client devices use subnodes for desired pin configuration. > + Client device subnodes use below standard properties. > + $ref: "/schemas/pinctrl/pincfg-node.yaml" > + > + properties: > + pins: > + description: > + List of gpio pins affected by the properties specified in this > + subnode. > + items: > + oneOf: Why do you need oneOf here? > + - pattern: "^gp([0-7][0-7])$" > + minItems: 1 > + maxItems: 60 > + > + function: > + enum: [ gpio, pwm ] > + No need for blank line. In other cases you put description before the property constraints, so do it consistently here as well. > + description: > + Specify the alternative function to be configured for the specified > + pins. > + > + bias-pull-down: true > + > + bias-pull-up: true > + > + bias-disable: true > + > + output-high: true > + > + output-low: true > + > + drive-push-pull: true > + > + drive-open-drain: true > + > + drive-open-source: true > + > + required: > + - pins > + - function > + > + additionalProperties: false > + > +required: > + - compatible > + - reg > + - interrupts > + - interrupt-controller > + - '#interrupt-cells' > + - gpio-controller > + - '#gpio-cells' no allOf referencing pinctrl.yaml? Include it unless there is some reason not to. Best regards, Krzysztof
Hi Patrick, thanks for your patch! On Tue, Apr 19, 2022 at 9:17 AM Patrick Rudolph <patrick.rudolph@9elements.com> wrote: > Added device tree binding documentation for > Cypress CY8C95x0 I2C pin-controller. > > Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com> > + '#gpio-cells': > + description: > + The first cell is the pin number and the second cell is used > + to specify optional parameters. > + const: 2 Maybe specify that the second cell uses the standard GPIO parameters in <dt-bindings/gpio/gpio.h>? The driver is quite elaborate, you can probably list which parameters you support on this hardware even if the driver don't even implement them yet: it's just a binding after all. > + ngpios: > + minimum: 1 > + maximum: 60 Why? Isn't it obvious from the compatible how many pins the GPIO chip has? Then use that instead. Write under the compatible as description: for each chip how many gpios it has. > +patternProperties: > + '-pins$': > + type: object > + description: > + Pinctrl node's client devices use subnodes for desired pin configuration. > + Client device subnodes use below standard properties. > + $ref: "/schemas/pinctrl/pincfg-node.yaml" This is impressive. It's quite advanced to use the pin config props for elaborate pin config control. Yours, LInus Walleij