123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- 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>;
- };
- };
- };
|