Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1f957324 authored by Eric Anholt's avatar Eric Anholt
Browse files

drm/vc4: Add devicetree bindings for VC4.



VC4 is the GPU (display and 3D) subsystem present on the 2835 and some
other Broadcom SoCs.

This binding follows the model of msm, imx, sti, and others, where
there is a subsystem node for the whole GPU, with nodes for the
individual HW components within it.

v2: Extend the commit message, fix several nits from Stephen Warren.
v3: Rename the compatibility strings, clean up node names, drop the
    unnecessary lists of components.  Use compatibility strings for
    choosing CRTC HVS channel numbers.  Document the HDMI clock usage.
v4: Whitespace fix, expand acronyms, move to display/ instead of gpu/,
    rename "hpd-gpio" to "hpd-gpios".

Signed-off-by: default avatarEric Anholt <eric@anholt.net>
parent 6ff33f39
Loading
Loading
Loading
Loading
+65 −0
Original line number Diff line number Diff line
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

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

vc4: gpu {
	compatible = "brcm,bcm2835-vc4";
};