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: Eric Anholt <eric@anholt.net>
2015-08-12 03:17:11 +07:00
|
|
|
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:
|
2017-04-29 05:42:23 +07:00
|
|
|
- compatible: Should be "brcm,bcm2835-vc4" or "brcm,cygnus-vc4"
|
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: Eric Anholt <eric@anholt.net>
2015-08-12 03:17:11 +07:00
|
|
|
|
|
|
|
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
|
2017-02-28 03:28:01 +07:00
|
|
|
- dmas: Should contain one entry pointing to the DMA channel used to
|
|
|
|
transfer audio data
|
|
|
|
- dma-names: Should contain "audio-rx"
|
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: Eric Anholt <eric@anholt.net>
2015-08-12 03:17:11 +07:00
|
|
|
|
2016-02-11 02:42:32 +07:00
|
|
|
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]
|
|
|
|
|
2016-12-02 20:48:11 +07:00
|
|
|
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
|
|
|
|
|
2016-03-05 03:32:06 +07:00
|
|
|
Required properties for V3D:
|
2017-04-29 05:42:23 +07:00
|
|
|
- compatible: Should be "brcm,bcm2835-v3d" or "brcm,cygnus-v3d"
|
2016-03-05 03:32:06 +07:00
|
|
|
- reg: Physical base address and length of the V3D's registers
|
|
|
|
- interrupts: The interrupt number
|
|
|
|
See bindings/interrupt-controller/brcm,bcm2835-armctrl-ic.txt
|
|
|
|
|
2017-04-29 05:42:21 +07:00
|
|
|
Optional properties for V3D:
|
|
|
|
- clocks: The clock the unit runs on
|
|
|
|
|
2016-12-15 02:46:16 +07:00
|
|
|
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
|
|
|
|
|
2016-02-11 02:42:32 +07:00
|
|
|
[1] Documentation/devicetree/bindings/media/video-interfaces.txt
|
|
|
|
|
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: Eric Anholt <eric@anholt.net>
2015-08-12 03:17:11 +07:00
|
|
|
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";
|
|
|
|
};
|
|
|
|
|
2016-02-11 02:42:32 +07:00
|
|
|
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>;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2016-12-15 02:46:16 +07:00
|
|
|
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>;
|
|
|
|
|
|
|
|
<...>
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2016-12-02 20:48:11 +07:00
|
|
|
vec: vec@7e806000 {
|
|
|
|
compatible = "brcm,bcm2835-vec";
|
|
|
|
reg = <0x7e806000 0x1000>;
|
|
|
|
clocks = <&clocks BCM2835_CLOCK_VEC>;
|
|
|
|
interrupts = <2 27>;
|
|
|
|
};
|
|
|
|
|
2016-03-05 03:32:06 +07:00
|
|
|
v3d: v3d@7ec00000 {
|
|
|
|
compatible = "brcm,bcm2835-v3d";
|
|
|
|
reg = <0x7ec00000 0x1000>;
|
|
|
|
interrupts = <1 10>;
|
|
|
|
};
|
|
|
|
|
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: Eric Anholt <eric@anholt.net>
2015-08-12 03:17:11 +07:00
|
|
|
vc4: gpu {
|
|
|
|
compatible = "brcm,bcm2835-vc4";
|
|
|
|
};
|
2016-02-11 02:42:32 +07:00
|
|
|
|
|
|
|
panel: panel {
|
|
|
|
compatible = "ontat,yx700wv03", "simple-panel";
|
|
|
|
|
|
|
|
port {
|
|
|
|
panel_in: endpoint {
|
|
|
|
remote-endpoint = <&dpi_out>;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|