From b1d6499e00b6061ecc7061335199acf86f54d31a Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 13 Mar 2020 16:52:55 +0000 Subject: [PATCH] dtoverlays: Add overlay to enable the HEVC V4L2 driver This replaces the rpivid_mem register mapping driver. When the driver is complete, these DT changes should be merged into the base DT instead of being an overlay. Signed-off-by: Dave Stevenson --- arch/arm/boot/dts/overlays/Makefile | 1 + arch/arm/boot/dts/overlays/README | 7 +++ .../boot/dts/overlays/rpivid-v4l2-overlay.dts | 55 +++++++++++++++++++ 4 files changed, 63 insertions(+), 2 deletions(-) create mode 100644 arch/arm/boot/dts/overlays/rpivid-v4l2-overlay.dts --- a/arch/arm/boot/dts/overlays/Makefile +++ b/arch/arm/boot/dts/overlays/Makefile @@ -140,6 +140,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \ rpi-proto.dtbo \ rpi-sense.dtbo \ rpi-tv.dtbo \ + rpivid-v4l2.dtbo \ rra-digidac1-wm8741-audio.dtbo \ sc16is750-i2c.dtbo \ sc16is752-i2c.dtbo \ --- a/arch/arm/boot/dts/overlays/README +++ b/arch/arm/boot/dts/overlays/README @@ -2064,6 +2064,13 @@ Load: dtoverlay=rpi-tv Params: +Name: rpivid-v4l2 +Info: Load the V4L2 stateless video decoder driver for the HEVC block, + disabling the memory mapped devices in the process. +Load: dtoverlay=rpivid-v4l2 +Params: + + Name: rra-digidac1-wm8741-audio Info: Configures the Red Rocks Audio DigiDAC1 soundcard Load: dtoverlay=rra-digidac1-wm8741-audio --- /dev/null +++ b/arch/arm/boot/dts/overlays/rpivid-v4l2-overlay.dts @@ -0,0 +1,55 @@ +// SPDX-License-Identifier: GPL-2.0-only +// Definitions for Raspberry Pi video decode engine +/dts-v1/; +/plugin/; + +#include + +/{ + compatible = "brcm,bcm2711"; + + fragment@0 { + target = <&scb>; + __overlay__ { + /* needed to avoid dtc warning */ + #address-cells = <2>; + #size-cells = <1>; + codec@7eb10000 { + compatible = "raspberrypi,rpivid-vid-decoder"; + reg = <0x0 0x7eb10000 0x1000>, /* INTC */ + <0x0 0x7eb00000 0x10000>; /* HEVC */ + reg-names = "intc", + "hevc"; + + interrupts = ; + + clocks = <&hevc_clk>; + clock-names = "hevc"; + + hevc_clk: hevc_clk { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <500000000>; + }; + }; + }; + }; + + fragment@1 { + target = <&scb>; + __overlay__ { + hevc-decoder@7eb00000 { + status = "disabled"; + }; + rpivid-local-intc@7eb10000 { + status = "disabled"; + }; + h264-decoder@7eb20000 { + status = "disabled"; + }; + vp9-decoder@7eb30000 { + status = "disabled"; + }; + }; + }; +};