diff options
Diffstat (limited to 'target/linux/bcm27xx/patches-5.4/950-0540-dt-bindings-display-Convert-VC4-bindings-to-schemas.patch')
-rw-r--r-- | target/linux/bcm27xx/patches-5.4/950-0540-dt-bindings-display-Convert-VC4-bindings-to-schemas.patch | 706 |
1 files changed, 706 insertions, 0 deletions
diff --git a/target/linux/bcm27xx/patches-5.4/950-0540-dt-bindings-display-Convert-VC4-bindings-to-schemas.patch b/target/linux/bcm27xx/patches-5.4/950-0540-dt-bindings-display-Convert-VC4-bindings-to-schemas.patch new file mode 100644 index 0000000000..3e47c475ff --- /dev/null +++ b/target/linux/bcm27xx/patches-5.4/950-0540-dt-bindings-display-Convert-VC4-bindings-to-schemas.patch @@ -0,0 +1,706 @@ +From 193065956ba3e285df2c67f7c3bdeb3bdaae6ee9 Mon Sep 17 00:00:00 2001 +From: Maxime Ripard <maxime@cerno.tech> +Date: Thu, 13 Feb 2020 15:42:05 +0100 +Subject: [PATCH] dt-bindings: display: Convert VC4 bindings to schemas + +The BCM283x SoCs have a display pipeline composed of several controllers +with device tree bindings that are supported by Linux. + +Now that we have the DT validation in place, let's split into separate +files and convert the device tree bindings for those controllers to +schemas. + +This is just a 1:1 conversion though, and some bindings were incomplete so +it results in example validation warnings that are going to be addressed in +the following patches. + +Cc: Rob Herring <robh+dt@kernel.org> +Cc: devicetree@vger.kernel.org +Signed-off-by: Maxime Ripard <maxime@cerno.tech> +--- + .../bindings/display/brcm,bcm-vc4.txt | 174 ------------------ + .../bindings/display/brcm,bcm2835-dpi.yaml | 66 +++++++ + .../bindings/display/brcm,bcm2835-dsi0.yaml | 73 ++++++++ + .../bindings/display/brcm,bcm2835-hdmi.yaml | 75 ++++++++ + .../bindings/display/brcm,bcm2835-hvs.yaml | 37 ++++ + .../display/brcm,bcm2835-pixelvalve0.yaml | 40 ++++ + .../bindings/display/brcm,bcm2835-txp.yaml | 37 ++++ + .../bindings/display/brcm,bcm2835-v3d.yaml | 42 +++++ + .../bindings/display/brcm,bcm2835-vc4.yaml | 34 ++++ + .../bindings/display/brcm,bcm2835-vec.yaml | 44 +++++ + MAINTAINERS | 2 +- + 11 files changed, 449 insertions(+), 175 deletions(-) + delete mode 100644 Documentation/devicetree/bindings/display/brcm,bcm-vc4.txt + create mode 100644 Documentation/devicetree/bindings/display/brcm,bcm2835-dpi.yaml + create mode 100644 Documentation/devicetree/bindings/display/brcm,bcm2835-dsi0.yaml + create mode 100644 Documentation/devicetree/bindings/display/brcm,bcm2835-hdmi.yaml + create mode 100644 Documentation/devicetree/bindings/display/brcm,bcm2835-hvs.yaml + create mode 100644 Documentation/devicetree/bindings/display/brcm,bcm2835-pixelvalve0.yaml + create mode 100644 Documentation/devicetree/bindings/display/brcm,bcm2835-txp.yaml + create mode 100644 Documentation/devicetree/bindings/display/brcm,bcm2835-v3d.yaml + create mode 100644 Documentation/devicetree/bindings/display/brcm,bcm2835-vc4.yaml + create mode 100644 Documentation/devicetree/bindings/display/brcm,bcm2835-vec.yaml + +--- a/Documentation/devicetree/bindings/display/brcm,bcm-vc4.txt ++++ /dev/null +@@ -1,174 +0,0 @@ +-Broadcom VC4 (VideoCore4) GPU +- +-The VC4 device present on the Raspberry Pi includes a display system +-with HDMI output and the HVS (Hardware Video Scaler) for compositing +-display planes. +- +-Required properties for VC4: +-- compatible: Should be "brcm,bcm2835-vc4" or "brcm,cygnus-vc4" +- +-Required properties for Pixel Valve: +-- compatible: Should be one of "brcm,bcm2835-pixelvalve0", +- "brcm,bcm2835-pixelvalve1", or "brcm,bcm2835-pixelvalve2" +-- reg: Physical base address and length of the PV's registers +-- interrupts: The interrupt number +- See bindings/interrupt-controller/brcm,bcm2835-armctrl-ic.txt +- +-Required properties for HVS: +-- compatible: Should be "brcm,bcm2835-hvs" +-- reg: Physical base address and length of the HVS's registers +-- interrupts: The interrupt number +- See bindings/interrupt-controller/brcm,bcm2835-armctrl-ic.txt +- +-Required properties for HDMI +-- compatible: Should be "brcm,bcm2835-hdmi" +-- reg: Physical base address and length of the two register ranges +- ("HDMI" and "HD", in that order) +-- interrupts: The interrupt numbers +- See bindings/interrupt-controller/brcm,bcm2835-armctrl-ic.txt +-- ddc: phandle of the I2C controller used for DDC EDID probing +-- clocks: a) hdmi: The HDMI state machine clock +- b) pixel: The pixel clock. +- +-Optional properties for HDMI: +-- hpd-gpios: The GPIO pin for HDMI hotplug detect (if it doesn't appear +- as an interrupt/status bit in the HDMI controller +- itself). See bindings/pinctrl/brcm,bcm2835-gpio.txt +-- dmas: Should contain one entry pointing to the DMA channel used to +- transfer audio data +-- dma-names: Should contain "audio-rx" +- +-Required properties for DPI: +-- compatible: Should be "brcm,bcm2835-dpi" +-- reg: Physical base address and length of the registers +-- clocks: a) core: The core clock the unit runs on +- b) pixel: The pixel clock that feeds the pixelvalve +-- port: Port node with a single endpoint connecting to the panel +- device, as defined in [1] +- +-Required properties for VEC: +-- compatible: Should be "brcm,bcm2835-vec" +-- reg: Physical base address and length of the registers +-- clocks: The core clock the unit runs on +-- interrupts: The interrupt number +- See bindings/interrupt-controller/brcm,bcm2835-armctrl-ic.txt +- +-Required properties for V3D: +-- compatible: Should be "brcm,bcm2835-v3d" or "brcm,cygnus-v3d" +-- reg: Physical base address and length of the V3D's registers +-- interrupts: The interrupt number +- See bindings/interrupt-controller/brcm,bcm2835-armctrl-ic.txt +- +-Optional properties for V3D: +-- clocks: The clock the unit runs on +- +-Required properties for DSI: +-- compatible: Should be "brcm,bcm2835-dsi0" or "brcm,bcm2835-dsi1" +-- reg: Physical base address and length of the DSI block's registers +-- interrupts: The interrupt number +- See bindings/interrupt-controller/brcm,bcm2835-armctrl-ic.txt +-- clocks: a) phy: The DSI PLL clock feeding the DSI analog PHY +- b) escape: The DSI ESC clock from CPRMAN +- c) pixel: The DSI pixel clock from CPRMAN +-- clock-output-names: +- The 3 clocks output from the DSI analog PHY: dsi[01]_byte, +- dsi[01]_ddr2, and dsi[01]_ddr +- +-Required properties for the TXP (writeback) block: +-- compatible: Should be "brcm,bcm2835-txp" +-- reg: Physical base address and length of the TXP block's registers +-- interrupts: The interrupt number +- See bindings/interrupt-controller/brcm,bcm2835-armctrl-ic.txt +- +-[1] Documentation/devicetree/bindings/media/video-interfaces.txt +- +-Example: +-pixelvalve@7e807000 { +- compatible = "brcm,bcm2835-pixelvalve2"; +- reg = <0x7e807000 0x100>; +- interrupts = <2 10>; /* pixelvalve */ +-}; +- +-hvs@7e400000 { +- compatible = "brcm,bcm2835-hvs"; +- reg = <0x7e400000 0x6000>; +- interrupts = <2 1>; +-}; +- +-hdmi: hdmi@7e902000 { +- compatible = "brcm,bcm2835-hdmi"; +- reg = <0x7e902000 0x600>, +- <0x7e808000 0x100>; +- interrupts = <2 8>, <2 9>; +- ddc = <&i2c2>; +- hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>; +- clocks = <&clocks BCM2835_PLLH_PIX>, +- <&clocks BCM2835_CLOCK_HSM>; +- clock-names = "pixel", "hdmi"; +-}; +- +-dpi: dpi@7e208000 { +- compatible = "brcm,bcm2835-dpi"; +- reg = <0x7e208000 0x8c>; +- clocks = <&clocks BCM2835_CLOCK_VPU>, +- <&clocks BCM2835_CLOCK_DPI>; +- clock-names = "core", "pixel"; +- #address-cells = <1>; +- #size-cells = <0>; +- +- port { +- dpi_out: endpoint@0 { +- remote-endpoint = <&panel_in>; +- }; +- }; +-}; +- +-dsi1: dsi@7e700000 { +- compatible = "brcm,bcm2835-dsi1"; +- reg = <0x7e700000 0x8c>; +- interrupts = <2 12>; +- #address-cells = <1>; +- #size-cells = <0>; +- #clock-cells = <1>; +- +- clocks = <&clocks BCM2835_PLLD_DSI1>, +- <&clocks BCM2835_CLOCK_DSI1E>, +- <&clocks BCM2835_CLOCK_DSI1P>; +- clock-names = "phy", "escape", "pixel"; +- +- clock-output-names = "dsi1_byte", "dsi1_ddr2", "dsi1_ddr"; +- +- pitouchscreen: panel@0 { +- compatible = "raspberrypi,touchscreen"; +- reg = <0>; +- +- <...> +- }; +-}; +- +-vec: vec@7e806000 { +- compatible = "brcm,bcm2835-vec"; +- reg = <0x7e806000 0x1000>; +- clocks = <&clocks BCM2835_CLOCK_VEC>; +- interrupts = <2 27>; +-}; +- +-v3d: v3d@7ec00000 { +- compatible = "brcm,bcm2835-v3d"; +- reg = <0x7ec00000 0x1000>; +- interrupts = <1 10>; +-}; +- +-vc4: gpu { +- compatible = "brcm,bcm2835-vc4"; +-}; +- +-panel: panel { +- compatible = "ontat,yx700wv03", "simple-panel"; +- +- port { +- panel_in: endpoint { +- remote-endpoint = <&dpi_out>; +- }; +- }; +-}; +--- /dev/null ++++ b/Documentation/devicetree/bindings/display/brcm,bcm2835-dpi.yaml +@@ -0,0 +1,66 @@ ++# SPDX-License-Identifier: GPL-2.0 ++%YAML 1.2 ++--- ++$id: http://devicetree.org/schemas/display/brcm,bcm2835-dpi.yaml# ++$schema: http://devicetree.org/meta-schemas/core.yaml# ++ ++title: Broadcom VC4 (VideoCore4) DPI Controller ++ ++maintainers: ++ - Eric Anholt <eric@anholt.net> ++ ++properties: ++ compatible: ++ const: brcm,bcm2835-dpi ++ ++ reg: ++ maxItems: 1 ++ ++ clocks: ++ items: ++ - description: The core clock the unit runs on ++ - description: The pixel clock that feeds the pixelvalve ++ ++ port: ++ type: object ++ description: > ++ Port node with a single endpoint connecting to the panel, as ++ defined in Documentation/devicetree/bindings/media/video-interfaces.txt. ++ ++required: ++ - compatible ++ - reg ++ - clocks ++ - port ++ ++additionalProperties: false ++ ++examples: ++ - | ++ #include <dt-bindings/clock/bcm2835.h> ++ ++ panel: panel { ++ compatible = "ontat,yx700wv03", "simple-panel"; ++ ++ port { ++ panel_in: endpoint { ++ remote-endpoint = <&dpi_out>; ++ }; ++ }; ++ }; ++ ++ dpi: dpi@7e208000 { ++ compatible = "brcm,bcm2835-dpi"; ++ reg = <0x7e208000 0x8c>; ++ clocks = <&clocks BCM2835_CLOCK_VPU>, ++ <&clocks BCM2835_CLOCK_DPI>; ++ clock-names = "core", "pixel"; ++ ++ port { ++ dpi_out: endpoint { ++ remote-endpoint = <&panel_in>; ++ }; ++ }; ++ }; ++ ++... +--- /dev/null ++++ b/Documentation/devicetree/bindings/display/brcm,bcm2835-dsi0.yaml +@@ -0,0 +1,73 @@ ++# SPDX-License-Identifier: GPL-2.0 ++%YAML 1.2 ++--- ++$id: http://devicetree.org/schemas/display/brcm,bcm2835-dsi0.yaml# ++$schema: http://devicetree.org/meta-schemas/core.yaml# ++ ++title: Broadcom VC4 (VideoCore4) DSI Controller ++ ++maintainers: ++ - Eric Anholt <eric@anholt.net> ++ ++properties: ++ compatible: ++ enum: ++ - brcm,bcm2835-dsi0 ++ - brcm,bcm2835-dsi1 ++ ++ reg: ++ maxItems: 1 ++ ++ clocks: ++ items: ++ - description: The DSI PLL clock feeding the DSI analog PHY ++ - description: The DSI ESC clock ++ - description: The DSI pixel clock ++ ++ clock-output-names: true ++ # FIXME: The meta-schemas don't seem to allow it for now ++ # items: ++ # - description: The DSI byte clock for the PHY ++ # - description: The DSI DDR2 clock ++ # - description: The DSI DDR clock ++ ++ interrupts: ++ maxItems: 1 ++ ++required: ++ - compatible ++ - reg ++ - clocks ++ - clock-output-names ++ - interrupts ++ ++unevaluatedProperties: false ++ ++examples: ++ - | ++ #include <dt-bindings/clock/bcm2835.h> ++ ++ dsi1: dsi@7e700000 { ++ compatible = "brcm,bcm2835-dsi1"; ++ reg = <0x7e700000 0x8c>; ++ interrupts = <2 12>; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ #clock-cells = <1>; ++ ++ clocks = <&clocks BCM2835_PLLD_DSI1>, ++ <&clocks BCM2835_CLOCK_DSI1E>, ++ <&clocks BCM2835_CLOCK_DSI1P>; ++ clock-names = "phy", "escape", "pixel"; ++ ++ clock-output-names = "dsi1_byte", "dsi1_ddr2", "dsi1_ddr"; ++ ++ pitouchscreen: panel@0 { ++ compatible = "raspberrypi,touchscreen"; ++ reg = <0>; ++ ++ /* ... */ ++ }; ++ }; ++ ++... +--- /dev/null ++++ b/Documentation/devicetree/bindings/display/brcm,bcm2835-hdmi.yaml +@@ -0,0 +1,75 @@ ++# SPDX-License-Identifier: GPL-2.0 ++%YAML 1.2 ++--- ++$id: http://devicetree.org/schemas/display/brcm,bcm2835-hdmi.yaml# ++$schema: http://devicetree.org/meta-schemas/core.yaml# ++ ++title: Broadcom VC4 (VideoCore4) HDMI Controller ++ ++maintainers: ++ - Eric Anholt <eric@anholt.net> ++ ++properties: ++ compatible: ++ const: brcm,bcm2835-hdmi ++ ++ reg: ++ items: ++ - description: HDMI register range ++ - description: HD register range ++ ++ interrupts: ++ minItems: 2 ++ ++ clocks: ++ items: ++ - description: The HDMI state machine clock ++ - description: The pixel clock ++ ++ ddc: ++ allOf: ++ - $ref: /schemas/types.yaml#/definitions/phandle ++ description: > ++ Phandle of the I2C controller used for DDC EDID probing ++ ++ hpd-gpios: ++ description: > ++ The GPIO pin for the HDMI hotplug detect (if it doesn't appear ++ as an interrupt/status bit in the HDMI controller itself) ++ ++ dmas: ++ maxItems: 1 ++ description: > ++ Should contain one entry pointing to the DMA channel used to ++ transfer audio data. ++ ++ dma-names: ++ const: audio-rx ++ ++required: ++ - compatible ++ - reg ++ - interrupts ++ - clocks ++ - ddc ++ ++additionalProperties: false ++ ++examples: ++ - | ++ #include <dt-bindings/clock/bcm2835.h> ++ #include <dt-bindings/gpio/gpio.h> ++ ++ hdmi: hdmi@7e902000 { ++ compatible = "brcm,bcm2835-hdmi"; ++ reg = <0x7e902000 0x600>, ++ <0x7e808000 0x100>; ++ interrupts = <2 8>, <2 9>; ++ ddc = <&i2c2>; ++ hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>; ++ clocks = <&clocks BCM2835_PLLH_PIX>, ++ <&clocks BCM2835_CLOCK_HSM>; ++ clock-names = "pixel", "hdmi"; ++ }; ++ ++... +--- /dev/null ++++ b/Documentation/devicetree/bindings/display/brcm,bcm2835-hvs.yaml +@@ -0,0 +1,37 @@ ++# SPDX-License-Identifier: GPL-2.0 ++%YAML 1.2 ++--- ++$id: http://devicetree.org/schemas/display/brcm,bcm2835-hvs.yaml# ++$schema: http://devicetree.org/meta-schemas/core.yaml# ++ ++title: Broadcom VC4 (VideoCore4) Hardware Video Scaler ++ ++maintainers: ++ - Eric Anholt <eric@anholt.net> ++ ++properties: ++ compatible: ++ const: brcm,bcm2835-hvs ++ ++ reg: ++ maxItems: 1 ++ ++ interrupts: ++ maxItems: 1 ++ ++required: ++ - compatible ++ - reg ++ - interrupts ++ ++additionalProperties: false ++ ++examples: ++ - | ++ hvs@7e400000 { ++ compatible = "brcm,bcm2835-hvs"; ++ reg = <0x7e400000 0x6000>; ++ interrupts = <2 1>; ++ }; ++ ++... +--- /dev/null ++++ b/Documentation/devicetree/bindings/display/brcm,bcm2835-pixelvalve0.yaml +@@ -0,0 +1,40 @@ ++# SPDX-License-Identifier: GPL-2.0 ++%YAML 1.2 ++--- ++$id: http://devicetree.org/schemas/display/brcm,bcm2835-pixelvalve0.yaml# ++$schema: http://devicetree.org/meta-schemas/core.yaml# ++ ++title: Broadcom VC4 (VideoCore4) PixelValve ++ ++maintainers: ++ - Eric Anholt <eric@anholt.net> ++ ++properties: ++ compatible: ++ enum: ++ - brcm,bcm2835-pixelvalve0 ++ - brcm,bcm2835-pixelvalve1 ++ - brcm,bcm2835-pixelvalve2 ++ ++ reg: ++ maxItems: 1 ++ ++ interrupts: ++ maxItems: 1 ++ ++required: ++ - compatible ++ - reg ++ - interrupts ++ ++additionalProperties: false ++ ++examples: ++ - | ++ pixelvalve@7e807000 { ++ compatible = "brcm,bcm2835-pixelvalve2"; ++ reg = <0x7e807000 0x100>; ++ interrupts = <2 10>; /* pixelvalve */ ++ }; ++ ++... +--- /dev/null ++++ b/Documentation/devicetree/bindings/display/brcm,bcm2835-txp.yaml +@@ -0,0 +1,37 @@ ++# SPDX-License-Identifier: GPL-2.0 ++%YAML 1.2 ++--- ++$id: http://devicetree.org/schemas/display/brcm,bcm2835-txp.yaml# ++$schema: http://devicetree.org/meta-schemas/core.yaml# ++ ++title: Broadcom VC4 (VideoCore4) TXP (writeback) Controller ++ ++maintainers: ++ - Eric Anholt <eric@anholt.net> ++ ++properties: ++ compatible: ++ const: brcm,bcm2835-txp ++ ++ reg: ++ maxItems: 1 ++ ++ interrupts: ++ maxItems: 1 ++ ++required: ++ - compatible ++ - reg ++ - interrupts ++ ++additionalProperties: false ++ ++examples: ++ - | ++ txp: txp@7e004000 { ++ compatible = "brcm,bcm2835-txp"; ++ reg = <0x7e004000 0x20>; ++ interrupts = <1 11>; ++ }; ++ ++... +--- /dev/null ++++ b/Documentation/devicetree/bindings/display/brcm,bcm2835-v3d.yaml +@@ -0,0 +1,42 @@ ++# SPDX-License-Identifier: GPL-2.0 ++%YAML 1.2 ++--- ++$id: http://devicetree.org/schemas/display/brcm,bcm2835-v3d.yaml# ++$schema: http://devicetree.org/meta-schemas/core.yaml# ++ ++title: Broadcom VC4 (VideoCore4) V3D GPU ++ ++maintainers: ++ - Eric Anholt <eric@anholt.net> ++ ++properties: ++ compatible: ++ enum: ++ - brcm,bcm2835-v3d ++ - brcm,cygnus-v3d ++ ++ reg: ++ maxItems: 1 ++ ++ clocks: ++ maxItems: 1 ++ ++ interrupts: ++ maxItems: 1 ++ ++required: ++ - compatible ++ - reg ++ - interrupts ++ ++additionalProperties: false ++ ++examples: ++ - | ++ v3d: v3d@7ec00000 { ++ compatible = "brcm,bcm2835-v3d"; ++ reg = <0x7ec00000 0x1000>; ++ interrupts = <1 10>; ++ }; ++ ++... +--- /dev/null ++++ b/Documentation/devicetree/bindings/display/brcm,bcm2835-vc4.yaml +@@ -0,0 +1,34 @@ ++# SPDX-License-Identifier: GPL-2.0 ++%YAML 1.2 ++--- ++$id: http://devicetree.org/schemas/display/brcm,bcm2835-vc4.yaml# ++$schema: http://devicetree.org/meta-schemas/core.yaml# ++ ++title: Broadcom VC4 (VideoCore4) GPU ++ ++maintainers: ++ - Eric Anholt <eric@anholt.net> ++ ++description: > ++ The VC4 device present on the Raspberry Pi includes a display system ++ with HDMI output and the HVS (Hardware Video Scaler) for compositing ++ display planes. ++ ++properties: ++ compatible: ++ enum: ++ - brcm,bcm2835-vc4 ++ - brcm,cygnus-vc4 ++ ++required: ++ - compatible ++ ++additionalProperties: false ++ ++examples: ++ - | ++ vc4: gpu { ++ compatible = "brcm,bcm2835-vc4"; ++ }; ++ ++... +--- /dev/null ++++ b/Documentation/devicetree/bindings/display/brcm,bcm2835-vec.yaml +@@ -0,0 +1,44 @@ ++# SPDX-License-Identifier: GPL-2.0 ++%YAML 1.2 ++--- ++$id: http://devicetree.org/schemas/display/brcm,bcm2835-vec.yaml# ++$schema: http://devicetree.org/meta-schemas/core.yaml# ++ ++title: Broadcom VC4 (VideoCore4) VEC ++ ++maintainers: ++ - Eric Anholt <eric@anholt.net> ++ ++properties: ++ compatible: ++ const: brcm,bcm2835-vec ++ ++ reg: ++ maxItems: 1 ++ ++ clocks: ++ maxItems: 1 ++ ++ interrupts: ++ maxItems: 1 ++ ++required: ++ - compatible ++ - reg ++ - clocks ++ - interrupts ++ ++additionalProperties: false ++ ++examples: ++ - | ++ #include <dt-bindings/clock/bcm2835.h> ++ ++ vec: vec@7e806000 { ++ compatible = "brcm,bcm2835-vec"; ++ reg = <0x7e806000 0x1000>; ++ clocks = <&clocks BCM2835_CLOCK_VEC>; ++ interrupts = <2 27>; ++ }; ++ ++... +--- a/MAINTAINERS ++++ b/MAINTAINERS +@@ -5573,7 +5573,7 @@ T: git git://github.com/anholt/linux + S: Supported + F: drivers/gpu/drm/vc4/ + F: include/uapi/drm/vc4_drm.h +-F: Documentation/devicetree/bindings/display/brcm,bcm-vc4.txt ++F: Documentation/devicetree/bindings/display/brcm,bcm2835-*.yaml + T: git git://anongit.freedesktop.org/drm/drm-misc + + DRM DRIVERS FOR VIVANTE GPU IP |