Linux-6.18.2/Documentation/devicetree/bindings/net/realtek,rtl9301-switch.yaml
2025-12-23 20:06:59 +08:00

176 lines
3.6 KiB
YAML

# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/realtek,rtl9301-switch.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Realtek Switch with Internal CPU
maintainers:
- Chris Packham <chris.packham@alliedtelesis.co.nz>
description:
The RTL9300 is a series of is an Ethernet switches with an integrated CPU. A
number of different peripherals are accessed through a common register block,
represented here as a syscon node.
$ref: ethernet-switch.yaml#/$defs/ethernet-ports
properties:
compatible:
items:
- enum:
- realtek,rtl9301-switch
- realtek,rtl9302b-switch
- realtek,rtl9302c-switch
- realtek,rtl9303-switch
- const: syscon
- const: simple-mfd
reg:
maxItems: 1
interrupts:
maxItems: 2
interrupt-names:
items:
- const: switch
- const: nic
'#address-cells':
const: 1
'#size-cells':
const: 1
ethernet-ports:
type: object
patternProperties:
'reboot@[0-9a-f]+$':
$ref: /schemas/power/reset/syscon-reboot.yaml#
'i2c@[0-9a-f]+$':
$ref: /schemas/i2c/realtek,rtl9301-i2c.yaml#
'mdio-controller@[0-9a-f]+$':
$ref: realtek,rtl9301-mdio.yaml#
required:
- compatible
- reg
- interrupts
- interrupt-names
additionalProperties: false
examples:
- |
ethernet-switch@1b000000 {
compatible = "realtek,rtl9301-switch", "syscon", "simple-mfd";
reg = <0x1b000000 0x10000>;
interrupt-parent = <&intc>;
interrupts = <23>, <24>;
interrupt-names = "switch", "nic";
#address-cells = <1>;
#size-cells = <1>;
reboot@c {
compatible = "syscon-reboot";
reg = <0x0c 0x4>;
value = <0x01>;
};
i2c@36c {
compatible = "realtek,rtl9301-i2c";
reg = <0x36c 0x14>;
#address-cells = <1>;
#size-cells = <0>;
i2c@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
gpio@20 {
compatible = "nxp,pca9555";
gpio-controller;
#gpio-cells = <2>;
reg = <0x20>;
};
};
i2c@2 {
reg = <2>;
#address-cells = <1>;
#size-cells = <0>;
gpio@20 {
compatible = "nxp,pca9555";
gpio-controller;
#gpio-cells = <2>;
reg = <0x20>;
};
};
};
i2c@388 {
compatible = "realtek,rtl9301-i2c";
reg = <0x388 0x14>;
#address-cells = <1>;
#size-cells = <0>;
i2c@7 {
reg = <7>;
#address-cells = <1>;
#size-cells = <0>;
gpio@20 {
compatible = "nxp,pca9555";
gpio-controller;
#gpio-cells = <2>;
reg = <0x20>;
};
};
};
mdio-controller@ca00 {
compatible = "realtek,rtl9301-mdio";
reg = <0xca00 0x200>;
#address-cells = <1>;
#size-cells = <0>;
mdio-bus@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
phy1: ethernet-phy@0 {
reg = <0>;
};
};
mdio-bus@1 {
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
phy2: ethernet-phy@0 {
reg = <0>;
};
};
};
ethernet-ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
phy-handle = <&phy1>;
};
port@1 {
reg = <1>;
phy-handle = <&phy2>;
};
};
};