On Tue, Nov 26, 2024 at 09:47:59PM +0100, Sasha Finkelstein wrote: > +properties: > + compatible: > + items: > + - enum: > + - apple,j293-touchbar > + - apple,j493-touchbar > + - const: apple,z2-touchbar > + - const: apple,z2-multitouch What is the meaning of these two last compatibles in the list? What are these devices? > + > + interrupts: > + maxItems: 1 > + > + reset-gpios: > + maxItems: 1 > + > + cs-gpios: > + maxItems: 1 > + description: | Do not need '|' unless you need to preserve formatting. > + J293 has a hardware quirk where the CS line is unusable and has > + to the be driven by a GPIO pin instead > + > + firmware-name: > + maxItems: 1 > + > + label: > + maxItems: 1 Why is this needed? I think it is not part of common touchscreen schema. Drop, devices do not need labels - node name and unit address identify it. If this is needed for something else, then come with generic property matching all touchscreens. > + > + touchscreen-size-x: true > + touchscreen-size-y: true Drop these two > + > +required: > + - compatible > + - interrupts > + - reset-gpios > + - firmware-name > + - label > + - touchscreen-size-x > + - touchscreen-size-y > + > +unevaluatedProperties: false > + > +examples: > + - | > + #include <dt-bindings/gpio/gpio.h> > + #include <dt-bindings/interrupt-controller/irq.h> > + > + spi { > + #address-cells = <1>; > + #size-cells = <0>; > + > + touchscreen@0 { > + compatible = "apple,j293-touchbar", "apple,z2-touchbar", > + "apple,z2-multitouch"; > + reg = <0>; > + spi-max-frequency = <11500000>; > + reset-gpios = <&pinctrl_ap 139 0>; > + cs-gpios = <&pinctrl_ap 109 0>; Use proper GPIO bindings constants. You included header for this, I guess. > + interrupts-extended = <&pinctrl_ap 194 IRQ_TYPE_EDGE_FALLING>; > + firmware-name = "apple/dfrmtfw-j293.bin"; > + touchscreen-size-x = <23045>; > + touchscreen-size-y = <640>; > + label = "MacBookPro17,1 Touch Bar"; > + }; > + }; > + > +... > > -- > 2.47.1 >