Re: [linux-sunxi] [PATCH v7 0/6] Add support for Orange Pi 3

From: OndÅej Jirman
Date: Thu Jun 20 2019 - 12:34:41 EST


Hi Jernej,

On Thu, Jun 20, 2019 at 05:53:58PM +0200, Jernej Åkrabec wrote:
> Hi!
>
> Dne Äetrtek, 20. junij 2019 ob 15:47:42 CEST je megous via linux-sunxi
> napisal(a):
> > From: Ondrej Jirman <megous@xxxxxxxxxx>
> >
> > This series implements support for Xunlong Orange Pi 3 board.
> >
> > - ethernet support (patches 1-3)
>
> Correct me if I'm wrong, but patches 1-2 aren't strictly necessary for
> OrangePi 3, right? H6 DTSI already has emac node with dual compatible (H6 and
> A64) and since OrangePi 3 uses gigabit ethernet, quirk introduced by patches
> 1-2 are not needed.

I've checked with u-boot and md.l 0x03000030 (syscon_field) and the actual
default value there on cold boot is 0x58000, just like on H3.

H3_EPHY_SELECT is BIT(15)

That means that those patches (1 and 2) are both doing the same thing, basicaly.
H3_EPHY_SELECT bit needs to be cleared, and it is cleared either explicitly, or
via default_syscon_value = 0x50000. It's also cleared incidentally by using
emac_variant_a64, because it has default_syscon_value set to 0.

Meaning of those remaining set bits on H6[1] are the same as on H3. Bit 16 is
SHUTDOWN (on 1) and bit 18 is CLK_SEL. At least SHUTDOWN bit should be kept
high, as it keeps the EPHY shut down. Normally that would be ensured by the
code, but only if soc_has_internal_phy is true, which it is not for
emac_variant_a64.

Thus the patch adds the emac_variant_h6 with a different default_syscon_value
from A64.

Dose the SHUTDOWN bit matter on H6? I don't know. I'm just trying to keep the
default values of these bits unchanged. Maybe it would be nicer to have
default_syscon_value be 0x58000 on H6, to avoid the boot warning.

dwmac-sun8i 5020000.ethernet: Current syscon value is not the default 58000 (expect 50000)

The same warning is there with A64 compatible (with "expect 0").

[1] See page 238 in H6 manual.

regards,
o.

> However, it is nice to have this 100 Mbit fix, because most STB DTS will need
> it.
>
> Best regards,
> Jernej
>
> > - HDMI support (patches 4-6)
> >
> > For some people, ethernet doesn't work after reboot (but works on cold
> > boot), when the stmmac driver is built into the kernel. It works when
> > the driver is built as a module. It's either some timing issue, or power
> > supply issue or a combination of both. Module build induces a power
> > cycling of the phy.
> >
> > I encourage people with this issue, to build the driver into the kernel,
> > and try to alter the reset timings for the phy in DTS or
> > startup-delay-us and report the findings.
> >
> >
> > Please take a look.
> >
> > thank you and regards,
> > Ondrej Jirman
> >
> >
> > Changes in v7:
> > - dropped stored reference to connector_pdev as suggested by Jernej
> > - added forgotten dt-bindings reviewed-by tag
> >
> > Changes in v6:
> > - added dt-bindings reviewed-by tag
> > - fix wording in stmmac commit (as suggested by Sergei)
> >
> > Changes in v5:
> > - dropped already applied patches (pinctrl patches, mmc1 pinconf patch)
> > - rename GMAC-3V3 -> GMAC-3V to match the schematic (Jagan)
> > - changed hdmi-connector's ddc-supply property to ddc-en-gpios
> > (Rob Herring)
> >
> > Changes in v4:
> > - fix checkpatch warnings/style issues
> > - use enum in struct sunxi_desc_function for io_bias_cfg_variant
> > - collected acked-by's
> > - fix compile error in drivers/pinctrl/sunxi/pinctrl-sun9i-a80-r.c:156
> > caused by missing conversion from has_io_bias_cfg struct member
> > (I've kept the acked-by, because it's a trivial change, but feel free
> > to object.) (reported by Martin A. on github)
> > I did not have A80 pinctrl enabled for some reason, so I did not catch
> > this sooner.
> > - dropped brcm firmware patch (was already applied)
> > - dropped the wifi dts patch (will re-send after H6 RTC gets merged,
> > along with bluetooth support, in a separate series)
> >
> > Changes in v3:
> > - dropped already applied patches
> > - changed pinctrl I/O bias selection constants to enum and renamed
> > - added /omit-if-no-ref/ to mmc1_pins
> > - made mmc1_pins default pinconf for mmc1 in H6 dtsi
> > - move ddc-supply to HDMI connector node, updated patch descriptions,
> > changed dt-bindings docs
> >
> > Changes in v2:
> > - added dt-bindings documentation for the board's compatible string
> > (suggested by Clement)
> > - addressed checkpatch warnings and code formatting issues (on Maxime's
> > suggestions)
> > - stmmac: dropped useless parenthesis, reworded description of the patch
> > (suggested by Sergei)
> > - drop useles dev_info() about the selected io bias voltage
> > - docummented io voltage bias selection variant macros
> > - wifi: marked WiFi DTS patch and realted mmc1_pins as "DO NOT MERGE",
> > because wifi depends on H6 RTC support that's not merged yet (suggested
> > by Clement)
> > - added missing signed-of-bys
> > - changed &usb2otg dr_mode to otg, and added a note about VBUS
> > - improved wording of HDMI driver's DDC power supply patch
> >
> > Icenowy Zheng (2):
> > net: stmmac: sun8i: add support for Allwinner H6 EMAC
> > net: stmmac: sun8i: force select external PHY when no internal one
> >
> > Ondrej Jirman (4):
> > arm64: dts: allwinner: orange-pi-3: Enable ethernet
> > dt-bindings: display: hdmi-connector: Support DDC bus enable
> > drm: sun4i: Add support for enabling DDC I2C bus to sun8i_dw_hdmi glue
> > arm64: dts: allwinner: orange-pi-3: Enable HDMI output
> >
> > .../display/connector/hdmi-connector.txt | 1 +
> > .../dts/allwinner/sun50i-h6-orangepi-3.dts | 70 +++++++++++++++++++
> > drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c | 54 ++++++++++++--
> > drivers/gpu/drm/sun4i/sun8i_dw_hdmi.h | 2 +
> > .../net/ethernet/stmicro/stmmac/dwmac-sun8i.c | 21 ++++++
> > 5 files changed, 144 insertions(+), 4 deletions(-)
>
>
>
>