mirror of
https://github.com/torvalds/linux.git
synced 2024-12-19 17:41:29 +00:00
53b26b9bc9
This patch is to review the whole glue logic adopted on STi SoCs that was bugged. In the old glue-logic there was a lot of confusion when setup the retiming especially for STiD127 where, for example, the bits 6 and 7 (in the GMAC control register) have a different meaning of what is used for STiH4xx SoCs. So we cannot adopt the same glue for all these SoCs. Moreover, GiGa on STiD127 didn't work and, for all the SoCs, the RGMII couldn't run when the speed was 10Mbps (because the clock was not properly managed). Note that the phy clock needs to be provided by the platform as well as documented in the related binding file (updated as consequence). The old code supported too many configurations never adopted and validated. This made the code very complex to maintain and debug in case of issues. The patch simplifies all the configurations as commented in the tables inside the file and obviously it has been tested on all the boards based on the SoCs mentioned. With this patch, the dwmac-sti is also ready to support new configurations that will be available on next SoC generations. Signed-off-by: Giuseppe Cavallaro <peppe.cavallaro@st.com> Cc: Srinivas Kandagatla <srinivas.kandagatla@st.com> Signed-off-by: David S. Miller <davem@davemloft.net>
66 lines
2.4 KiB
Plaintext
66 lines
2.4 KiB
Plaintext
STMicroelectronics SoC DWMAC glue layer controller
|
|
|
|
This file documents differences between the core properties in
|
|
Documentation/devicetree/bindings/net/stmmac.txt
|
|
and what is needed on STi platforms to program the stmmac glue logic.
|
|
|
|
The device node has following properties.
|
|
|
|
Required properties:
|
|
- compatible : Can be "st,stih415-dwmac", "st,stih416-dwmac",
|
|
"st,stih407-dwmac", "st,stid127-dwmac".
|
|
- reg : Offset of the glue configuration register map in system
|
|
configuration regmap pointed by st,syscon property and size.
|
|
- st,syscon : Should be phandle to system configuration node which
|
|
encompases this glue registers.
|
|
- st,gmac_en: this is to enable the gmac into a dedicated sysctl control
|
|
register available on STiH407 SoC.
|
|
- sti-ethconf: this is the gmac glue logic register to enable the GMAC,
|
|
select among the different modes and program the clk retiming.
|
|
- pinctrl-0: pin-control for all the MII mode supported.
|
|
|
|
Optional properties:
|
|
- resets : phandle pointing to the system reset controller with correct
|
|
reset line index for ethernet reset.
|
|
- st,ext-phyclk: valid only for RMII where PHY can generate 50MHz clock or
|
|
MAC can generate it.
|
|
- st,tx-retime-src: This specifies which clk is wired up to the mac for
|
|
retimeing tx lines. This is totally board dependent and can take one of the
|
|
posssible values from "txclk", "clk_125" or "clkgen".
|
|
If not passed, the internal clock will be used by default.
|
|
- sti-ethclk: this is the phy clock.
|
|
- sti-clkconf: this is an extra sysconfig register, available in new SoCs,
|
|
to program the clk retiming.
|
|
- st,gmac_en: to enable the GMAC, this only is present in some SoCs; e.g.
|
|
STiH407.
|
|
|
|
Example:
|
|
|
|
ethernet0: dwmac@9630000 {
|
|
device_type = "network";
|
|
status = "disabled";
|
|
compatible = "st,stih407-dwmac", "snps,dwmac", "snps,dwmac-3.710";
|
|
reg = <0x9630000 0x8000>, <0x80 0x4>;
|
|
reg-names = "stmmaceth", "sti-ethconf";
|
|
|
|
st,syscon = <&syscfg_sbc_reg>;
|
|
st,gmac_en;
|
|
resets = <&softreset STIH407_ETH1_SOFTRESET>;
|
|
reset-names = "stmmaceth";
|
|
|
|
interrupts = <GIC_SPI 98 IRQ_TYPE_NONE>,
|
|
<GIC_SPI 99 IRQ_TYPE_NONE>,
|
|
<GIC_SPI 100 IRQ_TYPE_NONE>;
|
|
interrupt-names = "macirq", "eth_wake_irq", "eth_lpi";
|
|
|
|
snps,pbl = <32>;
|
|
snps,mixed-burst;
|
|
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&pinctrl_rgmii1>;
|
|
|
|
clock-names = "stmmaceth", "sti-ethclk";
|
|
clocks = <&CLK_S_C0_FLEXGEN CLK_EXT2F_A9>,
|
|
<&CLK_S_C0_FLEXGEN CLK_ETH_PHY>;
|
|
};
|