NVIDIA Tegra20 video decoder driver
Subsystems (4)
v2 cover NVIDIA Tegra20 video decoder driver
This driver provides accelerated video decoding to NVIDIA Tegra20 SoC's, it is a result of reverse-engineering efforts. Driver has been tested on Toshiba AC100 and Acer A500, it should work on any Tegra20 device.
In userspace this driver is utilized by libvdpau-tegra [0] that implements VDPAU interface, so any video player that supports VDPAU can provide accelerated video decoding on Tegra20 on Linux.
[0] https://github.com/grate-driver/libvdpau-tegra
Change log:
v2:
- Addressed v1 review comments from Stephen Warren and Dan Carpenter
- Implemented runtime PM
- Miscellaneous code cleanups
- Changed 'TODO'
- CC'd media maintainers for the review as per Greg K-H request, v1 can be viewed at https://lkml.org/lkml/2017/9/25/606
Dmitry Osipenko (2):
staging: Introduce NVIDIA Tegra20 video decoder driver
ARM: dts: tegra20: Add video decoder node
.../bindings/arm/tegra/nvidia,tegra20-vde.txt | 43 + arch/arm/boot/dts/tegra20.dtsi | 17 + drivers/staging/Kconfig | 2 + drivers/staging/Makefile | 1 + drivers/staging/tegra-vde/Kconfig | 6 + drivers/staging/tegra-vde/Makefile | 1 + drivers/staging/tegra-vde/TODO | 5 + drivers/staging/tegra-vde/uapi.h | 101 ++ drivers/staging/tegra-vde/vde.c | 1105 ++++++++++++++++++++ 9 files changed, 1281 insertions(+) create mode 100644 Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-vde.txt create mode 100644 drivers/staging/tegra-vde/Kconfig create mode 100644 drivers/staging/tegra-vde/Makefile create mode 100644 drivers/staging/tegra-vde/TODO create mode 100644 drivers/staging/tegra-vde/uapi.h create mode 100644 drivers/staging/tegra-vde/vde.c
Signature · 1 line
2.14.1
PATCH v2 1/2 staging: Introduce NVIDIA Tegra20 video decoder driver
Video decoder, found on NVIDIA Tegra20 SoC, supports a standard set of video formats like H.264 / MPEG-4 / WMV / VC1. Currently driver supports decoding of CAVLC H.264 only.
--- .../bindings/arm/tegra/nvidia,tegra20-vde.txt | 43 + drivers/staging/Kconfig | 2 + drivers/staging/Makefile | 1 + drivers/staging/tegra-vde/Kconfig | 6 + drivers/staging/tegra-vde/Makefile | 1 + drivers/staging/tegra-vde/TODO | 5 + drivers/staging/tegra-vde/uapi.h | 101 ++ drivers/staging/tegra-vde/vde.c | 1105 ++++++++++++++++++++ 8 files changed, 1264 insertions(+) create mode 100644 Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-vde.txt create mode 100644 drivers/staging/tegra-vde/Kconfig create mode 100644 drivers/staging/tegra-vde/Makefile create mode 100644 drivers/staging/tegra-vde/TODO create mode 100644 drivers/staging/tegra-vde/uapi.h create mode 100644 drivers/staging/tegra-vde/vde.c
Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-vde.txt new file +43 -0
@@ -0,0 +1,43 @@ +NVIDIA Tegra Video Decoder Engine + +Required properties: +- compatible : "nvidia,tegra20-vde" +- reg : Must contain 2 register ranges: registers and IRAM region that + VDE uses for its internal needs and for passing some of decoding + parameters. +- reg-names : Must include the following entries: + - regs + - iram +- interrupts : Must contain an entry for each entry in interrupt-names. +- interrupt-names : Must include the following entries: + - ucq-error + - sync-token + - bsev + - bsea + - sxe +- clocks : Must contain an entry for each entry in clock-names. + See ../clocks/clock-bindings.txt for details. +- clock-names : Must include the following entries: + - vde +- resets : Must contain an entry for each entry in reset-names. + See ../reset/reset.txt for details. +- reset-names : Must include the following entries: + - vde + +Example: + vde@6001a000 { + compatible = "nvidia,tegra20-vde"; + reg = <0x6001a000 0x3D00 /* VDE registers */ + 0x40000400 0x3FC00>; /* IRAM region */ + reg-names = "regs", "iram"; + interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>, /* UCQ error interrupt */ + <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>, /* Sync token interrupt */ + <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>, /* BSE-V interrupt */ + <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>, /* BSE-A interrupt */ + <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; /* SXE interrupt */ + interrupt-names = "ucq-error", "sync-token", "bsev", "bsea", "sxe"; + clocks = <&tegra_car TEGRA20_CLK_VDE>; + clock-names = "vde"; + resets = <&tegra_car 61>; + reset-names = "vde"; + };
drivers/staging/Kconfig +2 -0
@@ -118,4 +118,6 @@ source "drivers/staging/vboxvideo/Kconfig" source "drivers/staging/pi433/Kconfig" +source "drivers/staging/tegra-vde/Kconfig" + endif # STAGING
drivers/staging/Makefile +1 -0
@@ -49,3 +49,4 @@ obj-$(CONFIG_BCM2835_VCHIQ) += vc04_services/ obj-$(CONFIG_CRYPTO_DEV_CCREE) += ccree/ obj-$(CONFIG_DRM_VBOXVIDEO) += vboxvideo/ obj-$(CONFIG_PI433) += pi433/ +obj-$(CONFIG_TEGRA_VDE) += tegra-vde/
drivers/staging/tegra-vde/Kconfig new file +6 -0
@@ -0,0 +1,6 @@ +config TEGRA_VDE + tristate "NVIDIA Tegra Video Decoder Engine driver" + depends on ARCH_TEGRA_2x_SOC || COMPILE_TEST + help + Say Y here to enable support for the NVIDIA Tegra video decoder + driver.
drivers/staging/tegra-vde/Makefile new file +1 -0
@@ -0,0 +1 @@ +obj-$(CONFIG_TEGRA_VDE) += vde.o
drivers/staging/tegra-vde/TODO new file +5 -0
@@ -0,0 +1,5 @@ +TODO: + - Figure out how generic V4L2 API could be utilized by this driver, + implement it. + +Contact: Dmitry Osipenko <[email protected]>
drivers/staging/tegra-vde/uapi.h new file +101 -0
101 lines not on this page · raw message
drivers/staging/tegra-vde/vde.c new file +1105 -0
1,105 lines not on this page · raw message
Signature · 1 line
2.14.1
kbuild test robot
build botRe: [PATCH v2 1/2] staging: Introduce NVIDIA Tegra20 video decoder driver
url: https://github.com/0day-ci/linux/commits/Dmitry-Osipenko/staging-Introduce-NVIDIA-Tegra20-video-decoder-driver/20171006-101015 config: blackfin-allyesconfig (attached as .config) compiler…
Hi Dmitry,
[auto build test WARNING on staging/staging-testing]
[also build test WARNING on v4.14-rc3 next-20170929]
[cannot apply to tegra/for-next]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Dmitry-Osipenko/staging-Introduce-NVIDIA-Tegra20-video-decoder-driver/20171006-101015
config: blackfin-allyesconfig (attached as .config)
compiler: bfin-uclinux-gcc (GCC) 6.2.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=blackfin
All warnings (new ones prefixed by >>):
In file included from include/linux/kernel.h:13:0,
from include/linux/clk.h:16,
from drivers/staging/tegra-vde/vde.c:11:
drivers/staging/tegra-vde/vde.c: In function 'tegra_vde_setup_hw_context':
>> drivers/staging/tegra-vde/vde.c:51:11: warning: format '%X' expects argument of type 'unsigned int', but argument 5 has type 'long unsigned int' [-Wformat=]
pr_debug("%s: %d: 0x%08X => " #__addr ")\n", \
^
include/linux/printk.h:285:21: note: in definition of macro 'pr_fmt'
#define pr_fmt(fmt) fmt
^~~
include/linux/printk.h:333:2: note: in expansion of macro 'dynamic_pr_debug'
dynamic_pr_debug(fmt, ##__VA_ARGS__)
^~~~~~~~~~~~~~~~
>> drivers/staging/tegra-vde/vde.c:51:2: note: in expansion of macro 'pr_debug'
pr_debug("%s: %d: 0x%08X => " #__addr ")\n", \
^~~~~~~~
>> drivers/staging/tegra-vde/vde.c:362:2: note: in expansion of macro 'VDE_WR'
VDE_WR(bitstream_data_paddr + bitstream_data_size,
^~~~~~
drivers/staging/tegra-vde/vde.c: In function 'tegra_vde_attach_dmabuf':
>> drivers/staging/tegra-vde/vde.c:531:40: warning: format '%d' expects argument of type 'int', but argument 3 has type 'size_t {aka long unsigned int}' [-Wformat=]
dev_err(dev, "Too small dmabuf size %d @0x%lX, "
^vim +51 drivers/staging/tegra-vde/vde.c
> 11 #include <linux/clk.h>
12 #include <linux/delay.h>
13 #include <linux/dma-buf.h>
14 #include <linux/interrupt.h>
15 #include <linux/io.h>
16 #include <linux/iopoll.h>
17 #include <linux/miscdevice.h>
18 #include <linux/module.h>
19 #include <linux/platform_device.h>
20 #include <linux/pm_runtime.h>
21 #include <linux/reset.h>
22 #include <linux/slab.h>
23 #include <linux/uaccess.h>
24
25 #include <soc/tegra/pmc.h>
26
27 #include "uapi.h"
28
29 #define SXE(offt) (0x0000 + (offt)) /* Syntax Engine */
30 #define BSEV(offt) (0x1000 + (offt)) /* Video Bitstream Engine */
31 #define MBE(offt) (0x2000 + (offt)) /* Macroblock Engine */
32 #define PPE(offt) (0x2200 + (offt)) /* Post-processing Engine */
33 #define MCE(offt) (0x2400 + (offt)) /* Motion Compensation Eng. */
34 #define TFE(offt) (0x2600 + (offt)) /* Transform Engine */
35 #define VDMA(offt) (0x2A00 + (offt)) /* Video DMA */
36 #define FRAMEID(offt) (0x3800 + (offt))
37
38 #define ICMDQUE_WR 0x00
39 #define CMDQUE_CONTROL 0x08
40 #define INTR_STATUS 0x18
41 #define BSE_INT_ENB 0x40
42 #define BSE_CONFIG 0x44
43
44 #define BSE_ICMDQUE_EMPTY BIT(3)
45 #define BSE_DMA_BUSY BIT(23)
46
47 #define TEGRA_VDE_TIMEOUT msecs_to_jiffies(1000)
48
49 #define VDE_WR(__data, __addr) \
50 do { \
> 51 pr_debug("%s: %d: 0x%08X => " #__addr ")\n", \
52 __func__, __LINE__, (__data)); \
53 writel_relaxed(__data, __addr); \
54 } while (0)
55 ---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
kbuild test robot
build botRe: [PATCH v2 1/2] staging: Introduce NVIDIA Tegra20 video decoder driver
In reply to Dmitry Osipenkourl: https://github.com/0day-ci/linux/commits/Dmitry-Osipenko/staging-Introduce-NVIDIA-Tegra20-video-decoder-driver/20171006-101015 config: ia64-allmodconfig (attached as .config) compiler…
Hi Dmitry,
[auto build test WARNING on staging/staging-testing]
[also build test WARNING on v4.14-rc3 next-20170929]
[cannot apply to tegra/for-next]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Dmitry-Osipenko/staging-Introduce-NVIDIA-Tegra20-video-decoder-driver/20171006-101015
config: ia64-allmodconfig (attached as .config)
compiler: ia64-linux-gcc (GCC) 6.2.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=ia64
All warnings (new ones prefixed by >>):
In file included from include/linux/kernel.h:13:0,
from include/linux/clk.h:16,
from drivers/staging/tegra-vde/vde.c:11:
drivers/staging/tegra-vde/vde.c: In function 'tegra_vde_setup_hw_context':
>> drivers/staging/tegra-vde/vde.c:51:11: warning: format '%X' expects argument of type 'unsigned int', but argument 5 has type 'long long unsigned int' [-Wformat=]
pr_debug("%s: %d: 0x%08X => " #__addr ")\n", \
^
include/linux/printk.h:285:21: note: in definition of macro 'pr_fmt'
#define pr_fmt(fmt) fmt
^~~
include/linux/printk.h:333:2: note: in expansion of macro 'dynamic_pr_debug'
dynamic_pr_debug(fmt, ##__VA_ARGS__)
^~~~~~~~~~~~~~~~
drivers/staging/tegra-vde/vde.c:51:2: note: in expansion of macro 'pr_debug'
pr_debug("%s: %d: 0x%08X => " #__addr ")\n", \
^~~~~~~~
drivers/staging/tegra-vde/vde.c:362:2: note: in expansion of macro 'VDE_WR'
VDE_WR(bitstream_data_paddr + bitstream_data_size,
^~~~~~
>> drivers/staging/tegra-vde/vde.c:51:11: warning: format '%X' expects argument of type 'unsigned int', but argument 5 has type 'phys_addr_t {aka long long unsigned int}' [-Wformat=]
pr_debug("%s: %d: 0x%08X => " #__addr ")\n", \
^
include/linux/printk.h:285:21: note: in definition of macro 'pr_fmt'
#define pr_fmt(fmt) fmt
^~~
include/linux/printk.h:333:2: note: in expansion of macro 'dynamic_pr_debug'
dynamic_pr_debug(fmt, ##__VA_ARGS__)
^~~~~~~~~~~~~~~~
drivers/staging/tegra-vde/vde.c:51:2: note: in expansion of macro 'pr_debug'
pr_debug("%s: %d: 0x%08X => " #__addr ")\n", \
^~~~~~~~
drivers/staging/tegra-vde/vde.c:435:2: note: in expansion of macro 'VDE_WR'
VDE_WR(bitstream_data_paddr, vde->regs + SXE(0x6C));
^~~~~~
drivers/staging/tegra-vde/vde.c: In function 'tegra_vde_attach_dmabuf':
drivers/staging/tegra-vde/vde.c:531:40: warning: format '%d' expects argument of type 'int', but argument 3 has type 'size_t {aka long unsigned int}' [-Wformat=]
dev_err(dev, "Too small dmabuf size %d @0x%lX, "
^ drivers/staging/tegra-vde/vde.c: In function 'tegra_vde_ioctl_decode_h264':
drivers/staging/tegra-vde/vde.c:855:16: warning: format '%X' expects argument of type 'unsigned int', but argument 3 has type 'phys_addr_t {aka long long unsigned int}' [-Wformat=]
dev_err(dev, "Decoding failed, "
^~~~~~~~~~~~~~~~~~~
vim +51 drivers/staging/tegra-vde/vde.c
> 11 #include <linux/clk.h>
12 #include <linux/delay.h>
13 #include <linux/dma-buf.h>
14 #include <linux/interrupt.h>
15 #include <linux/io.h>
16 #include <linux/iopoll.h>
17 #include <linux/miscdevice.h>
18 #include <linux/module.h>
19 #include <linux/platform_device.h>
20 #include <linux/pm_runtime.h>
21 #include <linux/reset.h>
22 #include <linux/slab.h>
23 #include <linux/uaccess.h>
24
25 #include <soc/tegra/pmc.h>
26
27 #include "uapi.h"
28
29 #define SXE(offt) (0x0000 + (offt)) /* Syntax Engine */
30 #define BSEV(offt) (0x1000 + (offt)) /* Video Bitstream Engine */
31 #define MBE(offt) (0x2000 + (offt)) /* Macroblock Engine */
32 #define PPE(offt) (0x2200 + (offt)) /* Post-processing Engine */
33 #define MCE(offt) (0x2400 + (offt)) /* Motion Compensation Eng. */
34 #define TFE(offt) (0x2600 + (offt)) /* Transform Engine */
35 #define VDMA(offt) (0x2A00 + (offt)) /* Video DMA */
36 #define FRAMEID(offt) (0x3800 + (offt))
37
38 #define ICMDQUE_WR 0x00
39 #define CMDQUE_CONTROL 0x08
40 #define INTR_STATUS 0x18
41 #define BSE_INT_ENB 0x40
42 #define BSE_CONFIG 0x44
43
44 #define BSE_ICMDQUE_EMPTY BIT(3)
45 #define BSE_DMA_BUSY BIT(23)
46
47 #define TEGRA_VDE_TIMEOUT msecs_to_jiffies(1000)
48
49 #define VDE_WR(__data, __addr) \
50 do { \
> 51 pr_debug("%s: %d: 0x%08X => " #__addr ")\n", \
52 __func__, __LINE__, (__data)); \
53 writel_relaxed(__data, __addr); \
54 } while (0)
55 ---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
Re: [PATCH v2 1/2] staging: Introduce NVIDIA Tegra20 video decoder driver
Quoted 104 lines · kbuild test robot
Hi Dmitry,
[auto build test WARNING on staging/staging-testing]
[also build test WARNING on v4.14-rc3 next-20170929]
[cannot apply to tegra/for-next]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]url: https://github.com/0day-ci/linux/commits/Dmitry-Osipenko/staging-Introduce-NVIDIA-Tegra20-video-decoder-driver/20171006-101015
config: ia64-allmodconfig (attached as .config)
compiler: ia64-linux-gcc (GCC) 6.2.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=ia64All warnings (new ones prefixed by >>):
In file included from
include/linux/kernel.h:13:0,
frominclude/linux/clk.h:16,
fromdrivers/staging/tegra-vde/vde.c:11:
drivers/staging/tegra-vde/vde.c: In function 'tegra_vde_setup_hw_context':Quoted 1 line
Quoted 1 line
drivers/staging/tegra-vde/vde.c:51:11: warning: format '%X' expects argument of type 'unsigned int', but argument 5 has type 'long long unsigned int' [-Wformat=]pr_debug("%s: %d: 0x%08X => " #__addr ")\n", \ ^ include/linux/printk.h:285:21: note: in definition of macro 'pr_fmt' #define pr_fmt(fmt) fmt ^~~ include/linux/printk.h:333:2: note: in expansion of macro 'dynamic_pr_debug' dynamic_pr_debug(fmt, ##__VA_ARGS__) ^~~~~~~~~~~~~~~~ drivers/staging/tegra-vde/vde.c:51:2: note: in expansion of macro 'pr_debug' pr_debug("%s: %d: 0x%08X => " #__addr ")\n", \ ^~~~~~~~
drivers/staging/tegra-vde/vde.c:362:2: note: in expansion of macro 'VDE_WR'
VDE_WR(bitstream_data_paddr +bitstream_data_size,
^~~~~~Quoted 1 line
Quoted 1 line
drivers/staging/tegra-vde/vde.c:51:11: warning: format '%X' expects argument of type 'unsigned int', but argument 5 has type 'phys_addr_t{aka long long unsigned int}' [-Wformat=]pr_debug("%s: %d: 0x%08X => " #__addr ")\n", \ ^ include/linux/printk.h:285:21: note: in definition of macro 'pr_fmt' #define pr_fmt(fmt) fmt ^~~ include/linux/printk.h:333:2: note: in expansion of macro 'dynamic_pr_debug' dynamic_pr_debug(fmt, ##__VA_ARGS__) ^~~~~~~~~~~~~~~~ drivers/staging/tegra-vde/vde.c:51:2: note: in expansion of macro 'pr_debug' pr_debug("%s: %d: 0x%08X => " #__addr ")\n", \ ^~~~~~~~ drivers/staging/tegra-vde/vde.c:435:2: note: in expansion of macro 'VDE_WR' VDE_WR(bitstream_data_paddr, vde->regs + SXE(0x6C)); ^~~~~~ drivers/staging/tegra-vde/vde.c: In function 'tegra_vde_attach_dmabuf': drivers/staging/tegra-vde/vde.c:531:40: warning: format '%d' expects argument of type 'int', but argument 3 has type 'size_t {aka long unsigned int}' [-Wformat=] dev_err(dev, "Too small dmabuf size %d @0x%lX, " ^
drivers/staging/tegra-vde/vde.c: In function 'tegra_vde_ioctl_decode_h264':
drivers/staging/tegra-vde/vde.c:855:16: warning: format '%X' expects argument of type 'unsigned int', but argument 3 has type 'phys_addr_t{aka long long unsigned int}' [-Wformat=]
dev_err(dev, "Decoding failed, "
^~~~~~~~~~~~~~~~~~~vim +51
drivers/staging/tegra-vde/vde.cQuoted 1 line
11 #include <
linux/clk.h>12 #include <linux/delay.h> 13 #include <linux/dma-buf.h> 14 #include <linux/interrupt.h> 15 #include <linux/io.h> 16 #include <linux/iopoll.h> 17 #include <linux/miscdevice.h> 18 #include <linux/module.h> 19 #include <linux/platform_device.h> 20 #include <linux/pm_runtime.h> 21 #include <linux/reset.h> 22 #include <linux/slab.h> 23 #include <linux/uaccess.h> 24 25 #include <soc/tegra/pmc.h> 26 27 #include "uapi.h" 28 29 #define SXE(offt) (0x0000 + (offt)) /* Syntax Engine */ 30 #define BSEV(offt) (0x1000 + (offt)) /* Video Bitstream Engine */ 31 #define MBE(offt) (0x2000 + (offt)) /* Macroblock Engine */ 32 #define PPE(offt) (0x2200 + (offt)) /* Post-processing Engine */ 33 #define MCE(offt) (0x2400 + (offt)) /* Motion Compensation Eng. */ 34 #define TFE(offt) (0x2600 + (offt)) /* Transform Engine */ 35 #define VDMA(offt) (0x2A00 + (offt)) /* Video DMA */ 36 #define FRAMEID(offt) (0x3800 + (offt)) 37 38 #define ICMDQUE_WR 0x00 39 #define CMDQUE_CONTROL 0x08 40 #define INTR_STATUS 0x18 41 #define BSE_INT_ENB 0x40 42 #define BSE_CONFIG 0x44 43 44 #define BSE_ICMDQUE_EMPTY BIT(3) 45 #define BSE_DMA_BUSY BIT(23) 46 47 #define TEGRA_VDE_TIMEOUT msecs_to_jiffies(1000) 48 49 #define VDE_WR(__data, __addr) \ 50 do { \Quoted 1 line
51
pr_debug("%s: %d: 0x%08X => " #__addr ")\n", \
Quoted 9 lines
52 __func__, __LINE__, (__data)); \ 53 writel_relaxed(__data, __addr); \ 54 } while (0) 55---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
I'll silence these warnings in v3.
PATCH v2 2/2 ARM: dts: tegra20: Add video decoder node
In reply to Dmitry OsipenkoAdd a device node for the video decoder engine found on Tegra20.
--- arch/arm/boot/dts/tegra20.dtsi | 17 +++++++++++++++++ 1 file changed, 17 insertions(+)
arch/arm/boot/dts/tegra20.dtsi +17 -0
@@ -249,6 +249,23 @@ */ }; + vde@6001a000 { + compatible = "nvidia,tegra20-vde"; + reg = <0x6001a000 0x3D00 /* VDE registers */ + 0x40000400 0x3FC00>; /* IRAM region */ + reg-names = "regs", "iram"; + interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>, /* UCQ error interrupt */ + <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>, /* Sync token interrupt */ + <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>, /* BSE-V interrupt */ + <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>, /* BSE-A interrupt */ + <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; /* SXE interrupt */ + interrupt-names = "ucq-error", "sync-token", "bsev", "bsea", "sxe"; + clocks = <&tegra_car TEGRA20_CLK_VDE>; + clock-names = "vde"; + resets = <&tegra_car 61>; + reset-names = "vde"; + }; + apbmisc@70000800 { compatible = "nvidia,tegra20-apbmisc"; reg = <0x70000800 0x64 /* Chip revision */
Signature · 1 line
2.14.1