xref: /freebsd/sys/contrib/device-tree/Bindings/gpu/host1x/nvidia,tegra210-nvjpg.yaml (revision fac71e4e09885bb2afa3d984a0c239a52e1a7418)
1e67e8565SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2e67e8565SEmmanuel Vadot%YAML 1.2
3e67e8565SEmmanuel Vadot---
4*fac71e4eSEmmanuel Vadot$id: http://devicetree.org/schemas/gpu/host1x/nvidia,tegra210-nvjpg.yaml#
5*fac71e4eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6e67e8565SEmmanuel Vadot
78bab661aSEmmanuel Vadottitle: NVIDIA Tegra NVJPG
8e67e8565SEmmanuel Vadot
9e67e8565SEmmanuel Vadotdescription: |
10e67e8565SEmmanuel Vadot  NVJPG is the hardware JPEG decoder and encoder present on NVIDIA Tegra210
11e67e8565SEmmanuel Vadot  and newer chips. It is located on the Host1x bus and typically programmed
12e67e8565SEmmanuel Vadot  through Host1x channels.
13e67e8565SEmmanuel Vadot
14e67e8565SEmmanuel Vadotmaintainers:
15e67e8565SEmmanuel Vadot  - Thierry Reding <treding@gmail.com>
16e67e8565SEmmanuel Vadot  - Mikko Perttunen <mperttunen@nvidia.com>
17e67e8565SEmmanuel Vadot
18e67e8565SEmmanuel Vadotproperties:
19e67e8565SEmmanuel Vadot  $nodename:
20e67e8565SEmmanuel Vadot    pattern: "^nvjpg@[0-9a-f]*$"
21e67e8565SEmmanuel Vadot
22e67e8565SEmmanuel Vadot  compatible:
23e67e8565SEmmanuel Vadot    enum:
24e67e8565SEmmanuel Vadot      - nvidia,tegra210-nvjpg
25e67e8565SEmmanuel Vadot      - nvidia,tegra186-nvjpg
26e67e8565SEmmanuel Vadot      - nvidia,tegra194-nvjpg
27e67e8565SEmmanuel Vadot
28e67e8565SEmmanuel Vadot  reg:
29e67e8565SEmmanuel Vadot    maxItems: 1
30e67e8565SEmmanuel Vadot
31e67e8565SEmmanuel Vadot  clocks:
32e67e8565SEmmanuel Vadot    maxItems: 1
33e67e8565SEmmanuel Vadot
34e67e8565SEmmanuel Vadot  clock-names:
35e67e8565SEmmanuel Vadot    items:
36e67e8565SEmmanuel Vadot      - const: nvjpg
37e67e8565SEmmanuel Vadot
38e67e8565SEmmanuel Vadot  resets:
39e67e8565SEmmanuel Vadot    maxItems: 1
40e67e8565SEmmanuel Vadot
41e67e8565SEmmanuel Vadot  reset-names:
42e67e8565SEmmanuel Vadot    items:
43e67e8565SEmmanuel Vadot      - const: nvjpg
44e67e8565SEmmanuel Vadot
45e67e8565SEmmanuel Vadot  power-domains:
46e67e8565SEmmanuel Vadot    maxItems: 1
47e67e8565SEmmanuel Vadot
48e67e8565SEmmanuel Vadot  iommus:
49e67e8565SEmmanuel Vadot    maxItems: 1
50e67e8565SEmmanuel Vadot
51e67e8565SEmmanuel Vadot  dma-coherent: true
52e67e8565SEmmanuel Vadot
53e67e8565SEmmanuel Vadot  interconnects:
54e67e8565SEmmanuel Vadot    items:
55e67e8565SEmmanuel Vadot      - description: DMA read memory client
56e67e8565SEmmanuel Vadot      - description: DMA write memory client
57e67e8565SEmmanuel Vadot
58e67e8565SEmmanuel Vadot  interconnect-names:
59e67e8565SEmmanuel Vadot    items:
60e67e8565SEmmanuel Vadot      - const: dma-mem
61e67e8565SEmmanuel Vadot      - const: write
62e67e8565SEmmanuel Vadot
63e67e8565SEmmanuel Vadotrequired:
64e67e8565SEmmanuel Vadot  - compatible
65e67e8565SEmmanuel Vadot  - reg
66e67e8565SEmmanuel Vadot  - clocks
67e67e8565SEmmanuel Vadot  - clock-names
68e67e8565SEmmanuel Vadot  - resets
69e67e8565SEmmanuel Vadot  - reset-names
70e67e8565SEmmanuel Vadot  - power-domains
71e67e8565SEmmanuel Vadot
72e67e8565SEmmanuel VadotadditionalProperties: false
73e67e8565SEmmanuel Vadot
74e67e8565SEmmanuel Vadotexamples:
75e67e8565SEmmanuel Vadot  - |
76e67e8565SEmmanuel Vadot    #include <dt-bindings/clock/tegra186-clock.h>
77e67e8565SEmmanuel Vadot    #include <dt-bindings/memory/tegra186-mc.h>
78e67e8565SEmmanuel Vadot    #include <dt-bindings/power/tegra186-powergate.h>
79e67e8565SEmmanuel Vadot    #include <dt-bindings/reset/tegra186-reset.h>
80e67e8565SEmmanuel Vadot
81e67e8565SEmmanuel Vadot    nvjpg@15380000 {
82e67e8565SEmmanuel Vadot            compatible = "nvidia,tegra186-nvjpg";
83e67e8565SEmmanuel Vadot            reg = <0x15380000 0x40000>;
84e67e8565SEmmanuel Vadot            clocks = <&bpmp TEGRA186_CLK_NVJPG>;
85e67e8565SEmmanuel Vadot            clock-names = "nvjpg";
86e67e8565SEmmanuel Vadot            resets = <&bpmp TEGRA186_RESET_NVJPG>;
87e67e8565SEmmanuel Vadot            reset-names = "nvjpg";
88e67e8565SEmmanuel Vadot
89e67e8565SEmmanuel Vadot            power-domains = <&bpmp TEGRA186_POWER_DOMAIN_NVJPG>;
90e67e8565SEmmanuel Vadot            interconnects = <&mc TEGRA186_MEMORY_CLIENT_NVJPGSRD &emc>,
91e67e8565SEmmanuel Vadot                            <&mc TEGRA186_MEMORY_CLIENT_NVJPGSWR &emc>;
92e67e8565SEmmanuel Vadot            interconnect-names = "dma-mem", "write";
93e67e8565SEmmanuel Vadot            iommus = <&smmu TEGRA186_SID_NVJPG>;
94e67e8565SEmmanuel Vadot    };
95