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 ...
243 lines
6.1 KiB
YAML
243 lines
6.1 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/net/ti,cpsw-switch.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: TI SoC Ethernet Switch Controller (CPSW)
|
|
|
|
maintainers:
|
|
- Grygorii Strashko <grygorii.strashko@ti.com>
|
|
- Sekhar Nori <nsekhar@ti.com>
|
|
|
|
description:
|
|
The 3-port switch gigabit ethernet subsystem provides ethernet packet
|
|
communication and can be configured as an ethernet switch. It provides the
|
|
gigabit media independent interface (GMII),reduced gigabit media
|
|
independent interface (RGMII), reduced media independent interface (RMII),
|
|
the management data input output (MDIO) for physical layer device (PHY)
|
|
management.
|
|
|
|
properties:
|
|
compatible:
|
|
oneOf:
|
|
- const: ti,cpsw-switch
|
|
- items:
|
|
- const: ti,am335x-cpsw-switch
|
|
- const: ti,cpsw-switch
|
|
- items:
|
|
- const: ti,am4372-cpsw-switch
|
|
- const: ti,cpsw-switch
|
|
- items:
|
|
- const: ti,dra7-cpsw-switch
|
|
- const: ti,cpsw-switch
|
|
|
|
reg:
|
|
maxItems: 1
|
|
description:
|
|
The physical base address and size of full the CPSW module IO range
|
|
|
|
'#address-cells':
|
|
const: 1
|
|
|
|
'#size-cells':
|
|
const: 1
|
|
|
|
ranges: true
|
|
|
|
clocks:
|
|
maxItems: 1
|
|
description: CPSW functional clock
|
|
|
|
clock-names:
|
|
items:
|
|
- const: fck
|
|
|
|
interrupts:
|
|
items:
|
|
- description: RX_THRESH interrupt
|
|
- description: RX interrupt
|
|
- description: TX interrupt
|
|
- description: MISC interrupt
|
|
|
|
interrupt-names:
|
|
items:
|
|
- const: "rx_thresh"
|
|
- const: "rx"
|
|
- const: "tx"
|
|
- const: "misc"
|
|
|
|
pinctrl-names: true
|
|
|
|
syscon:
|
|
$ref: /schemas/types.yaml#/definitions/phandle
|
|
description:
|
|
Phandle to the system control device node which provides access to
|
|
efuse IO range with MAC addresses
|
|
|
|
ethernet-ports:
|
|
type: object
|
|
additionalProperties: false
|
|
|
|
properties:
|
|
'#address-cells':
|
|
const: 1
|
|
'#size-cells':
|
|
const: 0
|
|
|
|
patternProperties:
|
|
"^port@[0-9]+$":
|
|
type: object
|
|
description: CPSW external ports
|
|
|
|
$ref: ethernet-controller.yaml#
|
|
unevaluatedProperties: false
|
|
|
|
properties:
|
|
reg:
|
|
items:
|
|
- enum: [1, 2]
|
|
description: CPSW port number
|
|
|
|
phys:
|
|
maxItems: 1
|
|
description: phandle on phy-gmii-sel PHY
|
|
|
|
label:
|
|
description: label associated with this port
|
|
|
|
ti,dual-emac-pvid:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
minimum: 1
|
|
maximum: 1024
|
|
description:
|
|
Specifies default PORT VID to be used to segregate
|
|
ports. Default value - CPSW port number.
|
|
|
|
required:
|
|
- reg
|
|
- phys
|
|
|
|
cpts:
|
|
type: object
|
|
unevaluatedProperties: false
|
|
description:
|
|
The Common Platform Time Sync (CPTS) module
|
|
|
|
properties:
|
|
clocks:
|
|
maxItems: 1
|
|
description: CPTS reference clock
|
|
|
|
clock-names:
|
|
items:
|
|
- const: cpts
|
|
|
|
cpts_clock_mult:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
description:
|
|
Numerator to convert input clock ticks into ns
|
|
|
|
cpts_clock_shift:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
description:
|
|
Denominator to convert input clock ticks into ns.
|
|
Mult and shift will be calculated basing on CPTS rftclk frequency if
|
|
both cpts_clock_shift and cpts_clock_mult properties are not provided.
|
|
|
|
required:
|
|
- clocks
|
|
- clock-names
|
|
|
|
patternProperties:
|
|
"^mdio@":
|
|
type: object
|
|
description:
|
|
CPSW MDIO bus.
|
|
$ref: "ti,davinci-mdio.yaml#"
|
|
|
|
|
|
required:
|
|
- compatible
|
|
- reg
|
|
- ranges
|
|
- clocks
|
|
- clock-names
|
|
- interrupts
|
|
- interrupt-names
|
|
- '#address-cells'
|
|
- '#size-cells'
|
|
|
|
additionalProperties: false
|
|
|
|
examples:
|
|
- |
|
|
#include <dt-bindings/interrupt-controller/irq.h>
|
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
|
#include <dt-bindings/clock/dra7.h>
|
|
|
|
mac_sw: switch@0 {
|
|
compatible = "ti,dra7-cpsw-switch","ti,cpsw-switch";
|
|
reg = <0x0 0x4000>;
|
|
ranges = <0 0 0x4000>;
|
|
clocks = <&gmac_main_clk>;
|
|
clock-names = "fck";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
syscon = <&scm_conf>;
|
|
|
|
interrupts = <GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH>;
|
|
interrupt-names = "rx_thresh", "rx", "tx", "misc";
|
|
|
|
ethernet-ports {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
cpsw_port1: port@1 {
|
|
reg = <1>;
|
|
label = "port1";
|
|
mac-address = [ 00 00 00 00 00 00 ];
|
|
phys = <&phy_gmii_sel 1>;
|
|
phy-handle = <ðphy0_sw>;
|
|
phy-mode = "rgmii";
|
|
ti,dual-emac-pvid = <1>;
|
|
};
|
|
|
|
cpsw_port2: port@2 {
|
|
reg = <2>;
|
|
label = "wan";
|
|
mac-address = [ 00 00 00 00 00 00 ];
|
|
phys = <&phy_gmii_sel 2>;
|
|
phy-handle = <ðphy1_sw>;
|
|
phy-mode = "rgmii";
|
|
ti,dual-emac-pvid = <2>;
|
|
};
|
|
};
|
|
|
|
davinci_mdio_sw: mdio@1000 {
|
|
compatible = "ti,cpsw-mdio","ti,davinci_mdio";
|
|
reg = <0x1000 0x100>;
|
|
clocks = <&gmac_clkctrl DRA7_GMAC_GMAC_CLKCTRL 0>;
|
|
clock-names = "fck";
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
bus_freq = <1000000>;
|
|
|
|
ethphy0_sw: ethernet-phy@0 {
|
|
reg = <0>;
|
|
};
|
|
|
|
ethphy1_sw: ethernet-phy@1 {
|
|
reg = <1>;
|
|
};
|
|
};
|
|
|
|
cpts {
|
|
clocks = <&gmac_clkctrl DRA7_GMAC_GMAC_CLKCTRL 25>;
|
|
clock-names = "cpts";
|
|
};
|
|
};
|