All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vladimir Oltean <olteanv@gmail.com>
To: DENG Qingfang <dqfext@gmail.com>
Cc: Florian Fainelli <f.fainelli@gmail.com>,
	Andrew Lunn <andrew@lunn.ch>, netdev <netdev@vger.kernel.org>,
	"moderated list:ARM/Mediatek SoC support" 
	<linux-mediatek@lists.infradead.org>,
	Sean Wang <sean.wang@mediatek.com>,
	Landen Chao <Landen.Chao@mediatek.com>,
	Vivien Didelot <vivien.didelot@gmail.com>,
	"David S . Miller" <davem@davemloft.net>,
	Jakub Kicinski <kuba@kernel.org>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	Russell King <linux@armlinux.org.uk>,
	Greg Ungerer <gerg@kernel.org>,
	Rene van Dorst <opensource@vdorst.com>,
	John Crispin <john@phrozen.org>
Subject: Re: [RFC PATCH net-next] net: dsa: mt7530: rename MT7621 compatible
Date: Sun, 20 Dec 2020 09:49:36 +0200	[thread overview]
Message-ID: <20201220074936.ic2mtta7ihg7n3or@skbuf> (raw)
In-Reply-To: <CALW65jYtW7EEnXuj2dGSDwYC=3sBLCP0Q9J=tMozkrP6W0gq0w@mail.gmail.com>

