Commit d6192162 authored by Krzysztof Kozlowski's avatar Krzysztof Kozlowski
Browse files

Merge tag 'tegra-for-7.1-arm64-dt' of...

Merge tag 'tegra-for-7.1-arm64-dt' of https://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/dt

arm64: tegra: Device tree changes for v7.1-rc1

Various fixes and new additions across a number of devices. GPIO and PCI
are enabled on Tegra264 and the Jetson AGX Thor Developer Kit, allowing
it to boot via network and mass storage.

* tag 'tegra-for-7.1-arm64-dt' of https://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux

:
  arm64: tegra: Add Tegra264 GPIO controllers
  arm64: tegra: smaug: Enable SPI-NOR flash
  arm64: tegra: Add Jetson AGX Thor Developer Kit support
  arm64: tegra: Add PCI controllers on Tegra264
  arm64: tegra: Fix RTC aliases
  arm64: tegra: Drop redundant clock and reset names for TSEC
  arm64: tegra: Fix snps,blen properties
  dt-bindings: pci: Document the NVIDIA Tegra264 PCIe controller

Signed-off-by: default avatarKrzysztof Kozlowski <krzk@kernel.org>
parents 9c5a5440 c70e6bc1
Loading
Loading
Loading
Loading
+149 −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/pci/nvidia,tegra264-pcie.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: NVIDIA Tegra264 PCIe controller

maintainers:
  - Thierry Reding <thierry.reding@gmail.com>
  - Jon Hunter <jonathanh@nvidia.com>

properties:
  compatible:
    const: nvidia,tegra264-pcie

  reg:
    description: |
      Of the six PCIe controllers found on Tegra264, one (C0) is used for the
      internal GPU and the other five (C1-C5) are routed to connectors such as
      PCI or M.2 slots. Therefore the UPHY registers (XPL) exist only for C1
      through C5, but not for C0.
    minItems: 4
    items:
      - description: ECAM-compatible configuration space
      - description: application layer registers
      - description: transaction layer registers
      - description: privileged transaction layer registers
      - description: data link/physical layer registers (not available on C0)

  reg-names:
    minItems: 4
    items:
      - const: ecam
      - const: xal
      - const: xtl
      - const: xtl-pri
      - const: xpl

  interrupts:
    minItems: 1
    maxItems: 4

  dma-coherent: true

  nvidia,bpmp:
    $ref: /schemas/types.yaml#/definitions/phandle-array
    description: |
      Must contain a pair of phandle (to the BPMP controller node) and
      controller ID. The following are the controller IDs for each controller:

      0: C0
      1: C1
      2: C2
      3: C3
      4: C4
      5: C5
    items:
      - items:
          - description: phandle to the BPMP controller node
          - description: PCIe controller ID
            maximum: 5

required:
  - interrupt-map
  - interrupt-map-mask
  - iommu-map
  - msi-map
  - nvidia,bpmp

allOf:
  - $ref: /schemas/pci/pci-host-bridge.yaml#

unevaluatedProperties: false

