1 Broadcom VC4 (VideoCore4) GPU
3 The VC4 device present on the Raspberry Pi includes a display system
4 with HDMI output and the HVS (Hardware Video Scaler) for compositing
7 Required properties for VC4:
8 - compatible: Should be "brcm,bcm2835-vc4"
10 Required properties for Pixel Valve:
11 - compatible: Should be one of "brcm,bcm2835-pixelvalve0",
12 "brcm,bcm2835-pixelvalve1", or "brcm,bcm2835-pixelvalve2"
13 - reg: Physical base address and length of the PV's registers
14 - interrupts: The interrupt number
15 See bindings/interrupt-controller/brcm,bcm2835-armctrl-ic.txt
17 Required properties for HVS:
18 - compatible: Should be "brcm,bcm2835-hvs"
19 - reg: Physical base address and length of the HVS's registers
20 - interrupts: The interrupt number
21 See bindings/interrupt-controller/brcm,bcm2835-armctrl-ic.txt
23 Required properties for HDMI
24 - compatible: Should be "brcm,bcm2835-hdmi"
25 - reg: Physical base address and length of the two register ranges
26 ("HDMI" and "HD", in that order)
27 - interrupts: The interrupt numbers
28 See bindings/interrupt-controller/brcm,bcm2835-armctrl-ic.txt
29 - ddc: phandle of the I2C controller used for DDC EDID probing
30 - clocks: a) hdmi: The HDMI state machine clock
31 b) pixel: The pixel clock.
33 Optional properties for HDMI:
34 - hpd-gpios: The GPIO pin for HDMI hotplug detect (if it doesn't appear
35 as an interrupt/status bit in the HDMI controller
36 itself). See bindings/pinctrl/brcm,bcm2835-gpio.txt
38 Required properties for DPI:
39 - compatible: Should be "brcm,bcm2835-dpi"
40 - reg: Physical base address and length of the registers
41 - clocks: a) core: The core clock the unit runs on
42 b) pixel: The pixel clock that feeds the pixelvalve
43 - port: Port node with a single endpoint connecting to the panel
44 device, as defined in [1]
46 Required properties for VEC:
47 - compatible: Should be "brcm,bcm2835-vec"
48 - reg: Physical base address and length of the registers
49 - clocks: The core clock the unit runs on
50 - interrupts: The interrupt number
51 See bindings/interrupt-controller/brcm,bcm2835-armctrl-ic.txt
53 Required properties for V3D:
54 - compatible: Should be "brcm,bcm2835-v3d"
55 - reg: Physical base address and length of the V3D's registers
56 - interrupts: The interrupt number
57 See bindings/interrupt-controller/brcm,bcm2835-armctrl-ic.txt
59 Required properties for DSI:
60 - compatible: Should be "brcm,bcm2835-dsi0" or "brcm,bcm2835-dsi1"
61 - reg: Physical base address and length of the DSI block's registers
62 - interrupts: The interrupt number
63 See bindings/interrupt-controller/brcm,bcm2835-armctrl-ic.txt
64 - clocks: a) phy: The DSI PLL clock feeding the DSI analog PHY
65 b) escape: The DSI ESC clock from CPRMAN
66 c) pixel: The DSI pixel clock from CPRMAN
68 The 3 clocks output from the DSI analog PHY: dsi[01]_byte,
69 dsi[01]_ddr2, and dsi[01]_ddr
71 [1] Documentation/devicetree/bindings/media/video-interfaces.txt
75 compatible = "brcm,bcm2835-pixelvalve2";
76 reg = <0x7e807000 0x100>;
77 interrupts = <2 10>; /* pixelvalve */
81 compatible = "brcm,bcm2835-hvs";
82 reg = <0x7e400000 0x6000>;
87 compatible = "brcm,bcm2835-hdmi";
88 reg = <0x7e902000 0x600>,
90 interrupts = <2 8>, <2 9>;
92 hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>;
93 clocks = <&clocks BCM2835_PLLH_PIX>,
94 <&clocks BCM2835_CLOCK_HSM>;
95 clock-names = "pixel", "hdmi";
99 compatible = "brcm,bcm2835-dpi";
100 reg = <0x7e208000 0x8c>;
101 clocks = <&clocks BCM2835_CLOCK_VPU>,
102 <&clocks BCM2835_CLOCK_DPI>;
103 clock-names = "core", "pixel";
104 #address-cells = <1>;
108 dpi_out: endpoint@0 {
109 remote-endpoint = <&panel_in>;
115 compatible = "brcm,bcm2835-dsi1";
116 reg = <0x7e700000 0x8c>;
118 #address-cells = <1>;
122 clocks = <&clocks BCM2835_PLLD_DSI1>,
123 <&clocks BCM2835_CLOCK_DSI1E>,
124 <&clocks BCM2835_CLOCK_DSI1P>;
125 clock-names = "phy", "escape", "pixel";
127 clock-output-names = "dsi1_byte", "dsi1_ddr2", "dsi1_ddr";
129 pitouchscreen: panel@0 {
130 compatible = "raspberrypi,touchscreen";
138 compatible = "brcm,bcm2835-vec";
139 reg = <0x7e806000 0x1000>;
140 clocks = <&clocks BCM2835_CLOCK_VEC>;
145 compatible = "brcm,bcm2835-v3d";
146 reg = <0x7ec00000 0x1000>;
151 compatible = "brcm,bcm2835-vc4";
155 compatible = "ontat,yx700wv03", "simple-panel";
159 remote-endpoint = <&dpi_out>;