On Sun, Dec 20, 2020 at 12:48:08PM +0800, DENG Qingfang wrote:
> Hi Vladimir,
> 
> On Sun, Dec 20, 2020 at 3:48 AM Vladimir Oltean <olteanv@gmail.com> wrote:
> >
> > Hi Andrew, Florian,
> >
> > On Sat, Dec 19, 2020 at 09:07:13AM -0800, Florian Fainelli wrote:
> > > On 12/19/2020 8:26 AM, Andrew Lunn wrote:
> > > >> --- a/drivers/net/dsa/mt7530.c
> > > >> +++ b/drivers/net/dsa/mt7530.c
> > > >> @@ -2688,7 +2688,7 @@ static const struct mt753x_info mt753x_table[] = {
> > > >>  };
> > > >>
> > > >>  static const struct of_device_id mt7530_of_match[] = {
> > > >> -  { .compatible = "mediatek,mt7621", .data = &mt753x_table[ID_MT7621], },
> > > >> +  { .compatible = "mediatek,mt7621-gsw", .data = &mt753x_table[ID_MT7621], },
> > > >>    { .compatible = "mediatek,mt7530", .data = &mt753x_table[ID_MT7530], },
> > > >>    { .compatible = "mediatek,mt7531", .data = &mt753x_table[ID_MT7531], },
> > > >>    { /* sentinel */ },
> > > >
> > > > This will break backwards compatibility with existing DT blobs. You
> > > > need to keep the old "mediatek,mt7621", but please add a comment that
> > > > it is deprecated.
> > >
> > > Besides, adding -gsw would make it inconsistent with the existing
> > > matching compatible strings. While it's not ideal to have the same
> > > top-level SoC compatible and having another sub-node within that SoC's
> > > DTS have the same compatible, given this would be break backwards
> > > compatibility, cannot you stay with what is defined today?
> >
> > The MT7621 device tree is in staging. I suppose that some amount of
> > breaking changes could be tolerated?
> >
> > But Qingfang, I'm confused when looking at drivers/staging/mt7621-dts/mt7621.dtsi.
> >
> > /ethernet@1e100000/mdio-bus {
> >         switch0: switch0@0 {
> >                 compatible = "mediatek,mt7621";
> >                 #address-cells = <1>;
> >                 #size-cells = <0>;
> >                 reg = <0>;
> >                 mediatek,mcm;
> >                 resets = <&rstctrl 2>;
> >                 reset-names = "mcm";
> >
> >                 ports {
> >                         #address-cells = <1>;
> >                         #size-cells = <0>;
> >                         reg = <0>;
> >                         port@0 {
> >                                 status = "off";
> >                                 reg = <0>;
> >                                 label = "lan0";
> >                         };
> >                         port@1 {
> >                                 status = "off";
> >                                 reg = <1>;
> >                                 label = "lan1";
> >                         };
> >                         port@2 {
> >                                 status = "off";
> >                                 reg = <2>;
> >                                 label = "lan2";
> >                         };
> >                         port@3 {
> >                                 status = "off";
> >                                 reg = <3>;
> >                                 label = "lan3";
> >                         };
> >                         port@4 {
> >                                 status = "off";
> >                                 reg = <4>;
> >                                 label = "lan4";
> >                         };
> >                         port@6 {
> >                                 reg = <6>;
> >                                 label = "cpu";
> >                                 ethernet = <&gmac0>;
> >                                 phy-mode = "trgmii";
> >                                 fixed-link {
> >                                         speed = <1000>;
> >                                         full-duplex;
> >                                 };
> >                         };
> >                 };
> >         };
> > };
> >
> > / {
> >         gsw: gsw@1e110000 {
> >                 compatible = "mediatek,mt7621-gsw";
> >                 reg = <0x1e110000 0x8000>;
> >                 interrupt-parent = <&gic>;
> >                 interrupts = <GIC_SHARED 23 IRQ_TYPE_LEVEL_HIGH>;
> >         };
> > };
> >
> > What is the platform device at the memory address 1e110000?
> > There is no driver for it. The documentation only has me even more
> > confused:
> >
> > Mediatek Gigabit Switch
> > =======================
> >
> > The mediatek gigabit switch can be found on Mediatek SoCs (mt7620, mt7621).
> >
> > Required properties:
> > - compatible: Should be "mediatek,mt7620-gsw" or "mediatek,mt7621-gsw"
> > - reg: Address and length of the register set for the device
> > - interrupts: Should contain the gigabit switches interrupt
> > - resets: Should contain the gigabit switches resets
> > - reset-names: Should contain the reset names "gsw"
> >
> > Example:
> >
> > gsw@10110000 {
> >         compatible = "ralink,mt7620-gsw";     <- notice how even the example is bad and inconsistent
> >         reg = <0x10110000 8000>;
> >
> >         resets = <&rstctrl 23>;
> >         reset-names = "gsw";
> >
> >         interrupt-parent = <&intc>;
> >         interrupts = <17>;
> > };
> >
> > Does the MT7621 contain two Ethernet switches, one accessed over MMIO
> > and another over MDIO? Or is it the same switch? I don't understand.
> > What is the relationship between the new compatible that you're
> > proposing, Qingfang, and the existing device tree bindings?
> 
> The current dtsi is copied from OpenWrt, so the existing "mt7621-gsw"
> / "mt7620-gsw" compatible is for their swconfig driver.
> MT7621 has only one switch, accessed over MDIO, so the reg property
> has no effect.
> 
> Should this patch be accepted, the existing gsw nodes can be dropped.

But still, what is at memory address 0x1e110000, if the switch is
accessed over MDIO?

WARNING: multiple messages have this Message-ID (diff)
From: Vladimir Oltean <olteanv@gmail.com>
To: DENG Qingfang <dqfext@gmail.com>
Cc: Andrew Lunn <andrew@lunn.ch>,
	Landen Chao <Landen.Chao@mediatek.com>,
	Florian Fainelli <f.fainelli@gmail.com>,
	netdev <netdev@vger.kernel.org>,
	Sean Wang <sean.wang@mediatek.com>,
	Russell King <linux@armlinux.org.uk>,
	"David S . Miller" <davem@davemloft.net>,
	Rene van Dorst <opensource@vdorst.com>,
	Greg Ungerer <gerg@kernel.org>,
	"moderated list:ARM/Mediatek SoC support"
	<linux-mediatek@lists.infradead.org>,
	John Crispin <john@phrozen.org>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	Jakub Kicinski <kuba@kernel.org>,
	Vivien Didelot <vivien.didelot@gmail.com>
Subject: Re: [RFC PATCH net-next] net: dsa: mt7530: rename MT7621 compatible
Date: Sun, 20 Dec 2020 09:49:36 +0200	[thread overview]
Message-ID: <20201220074936.ic2mtta7ihg7n3or@skbuf> (raw)
In-Reply-To: <CALW65jYtW7EEnXuj2dGSDwYC=3sBLCP0Q9J=tMozkrP6W0gq0w@mail.gmail.com>

On Sun, Dec 20, 2020 at 12:48:08PM +0800, DENG Qingfang wrote:
> Hi Vladimir,
> 
> On Sun, Dec 20, 2020 at 3:48 AM Vladimir Oltean <olteanv@gmail.com> wrote:
> >
> > Hi Andrew, Florian,
> >
> > On Sat, Dec 19, 2020 at 09:07:13AM -0800, Florian Fainelli wrote:
> > > On 12/19/2020 8:26 AM, Andrew Lunn wrote:
> > > >> --- a/drivers/net/dsa/mt7530.c
> > > >> +++ b/drivers/net/dsa/mt7530.c
> > > >> @@ -2688,7 +2688,7 @@ static const struct mt753x_info mt753x_table[] = {
> > > >>  };
> > > >>
> > > >>  static const struct of_device_id mt7530_of_match[] = {
> > > >> -  { .compatible = "mediatek,mt7621", .data = &mt753x_table[ID_MT7621], },
> > > >> +  { .compatible = "mediatek,mt7621-gsw", .data = &mt753x_table[ID_MT7621], },
> > > >>    { .compatible = "mediatek,mt7530", .data = &mt753x_table[ID_MT7530], },
> > > >>    { .compatible = "mediatek,mt7531", .data = &mt753x_table[ID_MT7531], },
> > > >>    { /* sentinel */ },
> > > >
> > > > This will break backwards compatibility with existing DT blobs. You
> > > > need to keep the old "mediatek,mt7621", but please add a comment that
> > > > it is deprecated.
> > >
> > > Besides, adding -gsw would make it inconsistent with the existing
> > > matching compatible strings. While it's not ideal to have the same
> > > top-level SoC compatible and having another sub-node within that SoC's
> > > DTS have the same compatible, given this would be break backwards
> > > compatibility, cannot you stay with what is defined today?
> >
> > The MT7621 device tree is in staging. I suppose that some amount of
> > breaking changes could be tolerated?
> >
> > But Qingfang, I'm confused when looking at drivers/staging/mt7621-dts/mt7621.dtsi.
> >
> > /ethernet@1e100000/mdio-bus {
> >         switch0: switch0@0 {
> >                 compatible = "mediatek,mt7621";
> >                 #address-cells = <1>;
> >                 #size-cells = <0>;
> >                 reg = <0>;
> >                 mediatek,mcm;
> >                 resets = <&rstctrl 2>;
> >                 reset-names = "mcm";
> >
> >                 ports {
> >                         #address-cells = <1>;
> >                         #size-cells = <0>;
> >                         reg = <0>;
> >                         port@0 {
> >                                 status = "off";
> >                                 reg = <0>;
> >                                 label = "lan0";
> >                         };
> >                         port@1 {
> >                                 status = "off";
> >                                 reg = <1>;
> >                                 label = "lan1";
> >                         };
> >                         port@2 {
> >                                 status = "off";
> >                                 reg = <2>;
> >                                 label = "lan2";
> >                         };
> >                         port@3 {
> >                                 status = "off";
> >                                 reg = <3>;
> >                                 label = "lan3";
> >                         };
> >                         port@4 {
> >                                 status = "off";
> >                                 reg = <4>;
> >                                 label = "lan4";
> >                         };
> >                         port@6 {
> >                                 reg = <6>;
> >                                 label = "cpu";
> >                                 ethernet = <&gmac0>;
> >                                 phy-mode = "trgmii";
> >                                 fixed-link {
> >                                         speed = <1000>;
> >                                         full-duplex;
> >                                 };
> >                         };
> >                 };
> >         };
> > };
> >
> > / {
> >         gsw: gsw@1e110000 {
> >                 compatible = "mediatek,mt7621-gsw";
> >                 reg = <0x1e110000 0x8000>;
> >                 interrupt-parent = <&gic>;
> >                 interrupts = <GIC_SHARED 23 IRQ_TYPE_LEVEL_HIGH>;
> >         };
> > };
> >
> > What is the platform device at the memory address 1e110000?
> > There is no driver for it. The documentation only has me even more
> > confused:
> >
> > Mediatek Gigabit Switch
> > =======================
> >
> > The mediatek gigabit switch can be found on Mediatek SoCs (mt7620, mt7621).
> >
> > Required properties:
> > - compatible: Should be "mediatek,mt7620-gsw" or "mediatek,mt7621-gsw"
> > - reg: Address and length of the register set for the device
> > - interrupts: Should contain the gigabit switches interrupt
> > - resets: Should contain the gigabit switches resets
> > - reset-names: Should contain the reset names "gsw"
> >
> > Example:
> >
> > gsw@10110000 {
> >         compatible = "ralink,mt7620-gsw";     <- notice how even the example is bad and inconsistent
> >         reg = <0x10110000 8000>;
> >
> >         resets = <&rstctrl 23>;
> >         reset-names = "gsw";
> >
> >         interrupt-parent = <&intc>;
> >         interrupts = <17>;
> > };
> >
> > Does the MT7621 contain two Ethernet switches, one accessed over MMIO
> > and another over MDIO? Or is it the same switch? I don't understand.
> > What is the relationship between the new compatible that you're
> > proposing, Qingfang, and the existing device tree bindings?
> 
> The current dtsi is copied from OpenWrt, so the existing "mt7621-gsw"
> / "mt7620-gsw" compatible is for their swconfig driver.
> MT7621 has only one switch, accessed over MDIO, so the reg property
> has no effect.
> 
> Should this patch be accepted, the existing gsw nodes can be dropped.

But still, what is at memory address 0x1e110000, if the switch is
accessed over MDIO?

_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek

  reply	other threads:[~2020-12-20  7:50 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-19 16:21 [RFC PATCH net-next] net: dsa: mt7530: rename MT7621 compatible DENG Qingfang
2020-12-19 16:21 ` DENG Qingfang
2020-12-19 16:26 ` Andrew Lunn
2020-12-19 16:26   ` Andrew Lunn
2020-12-19 17:07   ` Florian Fainelli
2020-12-19 17:07     ` Florian Fainelli
2020-12-19 19:48     ` Vladimir Oltean
2020-12-19 19:48       ` Vladimir Oltean
2020-12-20  4:48       ` DENG Qingfang
2020-12-20  4:48         ` DENG Qingfang
2020-12-20  7:49         ` Vladimir Oltean [this message]
2020-12-20  7:49           ` Vladimir Oltean
2020-12-20  8:36           ` DENG Qingfang
2020-12-20  8:36             ` DENG Qingfang
2020-12-20  9:01             ` Vladimir Oltean
2020-12-20  9:01               ` Vladimir Oltean
2020-12-21  7:32     ` Chuanhong Guo
2020-12-21  7:32       ` Chuanhong Guo
2020-12-20  9:07 ` Vladimir Oltean
2020-12-20  9:07   ` Vladimir Oltean

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201220074936.ic2mtta7ihg7n3or@skbuf \
    --to=olteanv@gmail.com \
    --cc=Landen.Chao@mediatek.com \
    --cc=andrew@lunn.ch \
    --cc=davem@davemloft.net \
    --cc=dqfext@gmail.com \
    --cc=f.fainelli@gmail.com \
    --cc=gerg@kernel.org \
    --cc=john@phrozen.org \
    --cc=kuba@kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=linux@armlinux.org.uk \
    --cc=matthias.bgg@gmail.com \
    --cc=netdev@vger.kernel.org \
    --cc=opensource@vdorst.com \
    --cc=sean.wang@mediatek.com \
    --cc=vivien.didelot@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.