mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-27 05:49:33 +07:00
10d7fac4c5
The current cpsw usage for cpsw-phy-sel is undocumented but is used for all the boards using cpsw. And cpsw-phy-sel is not really a child of the cpsw device, it lives in the system control module instead. Let's document the existing usage, and improve it a bit where we prefer to use a phandle instead of a child device for it. That way we can properly describe the hardware in dts files for things like genpd. Cc: devicetree@vger.kernel.org Cc: Andrew Lunn <andrew@lunn.ch> Cc: Grygorii Strashko <grygorii.strashko@ti.com> Cc: Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Murali Karicheri <m-karicheri2@ti.com> Cc: Rob Herring <robh+dt@kernel.org> Signed-off-by: Tony Lindgren <tony@atomide.com> Signed-off-by: David S. Miller <davem@davemloft.net>
125 lines
4.1 KiB
Plaintext
125 lines
4.1 KiB
Plaintext
TI SoC Ethernet Switch Controller Device Tree Bindings
|
|
------------------------------------------------------
|
|
|
|
Required properties:
|
|
- compatible : Should be one of the below:-
|
|
"ti,cpsw" for backward compatible
|
|
"ti,am335x-cpsw" for AM335x controllers
|
|
"ti,am4372-cpsw" for AM437x controllers
|
|
"ti,dra7-cpsw" for DRA7x controllers
|
|
- reg : physical base address and size of the cpsw
|
|
registers map
|
|
- interrupts : property with a value describing the interrupt
|
|
number
|
|
- cpdma_channels : Specifies number of channels in CPDMA
|
|
- ale_entries : Specifies No of entries ALE can hold
|
|
- bd_ram_size : Specifies internal descriptor RAM size
|
|
- mac_control : Specifies Default MAC control register content
|
|
for the specific platform
|
|
- slaves : Specifies number for slaves
|
|
- active_slave : Specifies the slave to use for time stamping,
|
|
ethtool and SIOCGMIIPHY
|
|
- cpsw-phy-sel : Specifies the phandle to the CPSW phy mode selection
|
|
device. See also cpsw-phy-sel.txt for it's binding.
|
|
Note that in legacy cases cpsw-phy-sel may be
|
|
a child device instead of a phandle.
|
|
|
|
Optional properties:
|
|
- ti,hwmods : Must be "cpgmac0"
|
|
- dual_emac : Specifies Switch to act as Dual EMAC
|
|
- syscon : Phandle to the system control device node, which is
|
|
the control module device of the am33x
|
|
- mode-gpios : Should be added if one/multiple gpio lines are
|
|
required to be driven so that cpsw data lines
|
|
can be connected to the phy via selective mux.
|
|
For example in dra72x-evm, pcf gpio has to be
|
|
driven low so that cpsw slave 0 and phy data
|
|
lines are connected via mux.
|
|
- cpts_clock_mult : Numerator to convert input clock ticks into nanoseconds
|
|
- cpts_clock_shift : Denominator to convert input clock ticks into nanoseconds
|
|
Mult and shift will be calculated basing on CPTS
|
|
rftclk frequency if both cpts_clock_shift and
|
|
cpts_clock_mult properties are not provided.
|
|
|
|
Slave Properties:
|
|
Required properties:
|
|
- phy-mode : See ethernet.txt file in the same directory
|
|
|
|
Optional properties:
|
|
- dual_emac_res_vlan : Specifies VID to be used to segregate the ports
|
|
- mac-address : See ethernet.txt file in the same directory
|
|
- phy_id : Specifies slave phy id (deprecated, use phy-handle)
|
|
- phy-handle : See ethernet.txt file in the same directory
|
|
|
|
Slave sub-nodes:
|
|
- fixed-link : See fixed-link.txt file in the same directory
|
|
|
|
Note: Exactly one of phy_id, phy-handle, or fixed-link must be specified.
|
|
|
|
Note: "ti,hwmods" field is used to fetch the base address and irq
|
|
resources from TI, omap hwmod data base during device registration.
|
|
Future plan is to migrate hwmod data base contents into device tree
|
|
blob so that, all the required data will be used from device tree dts
|
|
file.
|
|
|
|
Examples:
|
|
|
|
mac: ethernet@4a100000 {
|
|
compatible = "ti,cpsw";
|
|
reg = <0x4A100000 0x1000>;
|
|
interrupts = <55 0x4>;
|
|
interrupt-parent = <&intc>;
|
|
cpdma_channels = <8>;
|
|
ale_entries = <1024>;
|
|
bd_ram_size = <0x2000>;
|
|
rx_descs = <64>;
|
|
mac_control = <0x20>;
|
|
slaves = <2>;
|
|
active_slave = <0>;
|
|
cpts_clock_mult = <0x80000000>;
|
|
cpts_clock_shift = <29>;
|
|
syscon = <&cm>;
|
|
cpsw-phy-sel = <&phy_sel>;
|
|
cpsw_emac0: slave@0 {
|
|
phy_id = <&davinci_mdio>, <0>;
|
|
phy-mode = "rgmii-txid";
|
|
/* Filled in by U-Boot */
|
|
mac-address = [ 00 00 00 00 00 00 ];
|
|
};
|
|
cpsw_emac1: slave@1 {
|
|
phy_id = <&davinci_mdio>, <1>;
|
|
phy-mode = "rgmii-txid";
|
|
/* Filled in by U-Boot */
|
|
mac-address = [ 00 00 00 00 00 00 ];
|
|
};
|
|
};
|
|
|
|
(or)
|
|
mac: ethernet@4a100000 {
|
|
compatible = "ti,cpsw";
|
|
ti,hwmods = "cpgmac0";
|
|
cpdma_channels = <8>;
|
|
ale_entries = <1024>;
|
|
bd_ram_size = <0x2000>;
|
|
rx_descs = <64>;
|
|
mac_control = <0x20>;
|
|
slaves = <2>;
|
|
active_slave = <0>;
|
|
cpts_clock_mult = <0x80000000>;
|
|
cpts_clock_shift = <29>;
|
|
syscon = <&cm>;
|
|
cpsw-phy-sel = <&phy_sel>;
|
|
cpsw_emac0: slave@0 {
|
|
phy_id = <&davinci_mdio>, <0>;
|
|
phy-mode = "rgmii-txid";
|
|
/* Filled in by U-Boot */
|
|
mac-address = [ 00 00 00 00 00 00 ];
|
|
};
|
|
cpsw_emac1: slave@1 {
|
|
phy_id = <&davinci_mdio>, <1>;
|
|
phy-mode = "rgmii-txid";
|
|
/* Filled in by U-Boot */
|
|
mac-address = [ 00 00 00 00 00 00 ];
|
|
};
|
|
};
|