examples:
  - |
    bus {
      #address-cells = <2>;
      #size-cells = <2>;

      pci@c000000 {
        compatible = "nvidia,tegra264-pcie";
        reg = <0xd0 0xb0000000 0x0 0x10000000>,
              <0x00 0x0c000000 0x0 0x00004000>,
              <0x00 0x0c004000 0x0 0x00001000>,
              <0x00 0x0c005000 0x0 0x00001000>;
        reg-names = "ecam", "xal", "xtl", "xtl-pri";
        #address-cells = <3>;
        #size-cells = <2>;
        device_type = "pci";
        linux,pci-domain = <0x00>;
        #interrupt-cells = <0x1>;

        interrupt-map-mask = <0x0 0x0 0x0 0x7>;
        interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0x0 0x0 155 4>,
                        <0x0 0x0 0x0 0x2 &gic 0x0 0x0 0x0 156 4>,
                        <0x0 0x0 0x0 0x3 &gic 0x0 0x0 0x0 157 4>,
                        <0x0 0x0 0x0 0x4 &gic 0x0 0x0 0x0 158 4>;

        iommu-map = <0x0 &smmu2 0x10000 0x10000>;
        msi-map = <0x0 &its 0x210000 0x10000>;
        dma-coherent;

        ranges = <0x81000000 0x00 0x84000000 0xd0 0x84000000 0x00 0x00200000>,
                 <0x82000000 0x00 0x20000000 0x00 0x20000000 0x00 0x08000000>,
                 <0xc3000000 0xd0 0xc0000000 0xd0 0xc0000000 0x07 0xc0000000>;
        bus-range = <0x0 0xff>;

        nvidia,bpmp = <&bpmp 0>;
      };
    };

  - |
    bus {
      #address-cells = <2>;
      #size-cells = <2>;

      pci@8400000 {
        compatible = "nvidia,tegra264-pcie";
        reg = <0xa8 0xb0000000 0x0 0x10000000>,
              <0x00 0x08400000 0x0 0x00004000>,
              <0x00 0x08404000 0x0 0x00001000>,
              <0x00 0x08405000 0x0 0x00001000>,
              <0x00 0x08410000 0x0 0x00010000>;
        reg-names = "ecam", "xal", "xtl", "xtl-pri", "xpl";
        #address-cells = <3>;
        #size-cells = <2>;
        device_type = "pci";
        linux,pci-domain = <0x01>;
        #interrupt-cells = <1>;
        interrupt-map-mask = <0x0 0x0 0x0 0x7>;
        interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0x0 0x0 908 4>,
                        <0x0 0x0 0x0 0x2 &gic 0x0 0x0 0x0 909 4>,
                        <0x0 0x0 0x0 0x3 &gic 0x0 0x0 0x0 910 4>,
                        <0x0 0x0 0x0 0x4 &gic 0x0 0x0 0x0 911 4>;

        iommu-map = <0x0 &smmu1 0x10000 0x10000>;
        msi-map = <0x0 &its 0x110000 0x10000>;
        dma-coherent;

        ranges = <0x81000000 0x00 0x84000000 0xa8 0x84000000 0x00 0x00200000>,
                 <0x82000000 0x00 0x28000000 0x00 0x28000000 0x00 0x08000000>,
                 <0xc3000000 0xa8 0xc0000000 0xa8 0xc0000000 0x07 0xc0000000>;
        bus-range = <0x00 0xff>;

        nvidia,bpmp = <&bpmp 1>;
      };
    };
+2 −0
Original line number Diff line number Diff line
@@ -14,6 +14,7 @@ DTC_FLAGS_tegra234-p3740-0002+p3701-0008 := -@
DTC_FLAGS_tegra234-p3768-0000+p3767-0000 := -@
DTC_FLAGS_tegra234-p3768-0000+p3767-0005 := -@
DTC_FLAGS_tegra264-p3971-0089+p3834-0008 := -@
DTC_FLAGS_tegra264-p4071-0000+p3834-0008 := -@

dtb-$(CONFIG_ARCH_TEGRA_132_SOC) += tegra132-norrin.dtb
dtb-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210-p2371-0000.dtb
@@ -35,3 +36,4 @@ dtb-$(CONFIG_ARCH_TEGRA_234_SOC) += tegra234-p3740-0002+p3701-0008.dtb
dtb-$(CONFIG_ARCH_TEGRA_234_SOC) += tegra234-p3768-0000+p3767-0000.dtb
dtb-$(CONFIG_ARCH_TEGRA_234_SOC) += tegra234-p3768-0000+p3767-0005.dtb
dtb-$(CONFIG_ARCH_TEGRA_264_SOC) += tegra264-p3971-0089+p3834-0008.dtb
dtb-$(CONFIG_ARCH_TEGRA_264_SOC) += tegra264-p4071-0000+p3834-0008.dtb
+12 −0
Original line number Diff line number Diff line
@@ -1892,6 +1892,18 @@ interrupt-controller@702f9000 {
		};
	};

	spi@70410000 {
		status = "okay";

		flash@0 {
			compatible = "jedec,spi-nor";
			reg = <0>;
			spi-max-frequency = <104000000>;
			spi-tx-bus-width = <2>;
			spi-rx-bus-width = <2>;
		};
	};

	clk32k_in: clock-32k {
		compatible = "fixed-clock";
		clock-frequency = <32768>;
+0 −2
Original line number Diff line number Diff line
@@ -309,9 +309,7 @@ tsec@54500000 {
			reg = <0x0 0x54500000 0x0 0x00040000>;
			interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&tegra_car TEGRA210_CLK_TSECB>;
			clock-names = "tsec";
			resets = <&tegra_car 206>;
			reset-names = "tsec";
			status = "disabled";
		};

+1 −0
Original line number Diff line number Diff line
@@ -9,6 +9,7 @@ aliases {
		mmc0 = "/bus@0/mmc@3460000";
		mmc1 = "/bus@0/mmc@3400000";
		rtc0 = "/bpmp/i2c/pmic@3c";
		rtc1 = "/bus@0/rtc@c2a0000";
	};

	bus@0 {
Loading