mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-08-31 22:23:05 +00:00

Per the RMII specification, the REF_CLK is sourced from MAC to PHY or from an external source. But for TJA11xx PHYs, they support to output a 50MHz RMII reference clock on REF_CLK pin. Previously the "nxp,rmii-refclk-in" was added to indicate that in RMII mode, if this property present, REF_CLK is input to the PHY, otherwise it is output. This seems inappropriate now. Because according to the RMII specification, the REF_CLK is originally input, so there is no need to add an additional "nxp,rmii-refclk-in" property to declare that REF_CLK is input. Unfortunately, because the "nxp,rmii-refclk-in" property has been added for a while, and we cannot confirm which DTS use the TJA1100 and TJA1101 PHYs, changing it to switch polarity will cause an ABI break. But fortunately, this property is only valid for TJA1100 and TJA1101. For TJA1103/TJA1104/TJA1120/TJA1121 PHYs, this property is invalid because they use the nxp-c45-tja11xx driver, which is a different driver from TJA1100/TJA1101. Therefore, for PHYs using nxp-c45-tja11xx driver, add "nxp,rmii-refclk-out" property to support outputting RMII reference clock on REF_CLK pin. Signed-off-by: Wei Fang <wei.fang@nxp.com> Reviewed-by: Rob Herring (Arm) <robh@kernel.org> Signed-off-by: Paolo Abeni <pabeni@redhat.com>
128 lines
3.5 KiB
YAML
128 lines
3.5 KiB
YAML
# SPDX-License-Identifier: GPL-2.0+
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/net/nxp,tja11xx.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: NXP TJA11xx PHY
|
|
|
|
maintainers:
|
|
- Andrew Lunn <andrew@lunn.ch>
|
|
- Florian Fainelli <f.fainelli@gmail.com>
|
|
- Heiner Kallweit <hkallweit1@gmail.com>
|
|
|
|
description:
|
|
Bindings for NXP TJA11xx automotive PHYs
|
|
|
|
properties:
|
|
compatible:
|
|
enum:
|
|
- ethernet-phy-id0180.dc40
|
|
- ethernet-phy-id0180.dc41
|
|
- ethernet-phy-id0180.dc48
|
|
- ethernet-phy-id0180.dd00
|
|
- ethernet-phy-id0180.dd01
|
|
- ethernet-phy-id0180.dd02
|
|
- ethernet-phy-id0180.dc80
|
|
- ethernet-phy-id0180.dc82
|
|
- ethernet-phy-id001b.b010
|
|
- ethernet-phy-id001b.b013
|
|
- ethernet-phy-id001b.b030
|
|
- ethernet-phy-id001b.b031
|
|
|
|
allOf:
|
|
- $ref: ethernet-phy.yaml#
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- ethernet-phy-id0180.dc40
|
|
- ethernet-phy-id0180.dc41
|
|
- ethernet-phy-id0180.dc48
|
|
- ethernet-phy-id0180.dd00
|
|
- ethernet-phy-id0180.dd01
|
|
- ethernet-phy-id0180.dd02
|
|
|
|
then:
|
|
properties:
|
|
nxp,rmii-refclk-in:
|
|
type: boolean
|
|
description: |
|
|
The REF_CLK is provided for both transmitted and received data
|
|
in RMII mode. This clock signal is provided by the PHY and is
|
|
typically derived from an external 25MHz crystal. Alternatively,
|
|
a 50MHz clock signal generated by an external oscillator can be
|
|
connected to pin REF_CLK. A third option is to connect a 25MHz
|
|
clock to pin CLK_IN_OUT. So, the REF_CLK should be configured
|
|
as input or output according to the actual circuit connection.
|
|
If present, indicates that the REF_CLK will be configured as
|
|
interface reference clock input when RMII mode enabled.
|
|
If not present, the REF_CLK will be configured as interface
|
|
reference clock output when RMII mode enabled.
|
|
Only supported on TJA1100 and TJA1101.
|
|
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- ethernet-phy-id001b.b010
|
|
- ethernet-phy-id001b.b013
|
|
- ethernet-phy-id001b.b030
|
|
- ethernet-phy-id001b.b031
|
|
|
|
then:
|
|
properties:
|
|
nxp,rmii-refclk-out:
|
|
type: boolean
|
|
description: Enable 50MHz RMII reference clock output on REF_CLK pin.
|
|
|
|
patternProperties:
|
|
"^ethernet-phy@[0-9a-f]+$":
|
|
type: object
|
|
additionalProperties: false
|
|
description: |
|
|
Some packages have multiple PHYs. Secondary PHY should be defines as
|
|
subnode of the first (parent) PHY.
|
|
|
|
properties:
|
|
reg:
|
|
minimum: 0
|
|
maximum: 31
|
|
description:
|
|
The ID number for the child PHY. Should be +1 of parent PHY.
|
|
|
|
required:
|
|
- reg
|
|
|
|
unevaluatedProperties: false
|
|
|
|
examples:
|
|
- |
|
|
mdio {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
tja1101_phy0: ethernet-phy@4 {
|
|
compatible = "ethernet-phy-id0180.dc40";
|
|
reg = <0x4>;
|
|
nxp,rmii-refclk-in;
|
|
};
|
|
};
|
|
- |
|
|
mdio {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
tja1102_phy0: ethernet-phy@4 {
|
|
reg = <0x4>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
tja1102_phy1: ethernet-phy@5 {
|
|
reg = <0x5>;
|
|
};
|
|
};
|
|
};
|