Path: blob/main/sys/contrib/device-tree/Bindings/display/brcm,bcm-vc4.txt
48377 views
Broadcom VC4 (VideoCore4) GPU12The VC4 device present on the Raspberry Pi includes a display system3with HDMI output and the HVS (Hardware Video Scaler) for compositing4display planes.56Required properties for VC4:7- compatible: Should be "brcm,bcm2835-vc4" or "brcm,cygnus-vc4"89Required properties for Pixel Valve:10- compatible: Should be one of "brcm,bcm2835-pixelvalve0",11"brcm,bcm2835-pixelvalve1", or "brcm,bcm2835-pixelvalve2"12- reg: Physical base address and length of the PV's registers13- interrupts: The interrupt number14See bindings/interrupt-controller/brcm,bcm2835-armctrl-ic.txt1516Required properties for HVS:17- compatible: Should be "brcm,bcm2835-hvs"18- reg: Physical base address and length of the HVS's registers19- interrupts: The interrupt number20See bindings/interrupt-controller/brcm,bcm2835-armctrl-ic.txt2122Required properties for HDMI23- compatible: Should be "brcm,bcm2835-hdmi"24- reg: Physical base address and length of the two register ranges25("HDMI" and "HD", in that order)26- interrupts: The interrupt numbers27See bindings/interrupt-controller/brcm,bcm2835-armctrl-ic.txt28- ddc: phandle of the I2C controller used for DDC EDID probing29- clocks: a) hdmi: The HDMI state machine clock30b) pixel: The pixel clock.3132Optional properties for HDMI:33- hpd-gpios: The GPIO pin for HDMI hotplug detect (if it doesn't appear34as an interrupt/status bit in the HDMI controller35itself). See bindings/pinctrl/brcm,bcm2835-gpio.txt36- dmas: Should contain one entry pointing to the DMA channel used to37transfer audio data38- dma-names: Should contain "audio-rx"3940Required properties for DPI:41- compatible: Should be "brcm,bcm2835-dpi"42- reg: Physical base address and length of the registers43- clocks: a) core: The core clock the unit runs on44b) pixel: The pixel clock that feeds the pixelvalve45- port: Port node with a single endpoint connecting to the panel46device, as defined in [1]4748Required properties for VEC:49- compatible: Should be "brcm,bcm2835-vec"50- reg: Physical base address and length of the registers51- clocks: The core clock the unit runs on52- interrupts: The interrupt number53See bindings/interrupt-controller/brcm,bcm2835-armctrl-ic.txt5455Required properties for V3D:56- compatible: Should be "brcm,bcm2835-v3d" or "brcm,cygnus-v3d"57- reg: Physical base address and length of the V3D's registers58- interrupts: The interrupt number59See bindings/interrupt-controller/brcm,bcm2835-armctrl-ic.txt6061Optional properties for V3D:62- clocks: The clock the unit runs on6364Required properties for DSI:65- compatible: Should be "brcm,bcm2835-dsi0" or "brcm,bcm2835-dsi1"66- reg: Physical base address and length of the DSI block's registers67- interrupts: The interrupt number68See bindings/interrupt-controller/brcm,bcm2835-armctrl-ic.txt69- clocks: a) phy: The DSI PLL clock feeding the DSI analog PHY70b) escape: The DSI ESC clock from CPRMAN71c) pixel: The DSI pixel clock from CPRMAN72- clock-output-names:73The 3 clocks output from the DSI analog PHY: dsi[01]_byte,74dsi[01]_ddr2, and dsi[01]_ddr7576Required properties for the TXP (writeback) block:77- compatible: Should be "brcm,bcm2835-txp"78- reg: Physical base address and length of the TXP block's registers79- interrupts: The interrupt number80See bindings/interrupt-controller/brcm,bcm2835-armctrl-ic.txt8182[1] Documentation/devicetree/bindings/media/video-interfaces.txt8384Example:85pixelvalve@7e807000 {86compatible = "brcm,bcm2835-pixelvalve2";87reg = <0x7e807000 0x100>;88interrupts = <2 10>; /* pixelvalve */89};9091hvs@7e400000 {92compatible = "brcm,bcm2835-hvs";93reg = <0x7e400000 0x6000>;94interrupts = <2 1>;95};9697hdmi: hdmi@7e902000 {98compatible = "brcm,bcm2835-hdmi";99reg = <0x7e902000 0x600>,100<0x7e808000 0x100>;101interrupts = <2 8>, <2 9>;102ddc = <&i2c2>;103hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>;104clocks = <&clocks BCM2835_PLLH_PIX>,105<&clocks BCM2835_CLOCK_HSM>;106clock-names = "pixel", "hdmi";107};108109dpi: dpi@7e208000 {110compatible = "brcm,bcm2835-dpi";111reg = <0x7e208000 0x8c>;112clocks = <&clocks BCM2835_CLOCK_VPU>,113<&clocks BCM2835_CLOCK_DPI>;114clock-names = "core", "pixel";115#address-cells = <1>;116#size-cells = <0>;117118port {119dpi_out: endpoint@0 {120remote-endpoint = <&panel_in>;121};122};123};124125dsi1: dsi@7e700000 {126compatible = "brcm,bcm2835-dsi1";127reg = <0x7e700000 0x8c>;128interrupts = <2 12>;129#address-cells = <1>;130#size-cells = <0>;131#clock-cells = <1>;132133clocks = <&clocks BCM2835_PLLD_DSI1>,134<&clocks BCM2835_CLOCK_DSI1E>,135<&clocks BCM2835_CLOCK_DSI1P>;136clock-names = "phy", "escape", "pixel";137138clock-output-names = "dsi1_byte", "dsi1_ddr2", "dsi1_ddr";139140pitouchscreen: panel@0 {141compatible = "raspberrypi,touchscreen";142reg = <0>;143144<...>145};146};147148vec: vec@7e806000 {149compatible = "brcm,bcm2835-vec";150reg = <0x7e806000 0x1000>;151clocks = <&clocks BCM2835_CLOCK_VEC>;152interrupts = <2 27>;153};154155v3d: v3d@7ec00000 {156compatible = "brcm,bcm2835-v3d";157reg = <0x7ec00000 0x1000>;158interrupts = <1 10>;159};160161vc4: gpu {162compatible = "brcm,bcm2835-vc4";163};164165panel: panel {166compatible = "ontat,yx700wv03", "simple-panel";167168port {169panel_in: endpoint {170remote-endpoint = <&dpi_out>;171};172};173};174175176