Message ID | 20190620134748.17866-1-megous@megous.com (mailing list archive) |
---|---|
Headers | show |
Series | Add support for Orange Pi 3 | expand |
Hi! Dne četrtek, 20. junij 2019 ob 15:47:42 CEST je megous via linux-sunxi napisal(a): > From: Ondrej Jirman <megous@megous.com> > > 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. 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(-)
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@megous.com> > > > > 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(-) > > > >
On Thu, Jun 20, 2019 at 03:47:42PM +0200, verejna wrote: > From: Ondrej Jirman <megous@megous.com> > > This series implements support for Xunlong Orange Pi 3 board. > > - ethernet support (patches 1-3) > - 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. Other theory to test is that the PHY requires two power supplies to be enabled at the same time, and during reboot one of them (one controlled via GPIO) may be turned off, and ALDO2 controlled by AXP805 may not. It should be possible to turn off ALDO2 in u-boot via CONFIG_AXP_ALDO2_VOLT=0 (You may need to enable CONFIG_AXP809_POWER and other options too, since it seems AXP805 support is not enabled for orange pi 3 in u-boot) regards, o. > > 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(-) > > -- > 2.22.0 > > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
From: megous@megous.com Date: Thu, 20 Jun 2019 15:47:42 +0200 > From: Ondrej Jirman <megous@megous.com> > > This series implements support for Xunlong Orange Pi 3 board. > > - ethernet support (patches 1-3) > - 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. This is a mixture of networking and non-networking changes so it really can't go through my tree. I wonder how you expect this series to be merged? Thanks.
On Mon, Jun 24, 2019 at 10:29:27AM -0700, David Miller wrote: > From: megous@megous.com > Date: Thu, 20 Jun 2019 15:47:42 +0200 > > > From: Ondrej Jirman <megous@megous.com> > > > > This series implements support for Xunlong Orange Pi 3 board. > > > > - ethernet support (patches 1-3) > > - 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. > > This is a mixture of networking and non-networking changes so it really > can't go through my tree. > > I wonder how you expect this series to be merged? > > Thanks. This series was even longer before, with patches all around for various maintainers. I'd expect that relevant maintainers pick the range of patches meant for them. I don't know who's exactly responsible for what, but I think, this should work: - 2 stmmac patches should go together via some networking tree (is there something specific for stmmac?) - all DTS patches should go via sunxi - hdmi patches via some drm tree thank you and regards, o.
From: Ondřej Jirman <megous@megous.com> Date: Mon, 24 Jun 2019 19:46:37 +0200 > This series was even longer before, with patches all around for various > maintainers. I'd expect that relevant maintainers pick the range of patches > meant for them. I don't know who's exactly responsible for what, but I think, > this should work: > > - 2 stmmac patches should go together via some networking tree (is there > something specific for stmmac?) > - all DTS patches should go via sunxi > - hdmi patches via some drm tree Thank you. So I'll merge the first two patches that touch the stmmac driver via my net-next tree.
On Mon, Jun 24, 2019 at 01:24:56PM -0700, David Miller wrote: > From: Ondřej Jirman <megous@megous.com> > Date: Mon, 24 Jun 2019 19:46:37 +0200 > > > This series was even longer before, with patches all around for various > > maintainers. I'd expect that relevant maintainers pick the range of patches > > meant for them. I don't know who's exactly responsible for what, but I think, > > this should work: > > > > - 2 stmmac patches should go together via some networking tree (is there > > something specific for stmmac?) > > - all DTS patches should go via sunxi > > - hdmi patches via some drm tree > > Thank you. So I'll merge the first two patches that touch the stmmac > driver via my net-next tree. Thank you. regards, Ondrej
From: Ondrej Jirman <megous@megous.com> This series implements support for Xunlong Orange Pi 3 board. - ethernet support (patches 1-3) - 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(-)