mirror of
git://nv-tegra.nvidia.com/linux-nv-oot.git
synced 2025-12-24 02:01:36 +03:00
PCT: Create devicetree validation schema
This is the output of the automated scripts created to parse the dtb and dts files congruently Jira ESDP-27666 Change-Id: Ic82a3f813bcbe6e78ba5f9b68875293c5d4bc6d7 Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3274878 Tested-by: Mark Mendez <mmendez@nvidia.com> Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
This commit is contained in:
@@ -0,0 +1,95 @@
|
||||
# Copyright (c) 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the terms and conditions of the GNU General Public License,
|
||||
# version 2, as published by the Free Software Foundation.
|
||||
#
|
||||
# This program is distributed in the hope it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
# more details.
|
||||
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/its@8146040000/arm,gic-v3-its.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: FIXME -- add title
|
||||
|
||||
maintainers:
|
||||
- FIXME -- add maintainers
|
||||
|
||||
description: |
|
||||
the compatability = arm,gic-v3-its is mentioned in the following drivers
|
||||
- <TOP>/kernel/kernel-oot/drivers/pci/controller/pcie-iproc.c
|
||||
- <TOP>/kernel/kernel-oot/drivers/irqchip/irq-gic-v3-its-fsl-mc-msi.c
|
||||
- <TOP>/kernel/kernel-oot/drivers/irqchip/irq-gic-v3-its-platform-msi.c
|
||||
- <TOP>/kernel/kernel-oot/drivers/irqchip/irq-gic-v3-its.c
|
||||
- <TOP>/kernel/kernel-oot/drivers/irqchip/irq-gic-v3-its-pci-msi.c
|
||||
|
||||
The following nodes use this compatibility
|
||||
- /interrupt-controller@8146000000/its@8146040000
|
||||
|
||||
select:
|
||||
properties:
|
||||
compatible:
|
||||
minItems: 1
|
||||
maxItems: 1
|
||||
items:
|
||||
enum:
|
||||
- arm,gic-v3-its
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
||||
properties:
|
||||
|
||||
msi-controller:
|
||||
$ref: "/schemas/types.yaml#/definitions/flag"
|
||||
|
||||
'#msi-cells':
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x1
|
||||
maximum: 0x1
|
||||
|
||||
reg:
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32-matrix"
|
||||
description: |
|
||||
Registers are given by a tuple of two values:
|
||||
- register address:
|
||||
- register block size.
|
||||
items:
|
||||
minItems: 4
|
||||
maxItems: 4
|
||||
items:
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x81
|
||||
maximum: 0x81
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x46040000
|
||||
maximum: 0x46040000
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x0
|
||||
maximum: 0x0
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x40000
|
||||
maximum: 0x40000
|
||||
|
||||
numa-node-id:
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x0
|
||||
maximum: 0x0
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
examples:
|
||||
- |
|
||||
its@8146040000 {
|
||||
compatible = "arm,gic-v3-its";
|
||||
status = "disabled";
|
||||
msi-controller;
|
||||
reg = <0x81 0x46040000 0x0 0x40000>;
|
||||
numa-node-id = <0>;
|
||||
};
|
||||
153
Documentation/devicetree/bindings/pci/controller/arm,gic-v3.yaml
Normal file
153
Documentation/devicetree/bindings/pci/controller/arm,gic-v3.yaml
Normal file
@@ -0,0 +1,153 @@
|
||||
# Copyright (c) 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the terms and conditions of the GNU General Public License,
|
||||
# version 2, as published by the Free Software Foundation.
|
||||
#
|
||||
# This program is distributed in the hope it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
# more details.
|
||||
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/interrupt-controller@8146000000/arm,gic-v3.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: FIXME -- add title
|
||||
|
||||
maintainers:
|
||||
- FIXME -- add maintainers
|
||||
|
||||
description: |
|
||||
the compatability = arm,gic-v3 is mentioned in the following drivers
|
||||
- <TOP>/kernel/kernel-oot/drivers/pci/controller/pcie-iproc.c
|
||||
- <TOP>/kernel/kernel-oot/drivers/irqchip/irq-gic-v3-its-fsl-mc-msi.c
|
||||
- <TOP>/kernel/kernel-oot/drivers/irqchip/irq-gic-v3-its-platform-msi.c
|
||||
- <TOP>/kernel/kernel-oot/drivers/irqchip/irq-ti-sci-inta.c
|
||||
- <TOP>/kernel/kernel-oot/drivers/irqchip/irq-gic-v3-its.c
|
||||
- <TOP>/kernel/kernel-oot/drivers/irqchip/irq-gic-v3-its-pci-msi.c
|
||||
- <TOP>/kernel/kernel-oot/drivers/irqchip/irq-gic-v3.c
|
||||
- <TOP>/kernel/kernel-oot/drivers/irqchip/irq-ti-sci-intr.c
|
||||
|
||||
The following nodes use this compatibility
|
||||
- /interrupt-controller@8146000000
|
||||
|
||||
select:
|
||||
properties:
|
||||
compatible:
|
||||
minItems: 1
|
||||
maxItems: 1
|
||||
items:
|
||||
enum:
|
||||
- arm,gic-v3
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
||||
properties:
|
||||
|
||||
'#interrupt-cells':
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x3
|
||||
maximum: 0x3
|
||||
|
||||
'#address-cells':
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x2
|
||||
maximum: 0x2
|
||||
|
||||
'#size-cells':
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x2
|
||||
maximum: 0x2
|
||||
|
||||
'#redistributor-regions':
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x1
|
||||
maximum: 0x1
|
||||
|
||||
interrupt-controller:
|
||||
$ref: "/schemas/types.yaml#/definitions/flag"
|
||||
|
||||
reg:
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32-matrix"
|
||||
description: |
|
||||
Registers are given by a tuple of two values:
|
||||
- register address:
|
||||
- register block size.
|
||||
items:
|
||||
minItems: 4
|
||||
maxItems: 4
|
||||
items:
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x81
|
||||
maximum: 0x81
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x46000000
|
||||
maximum: 0x46080000
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x0
|
||||
maximum: 0x0
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x10000
|
||||
maximum: 0x400000
|
||||
|
||||
interrupt-parent:
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
|
||||
interrupts:
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32-matrix"
|
||||
description: |
|
||||
Interrupts are give by a tuple of 3 values:
|
||||
- interrupt specifier (GIC_SPI = 0, GIC_PPI = 1)
|
||||
definitions in dt-bindings/interrupt-controller/arm-gic.h
|
||||
- interrupt number
|
||||
- trigger type (rising edge, falling edge, both, etc)
|
||||
definitions in dt-bindings/interrupt-controller/irq.h
|
||||
items:
|
||||
items:
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x1
|
||||
maximum: 0x1
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x9
|
||||
maximum: 0x9
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x8
|
||||
maximum: 0x8
|
||||
|
||||
redistributor-stride:
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32-matrix"
|
||||
items:
|
||||
minItems: 2
|
||||
maxItems: 2
|
||||
items:
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x0
|
||||
maximum: 0x0
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x40000
|
||||
maximum: 0x40000
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
|
||||
examples:
|
||||
- |
|
||||
interrupt-controller@8146000000 {
|
||||
compatible = "arm,gic-v3";
|
||||
status = "disabled";
|
||||
#interrupt-cells = <3>;
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
interrupt-controller;
|
||||
reg = <0x81 0x46000000 0x0 0x010000>,
|
||||
<0x81 0x46080000 0x0 0x00400000>;
|
||||
interrupt-parent = <&gic>;
|
||||
interrupts = <GIC_PPI 9 8>;
|
||||
redistributor-stride = <0x00 0x40000>;
|
||||
ranges;
|
||||
};
|
||||
@@ -0,0 +1,207 @@
|
||||
# Copyright (c) 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the terms and conditions of the GNU General Public License,
|
||||
# version 2, as published by the Free Software Foundation.
|
||||
#
|
||||
# This program is distributed in the hope it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
# more details.
|
||||
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/pcie@a8b0000000/pci-host-ecam-generic.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: FIXME -- add title
|
||||
|
||||
maintainers:
|
||||
- FIXME -- add maintainers
|
||||
|
||||
description: |
|
||||
the compatability = pci-host-ecam-generic is mentioned in the following drivers
|
||||
- <TOP>/kernel/kernel-oot/drivers/pci/controller/pci-host-generic.c
|
||||
|
||||
The following nodes use this compatibility
|
||||
- /bus@0/pcie@a8b0000000
|
||||
- /bus@0/pcie@b0b0000000
|
||||
- /bus@0/pcie@b8b0000000
|
||||
- /bus@0/pcie@c0b0000000
|
||||
- /bus@0/pcie@c8b0000000
|
||||
- /bus@0/pcie@d0b0000000
|
||||
|
||||
select:
|
||||
properties:
|
||||
compatible:
|
||||
minItems: 1
|
||||
maxItems: 1
|
||||
items:
|
||||
enum:
|
||||
- pci-host-ecam-generic
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
||||
properties:
|
||||
|
||||
reg:
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32-matrix"
|
||||
description: |
|
||||
Registers are given by a tuple of two values:
|
||||
- register address:
|
||||
- register block size.
|
||||
items:
|
||||
minItems: 4
|
||||
maxItems: 4
|
||||
items:
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0xa8
|
||||
maximum: 0xd0
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x8520000
|
||||
maximum: 0xb0000000
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x0
|
||||
maximum: 0x0
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x10000
|
||||
maximum: 0x10000000
|
||||
|
||||
reg-names:
|
||||
$ref: "/schemas/types.yaml#/definitions/string-array"
|
||||
items:
|
||||
enum:
|
||||
- ecam
|
||||
- xdma
|
||||
|
||||
|
||||
'#address-cells':
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x3
|
||||
maximum: 0x3
|
||||
|
||||
'#size-cells':
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x2
|
||||
maximum: 0x2
|
||||
|
||||
device_type:
|
||||
$ref: "/schemas/types.yaml#/definitions/string-array"
|
||||
items:
|
||||
enum:
|
||||
- pci
|
||||
|
||||
|
||||
linux,pci-domain:
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x0
|
||||
maximum: 0x5
|
||||
|
||||
'#interrupt-cells':
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x1
|
||||
maximum: 0x1
|
||||
|
||||
interrupt-map-mask:
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32-matrix"
|
||||
items:
|
||||
minItems: 4
|
||||
maxItems: 4
|
||||
items:
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x0
|
||||
maximum: 0x0
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x0
|
||||
maximum: 0x0
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x0
|
||||
maximum: 0x0
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x7
|
||||
maximum: 0x7
|
||||
|
||||
iommu-map:
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32-matrix"
|
||||
items:
|
||||
minItems: 4
|
||||
maxItems: 4
|
||||
items:
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x0
|
||||
maximum: 0x0
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x10000
|
||||
maximum: 0x50000
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x10000
|
||||
maximum: 0x10000
|
||||
|
||||
dma-coherent:
|
||||
$ref: "/schemas/types.yaml#/definitions/flag"
|
||||
|
||||
msi-map:
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32-matrix"
|
||||
items:
|
||||
minItems: 4
|
||||
maxItems: 4
|
||||
items:
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x0
|
||||
maximum: 0x0
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x110000
|
||||
maximum: 0x210000
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x10000
|
||||
maximum: 0x10000
|
||||
|
||||
bus-range:
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32-matrix"
|
||||
items:
|
||||
minItems: 2
|
||||
maxItems: 2
|
||||
items:
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x0
|
||||
maximum: 0x0
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0xff
|
||||
maximum: 0xff
|
||||
|
||||
numa-node-id:
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x0
|
||||
maximum: 0x0
|
||||
|
||||
ats-supported:
|
||||
$ref: "/schemas/types.yaml#/definitions/flag"
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
examples:
|
||||
- |
|
||||
pcie@a8b0000000 {
|
||||
status = "disabled";
|
||||
compatible = "pci-host-ecam-generic";
|
||||
reg = <0xa8 0xb0000000 0x0 0x10000000>;
|
||||
reg-names = "ecam";
|
||||
#address-cells = <0x3>;
|
||||
#size-cells = <0x2>;
|
||||
device_type = "pci";
|
||||
linux,pci-domain = <0x1>;
|
||||
#interrupt-cells = <0x1>;
|
||||
interrupt-map-mask = <0x0 0x0 0x0 0x7>;
|
||||
interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0x0 GIC_SPI 0x38c IRQ_TYPE_LEVEL_HIGH0x0 0x0 0x0 0x2 &gic 0x0 0x0 GIC_SPI 0x38d IRQ_TYPE_LEVEL_HIGH0x0 0x0 0x0 0x3 &gic 0x0 0x0 GIC_SPI 0x38e IRQ_TYPE_LEVEL_HIGH0x0 0x0 0x0 0x4 &gic 0x0 0x0 GIC_SPI 0x38f IRQ_TYPE_LEVEL_HIGH>;
|
||||
iommu-map = <0x0 &smmu1_mmu 0x10000 0x10000>;
|
||||
dma-coherent;
|
||||
msi-map = <0x0 &its 0x110000 0x10000>;
|
||||
bus-range = <0x0 0xff>;
|
||||
ranges = <0x82000000 0x00 0x28000000 0x00 0x28000000 0x0 0x080000000xc3000000 0xa8 0xc0000000 0xa8 0xc0000000 0x7 0xc00000000x81000000 0xa8 0x82000000 0xa8 0x82000000 0x0 0x00200000>;
|
||||
numa-node-id = <0x0>;
|
||||
};
|
||||
@@ -0,0 +1,230 @@
|
||||
# Copyright (c) 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the terms and conditions of the GNU General Public License,
|
||||
# version 2, as published by the Free Software Foundation.
|
||||
#
|
||||
# This program is distributed in the hope it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
# more details.
|
||||
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/pcie-ep@a808420000/nvidia,tegra264-pcie-ep.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: FIXME -- add title
|
||||
|
||||
maintainers:
|
||||
- FIXME -- add maintainers
|
||||
|
||||
description: |
|
||||
the compatability = nvidia,tegra264-pcie-ep is mentioned in the following drivers
|
||||
- <TOP>/kernel/nvidia-oot/drivers/pci/controller/private-soc/pcie-tegra264-ep.c
|
||||
|
||||
select:
|
||||
properties:
|
||||
compatible:
|
||||
minItems: 1
|
||||
maxItems: 1
|
||||
items:
|
||||
enum:
|
||||
- nvidia,tegra264-pcie-ep
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
||||
properties:
|
||||
|
||||
compatible:
|
||||
minItems: 1
|
||||
maxItems: 1
|
||||
items:
|
||||
enum:
|
||||
- nvidia,tegra264-pcie-ep
|
||||
|
||||
reg:
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32-matrix"
|
||||
description: |
|
||||
Registers are given by a tuple of two values:
|
||||
- register address:
|
||||
- register block size.
|
||||
items:
|
||||
minItems: 4
|
||||
maxItems: 4
|
||||
items:
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0xa8
|
||||
maximum: 0xc8
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x8420000
|
||||
maximum: 0x80000000
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x0
|
||||
maximum: 0x8
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x0
|
||||
maximum: 0x10000
|
||||
|
||||
reg-names:
|
||||
$ref: "/schemas/types.yaml#/definitions/string-array"
|
||||
items:
|
||||
enum:
|
||||
- xal
|
||||
- xal-ep-dm
|
||||
- xtl-ep-pri
|
||||
- xtl-ep-cfg
|
||||
- xdma
|
||||
- xpl
|
||||
- addr_space
|
||||
|
||||
|
||||
interrupts:
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32-matrix"
|
||||
description: |
|
||||
Interrupts are give by a tuple of 3 values:
|
||||
- interrupt specifier (GIC_SPI = 0, GIC_PPI = 1)
|
||||
definitions in dt-bindings/interrupt-controller/arm-gic.h
|
||||
- interrupt number
|
||||
- trigger type (rising edge, falling edge, both, etc)
|
||||
definitions in dt-bindings/interrupt-controller/irq.h
|
||||
items:
|
||||
items:
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x0
|
||||
maximum: 0x0
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x392
|
||||
maximum: 0x3ad
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x4
|
||||
maximum: 0x4
|
||||
|
||||
interrupt-names:
|
||||
$ref: "/schemas/types.yaml#/definitions/string-array"
|
||||
items:
|
||||
enum:
|
||||
- intr
|
||||
|
||||
|
||||
'#address-cells':
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x3
|
||||
maximum: 0x3
|
||||
|
||||
'#size-cells':
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x2
|
||||
maximum: 0x2
|
||||
|
||||
pinctrl-names:
|
||||
$ref: "/schemas/types.yaml#/definitions/string-array"
|
||||
items:
|
||||
enum:
|
||||
- default
|
||||
|
||||
|
||||
pinctrl-0:
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x1d
|
||||
maximum: 0x1d
|
||||
|
||||
reset-gpios:
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32-matrix"
|
||||
items:
|
||||
minItems: 3
|
||||
maxItems: 3
|
||||
items:
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0xb
|
||||
maximum: 0x1b
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x1
|
||||
maximum: 0x1
|
||||
|
||||
iommus:
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32-matrix"
|
||||
items:
|
||||
minItems: 2
|
||||
maxItems: 2
|
||||
items:
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x20000
|
||||
maximum: 0x50000
|
||||
|
||||
dma-coherent:
|
||||
$ref: "/schemas/types.yaml#/definitions/flag"
|
||||
|
||||
msi-parent:
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32-matrix"
|
||||
items:
|
||||
minItems: 2
|
||||
maxItems: 2
|
||||
items:
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x120000
|
||||
maximum: 0x150000
|
||||
|
||||
linux,pci-domain:
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x2
|
||||
maximum: 0x5
|
||||
|
||||
nvidia,bpmp:
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32-matrix"
|
||||
items:
|
||||
minItems: 2
|
||||
maxItems: 2
|
||||
items:
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x2
|
||||
maximum: 0x5
|
||||
|
||||
numa-node-id:
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x0
|
||||
maximum: 0x0
|
||||
|
||||
nvidia,pex-prsnt-gpios:
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x1
|
||||
maximum: 0x1e
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- interrupt-names
|
||||
|
||||
examples:
|
||||
- |
|
||||
pcie-ep@a808420000 {
|
||||
status = "disabled";
|
||||
compatible = "nvidia,tegra264-pcie-ep";
|
||||
reg = <0xa8 0x08420000 0x0 0x00004000>,
|
||||
<0xa8 0x08500000 0x0 0x00001000>,
|
||||
<0xa8 0x08510000 0x0 0x00001000>,
|
||||
<0xa8 0x08511000 0x0 0x00001000>,
|
||||
<0xa8 0x08520000 0x0 0x00010000>,
|
||||
<0xa8 0x08430000 0x0 0x00010000>,
|
||||
<0xb0 0x80000000 0x8 0x00000000>;
|
||||
reg-names = "xal, xal-ep-dm, xtl-ep-pri, xtl-ep-cfg, xdma, xpl, addr_space";
|
||||
interrupts = <GIC_SPI 0x392 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "intr";
|
||||
#address-cells = <0x3>;
|
||||
#size-cells = <0x2>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pex_rst_c2_in_state>;
|
||||
reset-gpios = <&gpio_uphy TEGRA264_UPHY_GPIO(B3) GPIO_ACTIVE_LOW>;
|
||||
iommus = <&smmu1_mmu 0x20000>;
|
||||
dma-coherent;
|
||||
msi-parent = <&its 0x120000>;
|
||||
linux,pci-domain = <0x2>;
|
||||
nvidia,bpmp = <&bpmp 0x2>;
|
||||
numa-node-id = <0x0>;
|
||||
};
|
||||
@@ -0,0 +1,233 @@
|
||||
# Copyright (c) 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the terms and conditions of the GNU General Public License,
|
||||
# version 2, as published by the Free Software Foundation.
|
||||
#
|
||||
# This program is distributed in the hope it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
# more details.
|
||||
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/pcie@810c000000/nvidia,tegra264-pcie.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: FIXME -- add title
|
||||
|
||||
maintainers:
|
||||
- FIXME -- add maintainers
|
||||
|
||||
description: |
|
||||
the compatability = nvidia,tegra264-pcie is mentioned in the following drivers
|
||||
- <TOP>/kernel/nvidia-oot/drivers/pci/controller/private-soc/pcie-tegra264-ep.c
|
||||
- <TOP>/kernel/nvidia-oot/drivers/pci/controller/private-soc/pcie-tegra264.c
|
||||
|
||||
select:
|
||||
properties:
|
||||
compatible:
|
||||
minItems: 1
|
||||
maxItems: 1
|
||||
items:
|
||||
enum:
|
||||
- nvidia,tegra264-pcie
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
||||
properties:
|
||||
|
||||
compatible:
|
||||
minItems: 1
|
||||
maxItems: 1
|
||||
items:
|
||||
enum:
|
||||
- nvidia,tegra264-pcie
|
||||
|
||||
reg:
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32-matrix"
|
||||
description: |
|
||||
Registers are given by a tuple of two values:
|
||||
- register address:
|
||||
- register block size.
|
||||
items:
|
||||
minItems: 4
|
||||
maxItems: 4
|
||||
items:
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x81
|
||||
maximum: 0xd0
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x8400000
|
||||
maximum: 0xb0000000
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x0
|
||||
maximum: 0x0
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x1000
|
||||
maximum: 0x10000000
|
||||
|
||||
reg-names:
|
||||
$ref: "/schemas/types.yaml#/definitions/string-array"
|
||||
items:
|
||||
enum:
|
||||
- xal
|
||||
- xtl
|
||||
- xtl-pri
|
||||
- ecam
|
||||
- xpl
|
||||
- xdma
|
||||
|
||||
|
||||
'#address-cells':
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x3
|
||||
maximum: 0x3
|
||||
|
||||
'#size-cells':
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x2
|
||||
maximum: 0x2
|
||||
|
||||
device_type:
|
||||
$ref: "/schemas/types.yaml#/definitions/string-array"
|
||||
items:
|
||||
enum:
|
||||
- pci
|
||||
|
||||
|
||||
linux,pci-domain:
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x0
|
||||
maximum: 0x5
|
||||
|
||||
'#interrupt-cells':
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x1
|
||||
maximum: 0x1
|
||||
|
||||
interrupt-map-mask:
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32-matrix"
|
||||
items:
|
||||
minItems: 4
|
||||
maxItems: 4
|
||||
items:
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x0
|
||||
maximum: 0x0
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x0
|
||||
maximum: 0x0
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x0
|
||||
maximum: 0x0
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x7
|
||||
maximum: 0x7
|
||||
|
||||
iommu-map:
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32-matrix"
|
||||
items:
|
||||
minItems: 4
|
||||
maxItems: 4
|
||||
items:
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x0
|
||||
maximum: 0x0
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x10000
|
||||
maximum: 0x50000
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x10000
|
||||
maximum: 0x10000
|
||||
|
||||
dma-coherent:
|
||||
$ref: "/schemas/types.yaml#/definitions/flag"
|
||||
|
||||
msi-map:
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32-matrix"
|
||||
items:
|
||||
minItems: 4
|
||||
maxItems: 4
|
||||
items:
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x0
|
||||
maximum: 0x0
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x110000
|
||||
maximum: 0x210000
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x10000
|
||||
maximum: 0x10000
|
||||
|
||||
bus-range:
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32-matrix"
|
||||
items:
|
||||
minItems: 2
|
||||
maxItems: 2
|
||||
items:
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x0
|
||||
maximum: 0x0
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0xff
|
||||
maximum: 0xff
|
||||
|
||||
nvidia,bpmp:
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32-matrix"
|
||||
items:
|
||||
minItems: 2
|
||||
maxItems: 2
|
||||
items:
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
- $ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x0
|
||||
maximum: 0x5
|
||||
|
||||
numa-node-id:
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x0
|
||||
maximum: 0x0
|
||||
|
||||
ats-supported:
|
||||
$ref: "/schemas/types.yaml#/definitions/flag"
|
||||
|
||||
nvidia,host1x:
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0x19
|
||||
maximum: 0x19
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
examples:
|
||||
- |
|
||||
pcie@810c000000 {
|
||||
status = "disabled";
|
||||
compatible = "nvidia,tegra264-pcie";
|
||||
reg = <0x81 0x0c000000 0x0 0x00004000>,
|
||||
<0x81 0x0c004000 0x0 0x00001000>,
|
||||
<0x81 0x0c005000 0x0 0x00001000>,
|
||||
<0xd0 0xb0000000 0x0 0x10000000>;
|
||||
reg-names = "xal, xtl, xtl-pri, ecam";
|
||||
#address-cells = <0x3>;
|
||||
#size-cells = <0x2>;
|
||||
device_type = "pci";
|
||||
linux,pci-domain = <0x0>;
|
||||
#interrupt-cells = <0x1>;
|
||||
interrupt-map-mask = <0x0 0x0 0x0 0x7>;
|
||||
interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0x0 GIC_SPI 0x9b IRQ_TYPE_LEVEL_HIGH0x0 0x0 0x0 0x2 &gic 0x0 0x0 GIC_SPI 0x9c IRQ_TYPE_LEVEL_HIGH0x0 0x0 0x0 0x3 &gic 0x0 0x0 GIC_SPI 0x9d IRQ_TYPE_LEVEL_HIGH0x0 0x0 0x0 0x4 &gic 0x0 0x0 GIC_SPI 0x9e IRQ_TYPE_LEVEL_HIGH>;
|
||||
iommu-map = <0x0 &smmu2_mmu 0x10000 0x10000>;
|
||||
dma-coherent;
|
||||
msi-map = <0x0 &its 0x210000 0x10000>;
|
||||
bus-range = <0x0 0xff>;
|
||||
ranges = <0x82000000 0x00 0x20000000 0x00 0x20000000 0x0 0x080000000xc3000000 0xd0 0xc0000000 0xd0 0xc0000000 0x7 0xc00000000x81000000 0xd0 0x82000000 0xd0 0x82000000 0x0 0x00200000>;
|
||||
nvidia,bpmp = <&bpmp 0x0>;
|
||||
numa-node-id = <0x0>;
|
||||
ats-supported;
|
||||
nvidia,host1x = <&host1x>;
|
||||
};
|
||||
Reference in New Issue
Block a user