Files
linux-nv-oot/Documentation/devicetree/bindings/phy/tegra/nvidia,tegra264-xusb.yaml
Mark Mendez a2ee9f655f 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>
2025-07-24 10:19:12 +00:00

241 lines
7.6 KiB
YAML

# 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/usb@a80aa10000/nvidia,tegra264-xusb.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: FIXME -- add title
maintainers:
- FIXME -- add maintainers
description: |
the compatability = nvidia,tegra264-xusb is mentioned in the following drivers
- <TOP>/kernel/kernel-oot/drivers/phy/tegra/xusb.c
- <TOP>/kernel/kernel-oot/drivers/usb/host/xhci-tegra.c
The following nodes use this compatibility
- /bus@0/usb@a80aa10000
select:
properties:
compatible:
minItems: 1
maxItems: 1
items:
enum:
- nvidia,tegra264-xusb
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: 0xa8
- $ref: "/schemas/types.yaml#/definitions/uint32"
minimum: 0x2000000
maximum: 0xaa50000
- $ref: "/schemas/types.yaml#/definitions/uint32"
minimum: 0x0
maximum: 0x0
- $ref: "/schemas/types.yaml#/definitions/uint32"
minimum: 0x10000
maximum: 0x40000
reg-names:
$ref: "/schemas/types.yaml#/definitions/string-array"
items:
enum:
- base
- fpci
- bar2
- rst
- pinmux
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: 0x2
- $ref: "/schemas/types.yaml#/definitions/uint32"
minimum: 0x0
maximum: 0x3b8
- $ref: "/schemas/types.yaml#/definitions/uint32"
minimum: 0x4
maximum: 0x4
interrupt-names:
$ref: "/schemas/types.yaml#/definitions/string-array"
items:
enum:
- xhci
- mbox
- padctl
clocks:
$ref: "/schemas/types.yaml#/definitions/uint32-matrix"
description: |
Clocks are given by a tuple of 2 values:
- Phandle to the device
- Clock ID
items:
minItems: 2
maxItems: 2
items:
- $ref: "/schemas/types.yaml#/definitions/uint32"
- $ref: "/schemas/types.yaml#/definitions/uint32"
minimum: 0x1
maximum: 0x12d
clock-names:
$ref: "/schemas/types.yaml#/definitions/string-array"
items:
enum:
- xusb_host
- xusb_falcon_src
- xusb_ss
- xusb_ss_src
- xusb_hs_src
- xusb_fs_src
- pll_u_480m
- clk_m
- pll_e
power-domains:
$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: 0xa
maximum: 0xc
power-domain-names:
$ref: "/schemas/types.yaml#/definitions/string-array"
items:
enum:
- xusb_host
- xusb_ss
nvidia,xusb-padctl:
$ref: "/schemas/types.yaml#/definitions/uint32"
iommus:
$ref: "/schemas/types.yaml#/definitions/uint32-matrix"
description: |
iommus are given by a tuple of 2 values:
- Phandle to the device
- Device ID
items:
minItems: 2
maxItems: 2
items:
- $ref: "/schemas/types.yaml#/definitions/uint32"
- $ref: "/schemas/types.yaml#/definitions/uint32"
minimum: 0x3200
maximum: 0x3600
dma-coherent:
$ref: "/schemas/types.yaml#/definitions/flag"
phys:
$ref: "/schemas/types.yaml#/definitions/uint32"
minimum: 0x29
maximum: 0x2c
phy-names:
$ref: "/schemas/types.yaml#/definitions/string-array"
items:
enum:
- usb2-1
- usb2-2
- usb2-3
- usb3-2
required:
- compatible
- reg
- interrupts
- interrupt-names
- clocks
- clock-names
- iommus
examples:
- |
usb@a80aa10000 {
compatible = "nvidia,tegra264-xusb";
reg = <0xa8 0xaa10000 0x00 0x40000>,
<0xa8 0xaa00000 0x00 0x10000>,
<0xa8 0xaa50000 0x00 0x10000>,
<0xa8 0x2000000 0x00 0x40000>,
<0xa8 0x82e0000 0x00 0x40000>;
reg-names = "base, fpci, bar2, rst, pinmux";
interrupts = <0 952 IRQ_TYPE_LEVEL_HIGH>,
<2 0 IRQ_TYPE_LEVEL_HIGH>,
<2 5 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "xhci, mbox, padctl";
clocks = <&bpmp TEGRA264_CLK_XUSB1_CORE_HOST>,
<&bpmp TEGRA264_CLK_XUSB1_FALCON>,
<&bpmp TEGRA264_CLK_XUSB1_CORE_SUPERSPEED>,
<&bpmp TEGRA264_CLK_XUSB1_SS>,
<&bpmp TEGRA264_CLK_OSC>,
<&bpmp TEGRA264_CLK_XUSB1_FS>,
<&bpmp TEGRA264_CLK_UTMI_PLL1>,
<&bpmp TEGRA264_CLK_OSC>,
<&bpmp TEGRA264_CLK_PLLE0>;
clock-names = "xusb_host, xusb_falcon_src",
"xusb_ss, xusb_ss_src, xusb_hs_src",
"xusb_fs_src, pll_u_480m, clk_m",
"pll_e";
power-domains = <&bpmp TEGRA264_POWER_DOMAIN_XUSB_HOST>,
<&bpmp TEGRA264_POWER_DOMAIN_XUSB_SS>;
power-domain-names = "xusb_host, xusb_ss";
nvidia,xusb-padctl = <&xusb_padctl>;
iommus = <&smmu1_mmu TEGRA_SID_XUSB_PF_HS_PORTS>,
<&smmu1_mmu TEGRA_SID_XUSB_PF_SS_PORT1>,
<&smmu1_mmu TEGRA_SID_XUSB_PF_SS_PORT2>,
<&smmu1_mmu TEGRA_SID_XUSB_PF_SS_PORT3>,
<&smmu1_mmu TEGRA_SID_XUSB_PF_SS_PORT4>;
dma-coherent;
status = "disabled";
};