Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1Broadcom VC4 (VideoCore4) GPU
2
3The VC4 device present on the Raspberry Pi includes a display system
4with HDMI output and the HVS (Hardware Video Scaler) for compositing
5display planes.
6
7Required properties for VC4:
8- compatible: Should be "brcm,bcm2835-vc4" or "brcm,cygnus-vc4"
9
10Required 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
16
17Required 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
22
23Required 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.
32
33Optional 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
37- dmas: Should contain one entry pointing to the DMA channel used to
38 transfer audio data
39- dma-names: Should contain "audio-rx"
40
41Required properties for DPI:
42- compatible: Should be "brcm,bcm2835-dpi"
43- reg: Physical base address and length of the registers
44- clocks: a) core: The core clock the unit runs on
45 b) pixel: The pixel clock that feeds the pixelvalve
46- port: Port node with a single endpoint connecting to the panel
47 device, as defined in [1]
48
49Required properties for VEC:
50- compatible: Should be "brcm,bcm2835-vec"
51- reg: Physical base address and length of the registers
52- clocks: The core clock the unit runs on
53- interrupts: The interrupt number
54 See bindings/interrupt-controller/brcm,bcm2835-armctrl-ic.txt
55
56Required properties for V3D:
57- compatible: Should be "brcm,bcm2835-v3d" or "brcm,cygnus-v3d"
58- reg: Physical base address and length of the V3D's registers
59- interrupts: The interrupt number
60 See bindings/interrupt-controller/brcm,bcm2835-armctrl-ic.txt
61
62Optional properties for V3D:
63- clocks: The clock the unit runs on
64
65Required properties for DSI:
66- compatible: Should be "brcm,bcm2835-dsi0" or "brcm,bcm2835-dsi1"
67- reg: Physical base address and length of the DSI block's registers
68- interrupts: The interrupt number
69 See bindings/interrupt-controller/brcm,bcm2835-armctrl-ic.txt
70- clocks: a) phy: The DSI PLL clock feeding the DSI analog PHY
71 b) escape: The DSI ESC clock from CPRMAN
72 c) pixel: The DSI pixel clock from CPRMAN
73- clock-output-names:
74 The 3 clocks output from the DSI analog PHY: dsi[01]_byte,
75 dsi[01]_ddr2, and dsi[01]_ddr
76
77Required properties for the TXP (writeback) block:
78- compatible: Should be "brcm,bcm2835-txp"
79- reg: Physical base address and length of the TXP block's registers
80- interrupts: The interrupt number
81 See bindings/interrupt-controller/brcm,bcm2835-armctrl-ic.txt
82
83[1] Documentation/devicetree/bindings/media/video-interfaces.txt
84
85Example:
86pixelvalve@7e807000 {
87 compatible = "brcm,bcm2835-pixelvalve2";
88 reg = <0x7e807000 0x100>;
89 interrupts = <2 10>; /* pixelvalve */
90};
91
92hvs@7e400000 {
93 compatible = "brcm,bcm2835-hvs";
94 reg = <0x7e400000 0x6000>;
95 interrupts = <2 1>;
96};
97
98hdmi: hdmi@7e902000 {
99 compatible = "brcm,bcm2835-hdmi";
100 reg = <0x7e902000 0x600>,
101 <0x7e808000 0x100>;
102 interrupts = <2 8>, <2 9>;
103 ddc = <&i2c2>;
104 hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>;
105 clocks = <&clocks BCM2835_PLLH_PIX>,
106 <&clocks BCM2835_CLOCK_HSM>;
107 clock-names = "pixel", "hdmi";
108};
109
110dpi: dpi@7e208000 {
111 compatible = "brcm,bcm2835-dpi";
112 reg = <0x7e208000 0x8c>;
113 clocks = <&clocks BCM2835_CLOCK_VPU>,
114 <&clocks BCM2835_CLOCK_DPI>;
115 clock-names = "core", "pixel";
116 #address-cells = <1>;
117 #size-cells = <0>;
118
119 port {
120 dpi_out: endpoint@0 {
121 remote-endpoint = <&panel_in>;
122 };
123 };
124};
125
126dsi1: dsi@7e700000 {
127 compatible = "brcm,bcm2835-dsi1";
128 reg = <0x7e700000 0x8c>;
129 interrupts = <2 12>;
130 #address-cells = <1>;
131 #size-cells = <0>;
132 #clock-cells = <1>;
133
134 clocks = <&clocks BCM2835_PLLD_DSI1>,
135 <&clocks BCM2835_CLOCK_DSI1E>,
136 <&clocks BCM2835_CLOCK_DSI1P>;
137 clock-names = "phy", "escape", "pixel";
138
139 clock-output-names = "dsi1_byte", "dsi1_ddr2", "dsi1_ddr";
140
141 pitouchscreen: panel@0 {
142 compatible = "raspberrypi,touchscreen";
143 reg = <0>;
144
145 <...>
146 };
147};
148
149vec: vec@7e806000 {
150 compatible = "brcm,bcm2835-vec";
151 reg = <0x7e806000 0x1000>;
152 clocks = <&clocks BCM2835_CLOCK_VEC>;
153 interrupts = <2 27>;
154};
155
156v3d: v3d@7ec00000 {
157 compatible = "brcm,bcm2835-v3d";
158 reg = <0x7ec00000 0x1000>;
159 interrupts = <1 10>;
160};
161
162vc4: gpu {
163 compatible = "brcm,bcm2835-vc4";
164};
165
166panel: panel {
167 compatible = "ontat,yx700wv03", "simple-panel";
168
169 port {
170 panel_in: endpoint {
171 remote-endpoint = <&dpi_out>;
172 };
173 };
174};