summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/display/brcm,bcm-vc4.txt
blob: e2768703ac2b9fa730b41fe23b4ec0ed21ff31e2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
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"

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

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"
- reg:		Physical base address and length of the V3D'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>;
		};
	};
};

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