From: Andy Yan <andy.yan@rock-chips.com>
Add vop found on rk3576, the main difference between rk3576 and the
previous vop is that each VP has its own interrupt line.
Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
---
Changes in v9:
- Drop 'vop-' prefix of interrupt-names.
- Add blank line between DT properties
- Remove list interrupt-names in top level
Changes in v8:
- Fix dt_binding_check errors
- ordered by soc name
- Link to the previous version:
https://lore.kernel.org/linux-rockchip/6pn3qjxotdtpzucpul24yro7ppddezwuizneovqvmgdwyv2j7p@ztg4mqyiqmjf/T/#u
Changes in v4:
- describe constraint SOC by SOC, as interrupts of rk3576 is very
different from others
- Drop Krzysztof's Reviewed-by, as this version changed a lot.
Changes in v3:
- ordered by soc name
- Add description for newly added interrupt
Changes in v2:
- Add dt bindings
.../display/rockchip/rockchip-vop2.yaml | 83 +++++++++++++++----
1 file changed, 67 insertions(+), 16 deletions(-)
diff --git a/Documentation/devicetree/bindings/display/rockchip/rockchip-vop2.yaml b/Documentation/devicetree/bindings/display/rockchip/rockchip-vop2.yaml
index 2531726af306..44256cdcb877 100644
--- a/Documentation/devicetree/bindings/display/rockchip/rockchip-vop2.yaml
+++ b/Documentation/devicetree/bindings/display/rockchip/rockchip-vop2.yaml
@@ -20,6 +20,7 @@ properties:
enum:
- rockchip,rk3566-vop
- rockchip,rk3568-vop
+ - rockchip,rk3576-vop
- rockchip,rk3588-vop
reg:
@@ -37,10 +38,17 @@ properties:
- const: gamma-lut
interrupts:
- maxItems: 1
+ minItems: 1
+ maxItems: 4
description:
- The VOP interrupt is shared by several interrupt sources, such as
- frame start (VSYNC), line flag and other status interrupts.
+ For VOP version under rk3576, the interrupt is shared by several interrupt
+ sources, such as frame start (VSYNC), line flag and other interrupt status.
+ For VOP version from rk3576 there is a system interrupt for bus error, and
+ every video port has it's independent interrupts for vsync and other video
+ port related error interrupts.
+
+ interrupt-names:
+ maxItems: 4
# See compatible-specific constraints below.
clocks:
@@ -120,43 +128,86 @@ allOf:
properties:
compatible:
contains:
- const: rockchip,rk3588-vop
+ enum:
+ - rockchip,rk3566-vop
+ - rockchip,rk3568-vop
then:
properties:
clocks:
- minItems: 7
+ minItems: 5
+
clock-names:
- minItems: 7
+ minItems: 5
ports:
required:
- port@0
- port@1
- port@2
- - port@3
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - rockchip,rk3576-vop
+ then:
+ properties:
+ clocks:
+ minItems: 5
+
+ clock-names:
+ minItems: 5
+
+ ports:
+ required:
+ - port@0
+ - port@1
+ - port@2
+
+ interrupts:
+ items:
+ - description: vop system interrupt, such as axi bus error
+ - description: interrupts for video port0, such as vsync, dsp_hold.
+ - description: interrupts for video port1, such as vsync, dsp_hold.
+ - description: interrupts for video port2, such as vsync, dsp_hold.
+
+ interrupt-names:
+ items:
+ - const: sys
+ - const: vp0
+ - const: vp1
+ - const: vp2
required:
- rockchip,grf
- - rockchip,vo1-grf
- - rockchip,vop-grf
- rockchip,pmu
- else:
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: rockchip,rk3588-vop
+ then:
properties:
- rockchip,vo1-grf: false
- rockchip,vop-grf: false
- rockchip,pmu: false
-
clocks:
- maxItems: 5
+ minItems: 7
+
clock-names:
- maxItems: 5
+ minItems: 7
ports:
required:
- port@0
- port@1
- port@2
+ - port@3
+
+ required:
+ - rockchip,grf
+ - rockchip,vo1-grf
+ - rockchip,vop-grf
+ - rockchip,pmu
additionalProperties: false
--
2.34.1
On Wed, Jan 08, 2025 at 07:52:27PM +0800, Andy Yan wrote: > From: Andy Yan <andy.yan@rock-chips.com> > > Add vop found on rk3576, the main difference between rk3576 and the > previous vop is that each VP has its own interrupt line. > > Signed-off-by: Andy Yan <andy.yan@rock-chips.com> > > --- > > Changes in v9: > - Drop 'vop-' prefix of interrupt-names. > - Add blank line between DT properties > - Remove list interrupt-names in top level That's the opposite of what we usually want... > > Changes in v8: > - Fix dt_binding_check errors > - ordered by soc name > - Link to the previous version: > https://lore.kernel.org/linux-rockchip/6pn3qjxotdtpzucpul24yro7ppddezwuizneovqvmgdwyv2j7p@ztg4mqyiqmjf/T/#u > > Changes in v4: > - describe constraint SOC by SOC, as interrupts of rk3576 is very > different from others > - Drop Krzysztof's Reviewed-by, as this version changed a lot. > > Changes in v3: > - ordered by soc name > - Add description for newly added interrupt > > Changes in v2: > - Add dt bindings > > .../display/rockchip/rockchip-vop2.yaml | 83 +++++++++++++++---- > 1 file changed, 67 insertions(+), 16 deletions(-) > > diff --git a/Documentation/devicetree/bindings/display/rockchip/rockchip-vop2.yaml b/Documentation/devicetree/bindings/display/rockchip/rockchip-vop2.yaml > index 2531726af306..44256cdcb877 100644 > --- a/Documentation/devicetree/bindings/display/rockchip/rockchip-vop2.yaml > +++ b/Documentation/devicetree/bindings/display/rockchip/rockchip-vop2.yaml > @@ -20,6 +20,7 @@ properties: > enum: > - rockchip,rk3566-vop > - rockchip,rk3568-vop > + - rockchip,rk3576-vop > - rockchip,rk3588-vop > > reg: > @@ -37,10 +38,17 @@ properties: > - const: gamma-lut > > interrupts: > - maxItems: 1 > + minItems: 1 > + maxItems: 4 > description: > - The VOP interrupt is shared by several interrupt sources, such as > - frame start (VSYNC), line flag and other status interrupts. > + For VOP version under rk3576, the interrupt is shared by several interrupt > + sources, such as frame start (VSYNC), line flag and other interrupt status. > + For VOP version from rk3576 there is a system interrupt for bus error, and > + every video port has it's independent interrupts for vsync and other video > + port related error interrupts. > + > + interrupt-names: > + maxItems: 4 > > # See compatible-specific constraints below. > clocks: > @@ -120,43 +128,86 @@ allOf: > properties: > compatible: > contains: > - const: rockchip,rk3588-vop > + enum: > + - rockchip,rk3566-vop > + - rockchip,rk3568-vop > then: > properties: > clocks: > - minItems: 7 > + minItems: 5 > + > clock-names: > - minItems: 7 > + minItems: 5 > > ports: > required: > - port@0 > - port@1 > - port@2 > - - port@3 > + > + - if: > + properties: > + compatible: > + contains: > + enum: > + - rockchip,rk3576-vop > + then: > + properties: > + clocks: > + minItems: 5 > + > + clock-names: > + minItems: 5 > + > + ports: > + required: > + - port@0 > + - port@1 > + - port@2 > + > + interrupts: > + items: > + - description: vop system interrupt, such as axi bus error > + - description: interrupts for video port0, such as vsync, dsp_hold. > + - description: interrupts for video port1, such as vsync, dsp_hold. > + - description: interrupts for video port2, such as vsync, dsp_hold. > + > + interrupt-names: > + items: > + - const: sys > + - const: vp0 > + - const: vp1 > + - const: vp2 > > required: > - rockchip,grf > - - rockchip,vo1-grf > - - rockchip,vop-grf > - rockchip,pmu > > - else: > + - if: > + properties: > + compatible: > + contains: > + const: rockchip,rk3588-vop > + then: > properties: > - rockchip,vo1-grf: false > - rockchip,vop-grf: false > - rockchip,pmu: false > - > clocks: > - maxItems: 5 > + minItems: 7 > + > clock-names: > - maxItems: 5 > + minItems: 7 > > ports: > required: > - port@0 > - port@1 > - port@2 > + - port@3 > + > + required: > + - rockchip,grf > + - rockchip,vo1-grf > + - rockchip,vop-grf > + - rockchip,pmu Where do the existing platforms have a constraint of only 1 interrupt? And now while rk3576 has defined interrupt-names, all the other can have 4 entries with anything. Rob
© 2016 - 2025 Red Hat, Inc.