DT-binding of reg-mux is defined in such a way that one need to provide register offset and mask in a "mux-reg-masks" property and corresponding register value in "idle-states" property. This constraint forces to define these values in such a way that "mux-reg-masks" and "idle-states" must be in sync with each other. This implementation would be more complex if specific register or set of registers need to be configured which has large memory space. Introduce a new property "mux-reg-masks-state" which allow to specify offset, mask and value as a tuple in a single property. Signed-off-by: Chintan Vankar <c-vankar@xxxxxx> --- Link to v1: https://lore.kernel.org/r/20250227202206.2551305-2-c-vankar@xxxxxx/ Changes from v1 to v2: - Updated dt-bindings for the required conditions as suggested by Conor Dooley and Andrew Davis. .../devicetree/bindings/mux/reg-mux.yaml | 28 +++++++++++++++---- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/Documentation/devicetree/bindings/mux/reg-mux.yaml b/Documentation/devicetree/bindings/mux/reg-mux.yaml index dc4be092fc2f..5255e4a06920 100644 --- a/Documentation/devicetree/bindings/mux/reg-mux.yaml +++ b/Documentation/devicetree/bindings/mux/reg-mux.yaml @@ -32,12 +32,30 @@ properties: - description: pre-shifted bitfield mask description: Each entry pair describes a single mux control. - idle-states: true + idle-states: + description: Each entry describes mux register state. -required: - - compatible - - mux-reg-masks - - '#mux-control-cells' + mux-reg-masks-state: + $ref: /schemas/types.yaml#/definitions/uint32-matrix + items: + items: + - description: register offset + - description: pre-shifted bitfield mask + - description: register value to be set + description: This property is an extension of mux-reg-masks which + allows specifying register offset, mask and register + value to be set in a single property. + +allOf: + - not: + required: [mux-reg-masks, mux-reg-masks-state] + + - if: + required: + - mux-reg-masks-state + then: + properties: + idle-states: false additionalProperties: false -- 2.34.1