On Mon, Oct 14, 2024 at 06:01:49PM +0800, Liu Ying wrote: > On 10/14/2024, Dmitry Baryshkov wrote: > > [...] > > >>>>> My suggestion would be to add a single root-level property which > >>>>> specifies which port provides even pixel data. > >>>> > >>>> That won't work. The LVDS source side expects the ports of > >>>> the sink side specify dual-lvds-{odd,even}-pixels properties. > >>> > >>> I didn't notice that these properties are already defined. > >>> > >>> As these properties are common between several schema files, please > >>> extract them to a common schema file (like lvds.yaml). > >> > >> I'm not sure how to do that. Is it obvious? > >> Please shed some light. > >> > >> Only two panel schema files are defining even/odd pixels now - > >> advantech,idk-2121wr.yaml and panel-simple-lvds-dual-ports.yaml. > >> Maybe, extract them later when more schema files(especially for > >> bridges) try to define the same? I'd like to keep a low profile > >> for now. > > > > I'd say, please extract those now. Adding third is more than enough and > > should be avoided. Extracting is pretty simple. One patch to move the > > definition and descriptions from panel-simple-lvds-dual-ports to a > > common location (e.g. lvds-dual-ports.yaml). Leave the required > > constrains in place. Second patch is to add oneOf constraints to the > > ports. > > oneOf just sits below ports so that single-port and dual-port > are documented separately? That won't pass dt_binding_check > as the v1 binding has proved that warnings will be generated. > > > port@0 might get the same oneOf + the > > dual-lvds-{odd,even}-pixels:false case, allowing a single-port > > definition. > > I don't catch this. > Below snippet is a draft lvds-dual-port.yaml. > How can it be referenced in ite,it6263.yaml? allOf: - $ref: /schemas/display/lvds-dual-port.yaml Another option might be to use $defs, define two combinations: single-or-dual-port, dual-only-port. Reference them from the panel bindings and from your bridge bindings by using: ports: port@0: $ref: /schemas/display/lvds.yaml#/#defs/single-or-dual-port port@1: $ref: /schemas/display/lvds.yaml#/#defs/dual-only-port (the names are just an example, feel free to come with better suggestions). > > ---8<--- > allOf: > - $ref: lvds.yaml# > > properties: > ports: > $ref: /schemas/graph.yaml#/properties/ports > > properties: > port@0: > $ref: /schemas/graph.yaml#/$defs/port-base > unevaluatedProperties: false > description: the first LVDS input link > > properties: > dual-lvds-odd-pixels: > type: boolean > description: the first sink port for odd pixels > > dual-lvds-even-pixels: > type: boolean > description: the first sink port for even pixels > > oneOf: > - required: [dual-lvds-even-pixels] > - required: [dual-lvds-odd-pixels] Also under oneOf: - properties: dual-lvds-odd-pixels: false dual-lvds-even-pixels: false > > port@1: > $ref: /schemas/graph.yaml#/$defs/port-base > unevaluatedProperties: false > description: the second LVDS input link > > properties: > dual-lvds-even-pixels: > type: boolean > description: the second sink port for even pixels > > dual-lvds-odd-pixels: > type: boolean > description: the second sink port for odd pixels > > oneOf: > - required: [dual-lvds-even-pixels] > - required: [dual-lvds-odd-pixels] > > required: > - port@0 > - port@1 You allow both single-port and dual-port configurations, so you can not use this required statement. Please keep this part in the corresponding panel bindings. > > unevaluatedProperties: false > ---8<--- > > -- > Regards, > Liu Ying > -- With best wishes Dmitry