Loading Documentation/devicetree/bindings/cpufreq/nvidia,tegra20-cpufreq.txt 0 → 100644 +56 −0 Original line number Diff line number Diff line Binding for NVIDIA Tegra20 CPUFreq ================================== Required properties: - clocks: Must contain an entry for the CPU clock. See ../clocks/clock-bindings.txt for details. - operating-points-v2: See ../bindings/opp/opp.txt for details. - #cooling-cells: Should be 2. See ../thermal/thermal.txt for details. For each opp entry in 'operating-points-v2' table: - opp-supported-hw: Two bitfields indicating: On Tegra20: 1. CPU process ID mask 2. SoC speedo ID mask On Tegra30: 1. CPU process ID mask 2. CPU speedo ID mask A bitwise AND is performed against these values and if any bit matches, the OPP gets enabled. - opp-microvolt: CPU voltage triplet. Optional properties: - cpu-supply: Phandle to the CPU power supply. Example: regulators { cpu_reg: regulator0 { regulator-name = "vdd_cpu"; }; }; cpu0_opp_table: opp_table0 { compatible = "operating-points-v2"; opp@456000000 { clock-latency-ns = <125000>; opp-microvolt = <825000 825000 1125000>; opp-supported-hw = <0x03 0x0001>; opp-hz = /bits/ 64 <456000000>; }; ... }; cpus { cpu@0 { compatible = "arm,cortex-a9"; clocks = <&tegra_car TEGRA20_CLK_CCLK>; operating-points-v2 = <&cpu0_opp_table>; cpu-supply = <&cpu_reg>; #cooling-cells = <2>; }; }; Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-host1x.txt +60 −13 Original line number Diff line number Diff line Loading @@ -40,14 +40,30 @@ of the following host1x client modules: Required properties: - compatible: "nvidia,tegra<chip>-vi" - reg: Physical base address and length of the controller's registers. - reg: Physical base address and length of the controller registers. - interrupts: The interrupt outputs from the controller. - clocks: Must contain one entry, for the module clock. - clocks: clocks: Must contain one entry, for the module clock. See ../clocks/clock-bindings.txt for details. - Tegra20/Tegra30/Tegra114/Tegra124: - resets: Must contain an entry for each entry in reset-names. See ../reset/reset.txt for details. - reset-names: Must include the following entries: - vi - Tegra210: - power-domains: Must include venc powergate node as vi is in VE partition. - Tegra210 has CSI part of VI sharing same host interface and register space. So, VI device node should have CSI child node. - csi: mipi csi interface to vi Required properties: - compatible: "nvidia,tegra210-csi" - reg: Physical base address offset to parent and length of the controller registers. - clocks: Must contain entries csi, cilab, cilcd, cile, csi_tpg clocks. See ../clocks/clock-bindings.txt for details. - power-domains: Must include sor powergate node as csicil is in SOR partition. - epp: encoder pre-processor Loading Loading @@ -309,13 +325,44 @@ Example: reset-names = "mpe"; }; vi { compatible = "nvidia,tegra20-vi"; reg = <0x54080000 0x00040000>; interrupts = <0 69 0x04>; clocks = <&tegra_car TEGRA20_CLK_VI>; resets = <&tegra_car 100>; reset-names = "vi"; vi@54080000 { compatible = "nvidia,tegra210-vi"; reg = <0x0 0x54080000 0x0 0x700>; interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>; assigned-clocks = <&tegra_car TEGRA210_CLK_VI>; assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_C4_OUT0>; clocks = <&tegra_car TEGRA210_CLK_VI>; power-domains = <&pd_venc>; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x0 0x54080000 0x2000>; csi@838 { compatible = "nvidia,tegra210-csi"; reg = <0x838 0x1300>; assigned-clocks = <&tegra_car TEGRA210_CLK_CILAB>, <&tegra_car TEGRA210_CLK_CILCD>, <&tegra_car TEGRA210_CLK_CILE>, <&tegra_car TEGRA210_CLK_CSI_TPG>; assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_P>, <&tegra_car TEGRA210_CLK_PLL_P>, <&tegra_car TEGRA210_CLK_PLL_P>; assigned-clock-rates = <102000000>, <102000000>, <102000000>, <972000000>; clocks = <&tegra_car TEGRA210_CLK_CSI>, <&tegra_car TEGRA210_CLK_CILAB>, <&tegra_car TEGRA210_CLK_CILCD>, <&tegra_car TEGRA210_CLK_CILE>, <&tegra_car TEGRA210_CLK_CSI_TPG>; clock-names = "csi", "cilab", "cilcd", "cile", "csi_tpg"; power-domains = <&pd_sor>; }; }; epp { Loading Documentation/devicetree/bindings/i2c/nvidia,tegra20-i2c.txt +6 −0 Original line number Diff line number Diff line Loading @@ -35,6 +35,12 @@ Required properties: Due to above changes, Tegra114 I2C driver makes incompatible with previous hardware driver. Hence, tegra114 I2C controller is compatible with "nvidia,tegra114-i2c". nvidia,tegra210-i2c-vi: Tegra210 has one I2C controller that is part of the host1x domain and typically used for camera use-cases. This VI I2C controller is mostly compatible with the programming model of the regular I2C controllers with a few exceptions. The I2C registers start at an offset of 0xc00 (instead of 0), registers are 16 bytes apart (rather than 4) and the controller does not support slave mode. - reg: Should contain I2C controller registers physical address and length. - interrupts: Should contain I2C controller interrupts. - address-cells: Address cells for I2C device address. Loading Documentation/devicetree/bindings/memory-controllers/nvidia,tegra210-emc.yaml 0 → 100644 +82 −0 Original line number Diff line number Diff line # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/memory-controllers/nvidia,tegra210-emc.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: NVIDIA Tegra210 SoC External Memory Controller maintainers: - Thierry Reding <thierry.reding@gmail.com> - Jon Hunter <jonathanh@nvidia.com> description: | The EMC interfaces with the off-chip SDRAM to service the request stream sent from the memory controller. properties: compatible: const: nvidia,tegra210-emc reg: maxItems: 3 clocks: items: - description: external memory clock clock-names: items: - const: emc interrupts: items: - description: EMC general interrupt memory-region: $ref: /schemas/types.yaml#/definitions/phandle description: phandle to a reserved memory region describing the table of EMC frequencies trained by the firmware nvidia,memory-controller: $ref: /schemas/types.yaml#/definitions/phandle description: phandle of the memory controller node required: - compatible - reg - clocks - clock-names - nvidia,memory-controller additionalProperties: false examples: - | #include <dt-bindings/clock/tegra210-car.h> #include <dt-bindings/interrupt-controller/arm-gic.h> reserved-memory { #address-cells = <1>; #size-cells = <1>; ranges; emc_table: emc-table@83400000 { compatible = "nvidia,tegra210-emc-table"; reg = <0x83400000 0x10000>; }; }; external-memory-controller@7001b000 { compatible = "nvidia,tegra210-emc"; reg = <0x7001b000 0x1000>, <0x7001e000 0x1000>, <0x7001f000 0x1000>; clocks = <&tegra_car TEGRA210_CLK_EMC>; clock-names = "emc"; interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>; memory-region = <&emc_table>; nvidia,memory-controller = <&mc>; }; include/dt-bindings/clock/tegra114-car.h +7 −7 Original line number Diff line number Diff line Loading @@ -272,10 +272,10 @@ #define TEGRA114_CLK_AUDIO3 242 #define TEGRA114_CLK_AUDIO4 243 #define TEGRA114_CLK_SPDIF 244 #define TEGRA114_CLK_CLK_OUT_1 245 #define TEGRA114_CLK_CLK_OUT_2 246 #define TEGRA114_CLK_CLK_OUT_3 247 #define TEGRA114_CLK_BLINK 248 /* 245 */ /* 246 */ /* 247 */ /* 248 */ #define TEGRA114_CLK_OSC 249 /* 250 */ /* 251 */ Loading Loading @@ -335,9 +335,9 @@ #define TEGRA114_CLK_AUDIO3_MUX 303 #define TEGRA114_CLK_AUDIO4_MUX 304 #define TEGRA114_CLK_SPDIF_MUX 305 #define TEGRA114_CLK_CLK_OUT_1_MUX 306 #define TEGRA114_CLK_CLK_OUT_2_MUX 307 #define TEGRA114_CLK_CLK_OUT_3_MUX 308 /* 306 */ /* 307 */ /* 308 */ #define TEGRA114_CLK_DSIA_MUX 309 #define TEGRA114_CLK_DSIB_MUX 310 #define TEGRA114_CLK_XUSB_SS_DIV2 311 Loading Loading
Documentation/devicetree/bindings/cpufreq/nvidia,tegra20-cpufreq.txt 0 → 100644 +56 −0 Original line number Diff line number Diff line Binding for NVIDIA Tegra20 CPUFreq ================================== Required properties: - clocks: Must contain an entry for the CPU clock. See ../clocks/clock-bindings.txt for details. - operating-points-v2: See ../bindings/opp/opp.txt for details. - #cooling-cells: Should be 2. See ../thermal/thermal.txt for details. For each opp entry in 'operating-points-v2' table: - opp-supported-hw: Two bitfields indicating: On Tegra20: 1. CPU process ID mask 2. SoC speedo ID mask On Tegra30: 1. CPU process ID mask 2. CPU speedo ID mask A bitwise AND is performed against these values and if any bit matches, the OPP gets enabled. - opp-microvolt: CPU voltage triplet. Optional properties: - cpu-supply: Phandle to the CPU power supply. Example: regulators { cpu_reg: regulator0 { regulator-name = "vdd_cpu"; }; }; cpu0_opp_table: opp_table0 { compatible = "operating-points-v2"; opp@456000000 { clock-latency-ns = <125000>; opp-microvolt = <825000 825000 1125000>; opp-supported-hw = <0x03 0x0001>; opp-hz = /bits/ 64 <456000000>; }; ... }; cpus { cpu@0 { compatible = "arm,cortex-a9"; clocks = <&tegra_car TEGRA20_CLK_CCLK>; operating-points-v2 = <&cpu0_opp_table>; cpu-supply = <&cpu_reg>; #cooling-cells = <2>; }; };
Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-host1x.txt +60 −13 Original line number Diff line number Diff line Loading @@ -40,14 +40,30 @@ of the following host1x client modules: Required properties: - compatible: "nvidia,tegra<chip>-vi" - reg: Physical base address and length of the controller's registers. - reg: Physical base address and length of the controller registers. - interrupts: The interrupt outputs from the controller. - clocks: Must contain one entry, for the module clock. - clocks: clocks: Must contain one entry, for the module clock. See ../clocks/clock-bindings.txt for details. - Tegra20/Tegra30/Tegra114/Tegra124: - resets: Must contain an entry for each entry in reset-names. See ../reset/reset.txt for details. - reset-names: Must include the following entries: - vi - Tegra210: - power-domains: Must include venc powergate node as vi is in VE partition. - Tegra210 has CSI part of VI sharing same host interface and register space. So, VI device node should have CSI child node. - csi: mipi csi interface to vi Required properties: - compatible: "nvidia,tegra210-csi" - reg: Physical base address offset to parent and length of the controller registers. - clocks: Must contain entries csi, cilab, cilcd, cile, csi_tpg clocks. See ../clocks/clock-bindings.txt for details. - power-domains: Must include sor powergate node as csicil is in SOR partition. - epp: encoder pre-processor Loading Loading @@ -309,13 +325,44 @@ Example: reset-names = "mpe"; }; vi { compatible = "nvidia,tegra20-vi"; reg = <0x54080000 0x00040000>; interrupts = <0 69 0x04>; clocks = <&tegra_car TEGRA20_CLK_VI>; resets = <&tegra_car 100>; reset-names = "vi"; vi@54080000 { compatible = "nvidia,tegra210-vi"; reg = <0x0 0x54080000 0x0 0x700>; interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>; assigned-clocks = <&tegra_car TEGRA210_CLK_VI>; assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_C4_OUT0>; clocks = <&tegra_car TEGRA210_CLK_VI>; power-domains = <&pd_venc>; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x0 0x54080000 0x2000>; csi@838 { compatible = "nvidia,tegra210-csi"; reg = <0x838 0x1300>; assigned-clocks = <&tegra_car TEGRA210_CLK_CILAB>, <&tegra_car TEGRA210_CLK_CILCD>, <&tegra_car TEGRA210_CLK_CILE>, <&tegra_car TEGRA210_CLK_CSI_TPG>; assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_P>, <&tegra_car TEGRA210_CLK_PLL_P>, <&tegra_car TEGRA210_CLK_PLL_P>; assigned-clock-rates = <102000000>, <102000000>, <102000000>, <972000000>; clocks = <&tegra_car TEGRA210_CLK_CSI>, <&tegra_car TEGRA210_CLK_CILAB>, <&tegra_car TEGRA210_CLK_CILCD>, <&tegra_car TEGRA210_CLK_CILE>, <&tegra_car TEGRA210_CLK_CSI_TPG>; clock-names = "csi", "cilab", "cilcd", "cile", "csi_tpg"; power-domains = <&pd_sor>; }; }; epp { Loading
Documentation/devicetree/bindings/i2c/nvidia,tegra20-i2c.txt +6 −0 Original line number Diff line number Diff line Loading @@ -35,6 +35,12 @@ Required properties: Due to above changes, Tegra114 I2C driver makes incompatible with previous hardware driver. Hence, tegra114 I2C controller is compatible with "nvidia,tegra114-i2c". nvidia,tegra210-i2c-vi: Tegra210 has one I2C controller that is part of the host1x domain and typically used for camera use-cases. This VI I2C controller is mostly compatible with the programming model of the regular I2C controllers with a few exceptions. The I2C registers start at an offset of 0xc00 (instead of 0), registers are 16 bytes apart (rather than 4) and the controller does not support slave mode. - reg: Should contain I2C controller registers physical address and length. - interrupts: Should contain I2C controller interrupts. - address-cells: Address cells for I2C device address. Loading
Documentation/devicetree/bindings/memory-controllers/nvidia,tegra210-emc.yaml 0 → 100644 +82 −0 Original line number Diff line number Diff line # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/memory-controllers/nvidia,tegra210-emc.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: NVIDIA Tegra210 SoC External Memory Controller maintainers: - Thierry Reding <thierry.reding@gmail.com> - Jon Hunter <jonathanh@nvidia.com> description: | The EMC interfaces with the off-chip SDRAM to service the request stream sent from the memory controller. properties: compatible: const: nvidia,tegra210-emc reg: maxItems: 3 clocks: items: - description: external memory clock clock-names: items: - const: emc interrupts: items: - description: EMC general interrupt memory-region: $ref: /schemas/types.yaml#/definitions/phandle description: phandle to a reserved memory region describing the table of EMC frequencies trained by the firmware nvidia,memory-controller: $ref: /schemas/types.yaml#/definitions/phandle description: phandle of the memory controller node required: - compatible - reg - clocks - clock-names - nvidia,memory-controller additionalProperties: false examples: - | #include <dt-bindings/clock/tegra210-car.h> #include <dt-bindings/interrupt-controller/arm-gic.h> reserved-memory { #address-cells = <1>; #size-cells = <1>; ranges; emc_table: emc-table@83400000 { compatible = "nvidia,tegra210-emc-table"; reg = <0x83400000 0x10000>; }; }; external-memory-controller@7001b000 { compatible = "nvidia,tegra210-emc"; reg = <0x7001b000 0x1000>, <0x7001e000 0x1000>, <0x7001f000 0x1000>; clocks = <&tegra_car TEGRA210_CLK_EMC>; clock-names = "emc"; interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>; memory-region = <&emc_table>; nvidia,memory-controller = <&mc>; };
include/dt-bindings/clock/tegra114-car.h +7 −7 Original line number Diff line number Diff line Loading @@ -272,10 +272,10 @@ #define TEGRA114_CLK_AUDIO3 242 #define TEGRA114_CLK_AUDIO4 243 #define TEGRA114_CLK_SPDIF 244 #define TEGRA114_CLK_CLK_OUT_1 245 #define TEGRA114_CLK_CLK_OUT_2 246 #define TEGRA114_CLK_CLK_OUT_3 247 #define TEGRA114_CLK_BLINK 248 /* 245 */ /* 246 */ /* 247 */ /* 248 */ #define TEGRA114_CLK_OSC 249 /* 250 */ /* 251 */ Loading Loading @@ -335,9 +335,9 @@ #define TEGRA114_CLK_AUDIO3_MUX 303 #define TEGRA114_CLK_AUDIO4_MUX 304 #define TEGRA114_CLK_SPDIF_MUX 305 #define TEGRA114_CLK_CLK_OUT_1_MUX 306 #define TEGRA114_CLK_CLK_OUT_2_MUX 307 #define TEGRA114_CLK_CLK_OUT_3_MUX 308 /* 306 */ /* 307 */ /* 308 */ #define TEGRA114_CLK_DSIA_MUX 309 #define TEGRA114_CLK_DSIB_MUX 310 #define TEGRA114_CLK_XUSB_SS_DIV2 311 Loading