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
|
From b1d6499e00b6061ecc7061335199acf86f54d31a Mon Sep 17 00:00:00 2001
From: Dave Stevenson <dave.stevenson@raspberrypi.com>
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 <dave.stevenson@raspberrypi.com>
---
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: <None>
+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: <None>
+
+
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 <dt-bindings/interrupt-controller/arm-gic.h>
+
+/{
+ 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 = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
+
+ 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";
+ };
+ };
+ };
+};
|