Message ID | 20210325124225.2760-1-linux.amoon@gmail.com |
---|---|
Headers | show |
Series | Amlogic Soc - Add missing ethernet mdio compatible string | expand |
On 25.03.2021 13:42, Anand Moon wrote: > On most of the Amlogic SoC I observed that Ethernet would not get > initialize when try to deploy the mainline kernel, earlier I tried to > fix this issue with by setting ethernet reset but it did not resolve > the issue see below. > resets = <&reset RESET_ETHERNET>; > reset-names = "stmmaceth"; > > After checking what was the missing with Rockchip SoC dts > I tried to add this missing compatible string and then it > started to working on my setup. > > Also I tried to fix the device tree binding to validate the changes. > > Tested this on my Odroid-N2 and Odroid-C2 (64 bit) setup. > I do not have ready Odroid C1 (32 bit) setup so please somebody test. > When working on the Odroid-C2 I did not have such a problem. And if you look at of_mdiobus_child_is_phy() and of_mdiobus_register_phy() you'll see that your change shouldn't be needed. Could you please elaborate on: - What is the exact problem you're facing? Best add a dmesg log. - Which kernel version are you using? > Best Regards > -Anand > > Anand Moon (6): > dt-bindings: net: ethernet-phy: Fix the parsing of ethernet-phy > compatible string > arm: dts: meson: Add missing ethernet phy mdio compatible string > arm64: dts: meson-gxbb: Add missing ethernet phy mimo compatible > string > arm64: dts: meson-gxl: Add missing ethernet phy mdio compatible string > arm64: dts: meson-g12: Add missing ethernet phy mdio compatible string > arm64: dts: meson-glx: Fix the ethernet phy mdio compatible string > > Documentation/devicetree/bindings/net/ethernet-phy.yaml | 6 +++--- > arch/arm/boot/dts/meson8b-ec100.dts | 1 + > arch/arm/boot/dts/meson8b-mxq.dts | 1 + > arch/arm/boot/dts/meson8b-odroidc1.dts | 1 + > arch/arm/boot/dts/meson8m2-mxiii-plus.dts | 1 + > arch/arm64/boot/dts/amlogic/meson-axg-s400.dts | 1 + > arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts | 1 + > arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi | 3 ++- > arch/arm64/boot/dts/amlogic/meson-g12b-w400.dtsi | 1 + > arch/arm64/boot/dts/amlogic/meson-gx-libretech-pc.dtsi | 1 + > arch/arm64/boot/dts/amlogic/meson-gxbb-kii-pro.dts | 1 + > arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts | 1 + > arch/arm64/boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts | 1 + > arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts | 1 + > arch/arm64/boot/dts/amlogic/meson-gxbb-p200.dts | 1 + > arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi | 1 + > arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi | 1 + > arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts | 1 + > arch/arm64/boot/dts/amlogic/meson-gxl.dtsi | 2 +- > arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts | 1 + > arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts | 1 + > arch/arm64/boot/dts/amlogic/meson-gxm-q200.dts | 1 + > arch/arm64/boot/dts/amlogic/meson-gxm-rbox-pro.dts | 1 + > arch/arm64/boot/dts/amlogic/meson-gxm-vega-s96.dts | 1 + > arch/arm64/boot/dts/amlogic/meson-khadas-vim3.dtsi | 1 + > arch/arm64/boot/dts/amlogic/meson-sm1-odroid.dtsi | 1 + > 26 files changed, 29 insertions(+), 5 deletions(-) >
On 25.03.2021 14:33, Anand Moon wrote: > Hi Andrew, > > On Thu, 25 Mar 2021 at 18:27, Andrew Lunn <andrew@lunn.ch> wrote: >> >> On Thu, Mar 25, 2021 at 12:42:20PM +0000, Anand Moon wrote: >>> Fix the parsing of check of pattern ethernet-phy-ieee802.3 used >>> by the device tree to initialize the mdio phy. >>> >>> As per the of_mdio below 2 are valid compatible string >>> "ethernet-phy-ieee802.3-c22" >>> "ethernet-phy-ieee802.3-c45" >> >> Nope, this is not the full story. Yes, you can have these compatible >> strings. But you can also use the PHY ID, >> e.g. ethernet-phy-idAAAA.BBBB, where AAAA and BBBB are what you find in >> registers 2 and 3 of the PHY. >> > > Oops I did not read the drivers/net/mdio/of_mdio.c completely. > Thanks for letting me know so in the next series, > I will try to add the below compatible string as per the description in the dts. That's not needed, typically the PHY ID is auto-detected. Before sending a new series, please describe in detail what your problem is. Simply there shouldn't be a need for such a series. As I said: e.g. Odroid-C2 worked fine for me with a mainline kernel. > > compatible = "ethernet-phy-id001c.c916", > "ethernet-phy-ieee802.3-c22"; > >>> Cc: Rob Herring <robh@kernel.org> >>> Signed-off-by: Anand Moon <linux.amoon@gmail.com> >>> --- >>> Documentation/devicetree/bindings/net/ethernet-phy.yaml | 6 +++--- >>> 1 file changed, 3 insertions(+), 3 deletions(-) >>> >>> diff --git a/Documentation/devicetree/bindings/net/ethernet-phy.yaml b/Documentation/devicetree/bindings/net/ethernet-phy.yaml >>> index 2766fe45bb98..cfc7909d3e56 100644 >>> --- a/Documentation/devicetree/bindings/net/ethernet-phy.yaml >>> +++ b/Documentation/devicetree/bindings/net/ethernet-phy.yaml >>> @@ -33,7 +33,7 @@ properties: >>> description: PHYs that implement IEEE802.3 clause 22 >>> - const: ethernet-phy-ieee802.3-c45 >>> description: PHYs that implement IEEE802.3 clause 45 >>> - - pattern: "^ethernet-phy-id[a-f0-9]{4}\\.[a-f0-9]{4}$" >>> + - pattern: "^ethernet-phy-ieee[0-9]{3}\\.[0-9][-][a-f0-9]{4}$" >> >> So here you need, in addition to, not instead of. >> >> Please test you change on for example imx6ul-14x14-evk.dtsi >> > > Yes I have gone through the test case. > >> Andrew > > - Anand >
On Thu, 25 Mar 2021 12:42:20 +0000, Anand Moon wrote: > Fix the parsing of check of pattern ethernet-phy-ieee802.3 used > by the device tree to initialize the mdio phy. > > As per the of_mdio below 2 are valid compatible string > "ethernet-phy-ieee802.3-c22" > "ethernet-phy-ieee802.3-c45" > > Cc: Rob Herring <robh@kernel.org> > Signed-off-by: Anand Moon <linux.amoon@gmail.com> > --- > Documentation/devicetree/bindings/net/ethernet-phy.yaml | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > My bot found errors running 'make dt_binding_check' on your patch: yamllint warnings/errors: dtschema/dtc warnings/errors: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/net/ethernet-phy.example.dt.yaml: ethernet-phy@0: compatible: 'oneOf' conditional failed, one must be fixed: ['ethernet-phy-id0141.0e90', 'ethernet-phy-ieee802.3-c45'] is too long Additional items are not allowed ('ethernet-phy-ieee802.3-c45' was unexpected) 'ethernet-phy-ieee802.3-c22' was expected 'ethernet-phy-ieee802.3-c45' was expected 'ethernet-phy-id0141.0e90' does not match '^ethernet-phy-ieee[0-9]{3}\\.[0-9][-][a-f0-9]{4}$' From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/net/ethernet-phy.yaml See https://patchwork.ozlabs.org/patch/1458341 This check can fail if there are any dependencies. The base for a patch series is generally the most recent rc1. If you already ran 'make dt_binding_check' and didn't see the above error(s), then make sure 'yamllint' is installed and dt-schema is up to date: pip3 install dtschema --upgrade Please check and re-submit.