DT core: - Fix node refcounting in of_find_last_cache_level() - Constify device_node in of_device_compatible_match() - Fix 'dma-ranges' handling in bus controller nodes - Fix handling of initrd start > end - Improve error reporting in of_irq_init() - Taint kernel on DT unittest running - Use strscpy instead of strlcpy - Add a build target, dt_compatible_check, to check for compatible strings used in kernel sources against compatible strings in DT schemas. - Handle DT_SCHEMA_FILES changes when rebuilding DT bindings: - LED bindings for MT6370 PMIC - Convert Mediatek mtk-gce mailbox, MIPS CPU interrupt controller, mt7621 I2C, virtio,pci-iommu, nxp,tda998x, QCom fastrpc, qcom,pdc, and arm,versatile-sysreg to DT schema format - Add nvmem cells to u-boot,env schema - Add more LED_COLOR_ID definitions - Require 'opp-table' uses to be a node - Various schema fixes to match QEMU 'virt' DT usage - Tree wide dropping of redundant 'Device Tree Binding' in schema titles - More (unevaluated|additional)Properties fixes in schema child nodes - Drop various redundant minItems equal to maxItems -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEktVUI4SxYhzZyEuo+vtdtY28YcMFAmM7QzsACgkQ+vtdtY28 YcNMgg//eZr/y+FUyF3tE7DRRmCzbptAfRG0Ccmj6z0VM9HNmOiacnNdqGjOFHj6 CCFUHYsFJhiTwgM5MzMMZcQetrF+dZDok5HQNAkYqz5jtdcg1T0ZgrcpHcZpxfGv lpAFaDkyoWQ7BXJbgLJJFP6pZ4IDyekWjU49php5pYlmTvzLwMvYW2MYvElLJ4It tKi0XAzVyT/TrynFAOYDVO+kwZ4DDctsJM44K0LRW0e05Den9zCZDeVXik0J9l8o jMpVy5xgqAbNUe/TCj8n91nG/Cl3wiW8l8JGWPAcb3D1Em6CQlsJCGN1a/rSHUiE Pseql1ufUzpjcpTMnmdbRE/jWwJcLI2DqandxqIrEpUFmF4hlGeSviKib9qtacN0 pWC5pZgxrWvM9rHbbe2cYLozkYd8eiRo2l8hfefTopYbQ3UHa2hsU+f6vm9t0Gru vxH7BmdlI22aGlnP0jl8t84v5cpu8O4C6Zmf2B/b5xj3Tif2GTLU1aYPuX3PkqHL F9Ni+JqhnQBl1+t90PJogEFicjeyrjUO9lkKbzuoWwiJk5AgJcGck8tkBotlWYPc B59DTigELMlssYIoF4/oX8ZF1QVmws6Xc0f9/GkgCEA0bR1qdo63qPjM9FIpd1G4 9sUhxiQbPCtIMMwD1M26LGUE/C4WESL9VXjdakoMaj7ekon2vjw= =IDIz -----END PGP SIGNATURE----- Merge tag 'devicetree-for-6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux Pull devicetree updates from Rob Herring: "DT core: - Fix node refcounting in of_find_last_cache_level() - Constify device_node in of_device_compatible_match() - Fix 'dma-ranges' handling in bus controller nodes - Fix handling of initrd start > end - Improve error reporting in of_irq_init() - Taint kernel on DT unittest running - Use strscpy instead of strlcpy - Add a build target, dt_compatible_check, to check for compatible strings used in kernel sources against compatible strings in DT schemas. - Handle DT_SCHEMA_FILES changes when rebuilding DT bindings: - LED bindings for MT6370 PMIC - Convert Mediatek mtk-gce mailbox, MIPS CPU interrupt controller, mt7621 I2C, virtio,pci-iommu, nxp,tda998x, QCom fastrpc, qcom,pdc, and arm,versatile-sysreg to DT schema format - Add nvmem cells to u-boot,env schema - Add more LED_COLOR_ID definitions - Require 'opp-table' uses to be a node - Various schema fixes to match QEMU 'virt' DT usage - Tree wide dropping of redundant 'Device Tree Binding' in schema titles - More (unevaluated|additional)Properties fixes in schema child nodes - Drop various redundant minItems equal to maxItems" * tag 'devicetree-for-6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (62 commits) of: base: Shift refcount decrement in of_find_last_cache_level() dt-bindings: leds: Add MediaTek MT6370 flashlight dt-bindings: leds: mt6370: Add MediaTek MT6370 current sink type LED indicator dt-bindings: mailbox: Convert mtk-gce to DT schema of: base: make of_device_compatible_match() accept const device node of: Fix "dma-ranges" handling for bus controllers of: fdt: Remove unused struct fdt_scan_status dt-bindings: display: st,stm32-dsi: Handle data-lanes in DSI port node dt-bindings: timer: Add power-domains for TI timer-dm on K3 dt: Add a check for undocumented compatible strings in kernel kbuild: take into account DT_SCHEMA_FILES changes while checking dtbs dt-bindings: interrupt-controller: migrate MIPS CPU interrupt controller text bindings to YAML dt-bindings: i2c: migrate mt7621 text bindings to YAML dt-bindings: power: gpcv2: correct patternProperties dt-bindings: virtio: Convert virtio,pci-iommu to DT schema dt-bindings: timer: arm,arch_timer: Allow dual compatible string dt-bindings: arm: cpus: Add kryo240 compatible dt-bindings: display: bridge: nxp,tda998x: Convert to json-schema dt-bindings: nvmem: u-boot,env: add basic NVMEM cells dt-bindings: remoteproc: qcom,adsp: enforce smd-edge schema ...
280 lines
7.6 KiB
YAML
280 lines
7.6 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/net/ti,k3-am654-cpsw-nuss.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: The TI AM654x/J721E/AM642x SoC Gigabit Ethernet MAC (Media Access Controller)
|
|
|
|
maintainers:
|
|
- Grygorii Strashko <grygorii.strashko@ti.com>
|
|
- Sekhar Nori <nsekhar@ti.com>
|
|
|
|
description:
|
|
The TI AM654x/J721E SoC Gigabit Ethernet MAC (CPSW2G NUSS) has two ports
|
|
(one external) and provides Ethernet packet communication for the device.
|
|
The TI AM642x SoC Gigabit Ethernet MAC (CPSW3G NUSS) has three ports
|
|
(two external) and provides Ethernet packet communication and switching.
|
|
|
|
The internal Communications Port Programming Interface (CPPI5) (Host port 0).
|
|
Host Port 0 CPPI Packet Streaming Interface interface supports 8 TX channels
|
|
and one RX channels and operating by NAVSS Unified DMA Peripheral Root
|
|
Complex (UDMA-P) controller.
|
|
|
|
CPSWxG features
|
|
updated Address Lookup Engine (ALE).
|
|
priority level Quality Of Service (QOS) support (802.1p)
|
|
Support for Audio/Video Bridging (P802.1Qav/D6.0)
|
|
Support for IEEE 1588 Clock Synchronization (2008 Annex D, Annex E and Annex F)
|
|
Flow Control (802.3x) Support
|
|
Time Sensitive Network Support
|
|
IEEE P902.3br/D2.0 Interspersing Express Traffic
|
|
IEEE 802.1Qbv/D2.2 Enhancements for Scheduled Traffic
|
|
Configurable number of addresses plus VLANs
|
|
Configurable number of classifier/policers
|
|
VLAN support, 802.1Q compliant, Auto add port VLAN for untagged frames on
|
|
ingress, Auto VLAN removal on egress and auto pad to minimum frame size.
|
|
RX/TX csum offload
|
|
Management Data Input/Output (MDIO) interface for PHYs management
|
|
RMII/RGMII Interfaces support
|
|
new version of Common Platform Time Sync (CPTS)
|
|
|
|
The CPSWxG NUSS is integrated into
|
|
device MCU domain named MCU_CPSW0 on AM654x/J721E SoC.
|
|
device MAIN domain named CPSW0 on AM642x SoC.
|
|
|
|
Specifications can be found at
|
|
https://www.ti.com/lit/pdf/spruid7
|
|
https://www.ti.com/lit/zip/spruil1
|
|
https://www.ti.com/lit/pdf/spruim2
|
|
|
|
properties:
|
|
"#address-cells": true
|
|
"#size-cells": true
|
|
|
|
compatible:
|
|
enum:
|
|
- ti,am654-cpsw-nuss
|
|
- ti,j7200-cpswxg-nuss
|
|
- ti,j721e-cpsw-nuss
|
|
- ti,am642-cpsw-nuss
|
|
|
|
reg:
|
|
maxItems: 1
|
|
description:
|
|
The physical base address and size of full the CPSWxG NUSS IO range
|
|
|
|
reg-names:
|
|
items:
|
|
- const: cpsw_nuss
|
|
|
|
ranges: true
|
|
|
|
dma-coherent: true
|
|
|
|
clocks:
|
|
maxItems: 1
|
|
description: CPSWxG NUSS functional clock
|
|
|
|
clock-names:
|
|
items:
|
|
- const: fck
|
|
|
|
assigned-clock-parents: true
|
|
|
|
assigned-clocks: true
|
|
|
|
power-domains:
|
|
maxItems: 1
|
|
|
|
dmas:
|
|
maxItems: 9
|
|
|
|
dma-names:
|
|
items:
|
|
- const: tx0
|
|
- const: tx1
|
|
- const: tx2
|
|
- const: tx3
|
|
- const: tx4
|
|
- const: tx5
|
|
- const: tx6
|
|
- const: tx7
|
|
- const: rx
|
|
|
|
ethernet-ports:
|
|
type: object
|
|
properties:
|
|
'#address-cells':
|
|
const: 1
|
|
'#size-cells':
|
|
const: 0
|
|
|
|
patternProperties:
|
|
"^port@[1-4]$":
|
|
type: object
|
|
description: CPSWxG NUSS external ports
|
|
|
|
$ref: ethernet-controller.yaml#
|
|
unevaluatedProperties: false
|
|
|
|
properties:
|
|
reg:
|
|
minimum: 1
|
|
maximum: 4
|
|
description: CPSW port number
|
|
|
|
phys:
|
|
maxItems: 1
|
|
description: phandle on phy-gmii-sel PHY
|
|
|
|
label:
|
|
description: label associated with this port
|
|
|
|
ti,mac-only:
|
|
$ref: /schemas/types.yaml#/definitions/flag
|
|
description:
|
|
Specifies the port works in mac-only mode.
|
|
|
|
ti,syscon-efuse:
|
|
$ref: /schemas/types.yaml#/definitions/phandle-array
|
|
items:
|
|
- items:
|
|
- description: Phandle to the system control device node which
|
|
provides access to efuse
|
|
- description: offset to efuse registers???
|
|
description:
|
|
Phandle to the system control device node which provides access
|
|
to efuse IO range with MAC addresses
|
|
|
|
required:
|
|
- reg
|
|
- phys
|
|
|
|
additionalProperties: false
|
|
|
|
patternProperties:
|
|
"^mdio@[0-9a-f]+$":
|
|
type: object
|
|
$ref: "ti,davinci-mdio.yaml#"
|
|
|
|
description:
|
|
CPSW MDIO bus.
|
|
|
|
"^cpts@[0-9a-f]+":
|
|
type: object
|
|
$ref: "ti,k3-am654-cpts.yaml#"
|
|
description:
|
|
CPSW Common Platform Time Sync (CPTS) module.
|
|
|
|
required:
|
|
- compatible
|
|
- reg
|
|
- reg-names
|
|
- ranges
|
|
- clocks
|
|
- clock-names
|
|
- power-domains
|
|
- dmas
|
|
- dma-names
|
|
- '#address-cells'
|
|
- '#size-cells'
|
|
|
|
allOf:
|
|
- if:
|
|
not:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
const: ti,j7200-cpswxg-nuss
|
|
then:
|
|
properties:
|
|
ethernet-ports:
|
|
patternProperties:
|
|
"^port@[3-4]$": false
|
|
|
|
additionalProperties: false
|
|
|
|
examples:
|
|
- |
|
|
#include <dt-bindings/pinctrl/k3.h>
|
|
#include <dt-bindings/soc/ti,sci_pm_domain.h>
|
|
#include <dt-bindings/net/ti-dp83867.h>
|
|
#include <dt-bindings/interrupt-controller/irq.h>
|
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
|
|
|
bus {
|
|
#address-cells = <2>;
|
|
#size-cells = <2>;
|
|
|
|
mcu_cpsw: ethernet@46000000 {
|
|
compatible = "ti,am654-cpsw-nuss";
|
|
#address-cells = <2>;
|
|
#size-cells = <2>;
|
|
reg = <0x0 0x46000000 0x0 0x200000>;
|
|
reg-names = "cpsw_nuss";
|
|
ranges = <0x0 0x0 0x0 0x46000000 0x0 0x200000>;
|
|
dma-coherent;
|
|
clocks = <&k3_clks 5 10>;
|
|
clock-names = "fck";
|
|
power-domains = <&k3_pds 5 TI_SCI_PD_EXCLUSIVE>;
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&mcu_cpsw_pins_default &mcu_mdio_pins_default>;
|
|
|
|
dmas = <&mcu_udmap 0xf000>,
|
|
<&mcu_udmap 0xf001>,
|
|
<&mcu_udmap 0xf002>,
|
|
<&mcu_udmap 0xf003>,
|
|
<&mcu_udmap 0xf004>,
|
|
<&mcu_udmap 0xf005>,
|
|
<&mcu_udmap 0xf006>,
|
|
<&mcu_udmap 0xf007>,
|
|
<&mcu_udmap 0x7000>;
|
|
dma-names = "tx0", "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
|
|
"rx";
|
|
|
|
ethernet-ports {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
cpsw_port1: port@1 {
|
|
reg = <1>;
|
|
ti,mac-only;
|
|
label = "port1";
|
|
ti,syscon-efuse = <&mcu_conf 0x200>;
|
|
phys = <&phy_gmii_sel 1>;
|
|
|
|
phy-mode = "rgmii-rxid";
|
|
phy-handle = <&phy0>;
|
|
};
|
|
};
|
|
|
|
davinci_mdio: mdio@f00 {
|
|
compatible = "ti,cpsw-mdio","ti,davinci_mdio";
|
|
reg = <0x0 0xf00 0x0 0x100>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
clocks = <&k3_clks 5 10>;
|
|
clock-names = "fck";
|
|
bus_freq = <1000000>;
|
|
|
|
phy0: ethernet-phy@0 {
|
|
reg = <0>;
|
|
ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
|
|
ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
|
|
};
|
|
};
|
|
};
|
|
|
|
cpts@3d000 {
|
|
compatible = "ti,am65-cpts";
|
|
reg = <0x0 0x3d000 0x0 0x400>;
|
|
clocks = <&k3_clks 18 2>;
|
|
clock-names = "cpts";
|
|
interrupts-extended = <&gic500 GIC_SPI 858 IRQ_TYPE_LEVEL_HIGH>;
|
|
interrupt-names = "cpts";
|
|
ti,cpts-ext-ts-inputs = <4>;
|
|
ti,cpts-periodic-outputs = <2>;
|
|
};
|
|
};
|