All of lore.kernel.org
 help / color / mirror / Atom feed
From: Qii Wang <qii.wang@mediatek.com>
To: Nicolas Boichat <drinkcat@chromium.org>
Cc: wsa@the-dreams.de, linux-i2c@vger.kernel.org,
	devicetree@vger.kernel.org,
	linux-arm Mailing List <linux-arm-kernel@lists.infradead.org>,
	lkml <linux-kernel@vger.kernel.org>,
	"moderated list:ARM/Mediatek SoC support"
	<linux-mediatek@lists.infradead.org>,
	srv_heupstream <srv_heupstream@mediatek.com>,
	Leilk Liu <leilk.liu@mediatek.com>,
	xinping.qian@mediatek.com, liguo.zhang@mediatek.com,
	Rob Herring <robh@kernel.org>
Subject: Re: [PATCH v5 3/5] i2c: mediatek: Add arb clock in i2c driver
Date: Thu, 7 Mar 2019 12:57:57 +0800	[thread overview]
Message-ID: <1551934677.30363.55.camel@mhfsdcap03> (raw)
In-Reply-To: <CANMq1KBt7LeR=Od2LmswUSZMV_XZE+zn2LbnqU+SzywKqmDP7w@mail.gmail.com>

On Wed, 2019-03-06 at 18:49 +0800, Nicolas Boichat wrote:
> One thing I missed from Matthias' comment on v4:
> https://patchwork.kernel.org/patch/10822083/
> 
> On Wed, Mar 6, 2019 at 6:44 PM Nicolas Boichat <drinkcat@chromium.org> wrote:
> >
> > On Tue, Feb 26, 2019 at 9:11 PM Qii Wang <qii.wang@mediatek.com> wrote:
> > >
> > > When two i2c controllers are internally connected to the same
> > > GPIO pins, the arb clock is needed to ensure that the waveforms
> > > do not interfere with each other.
> > >
> > > Signed-off-by: Qii Wang <qii.wang@mediatek.com>
> >
> > Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
> >
> > > ---
> > >  drivers/i2c/busses/i2c-mt65xx.c |   25 ++++++++++++++++++++++---
> > >  1 file changed, 22 insertions(+), 3 deletions(-)
> > >
> > > diff --git a/drivers/i2c/busses/i2c-mt65xx.c b/drivers/i2c/busses/i2c-mt65xx.c
> > > index 428ac99..14d6b38 100644
> > > --- a/drivers/i2c/busses/i2c-mt65xx.c
> > > +++ b/drivers/i2c/busses/i2c-mt65xx.c
> > > @@ -35,6 +35,7 @@
> > >  #include <linux/slab.h>
> > >
> > >  #define I2C_RS_TRANSFER                        (1 << 4)
> > > +#define I2C_ARB_LOST                   (1 << 3)
> > >  #define I2C_HS_NACKERR                 (1 << 2)
> > >  #define I2C_ACKERR                     (1 << 1)
> > >  #define I2C_TRANSAC_COMP               (1 << 0)
> > > @@ -181,6 +182,7 @@ struct mtk_i2c {
> > >         struct clk *clk_main;           /* main clock for i2c bus */
> > >         struct clk *clk_dma;            /* DMA clock for i2c via DMA */
> > >         struct clk *clk_pmic;           /* PMIC clock for i2c from PMIC */
> > > +       struct clk *clk_arb;            /* Arbitrator clock for i2c */
> > >         bool have_pmic;                 /* can use i2c pins from PMIC */
> > >         bool use_push_pull;             /* IO config push-pull mode */
> > >
> > > @@ -299,8 +301,18 @@ static int mtk_i2c_clock_enable(struct mtk_i2c *i2c)
> > >                 if (ret)
> > >                         goto err_pmic;
> > >         }
> > > +
> > > +       if (i2c->clk_arb) {
> > > +               ret = clk_prepare_enable(i2c->clk_arb);
> > > +               if (ret)
> > > +                       goto err_arb;
> > > +       }
> > > +
> > >         return 0;
> > >
> > > +err_arb:
> > > +       if (i2c->have_pmic)
> > > +               clk_disable_unprepare(i2c->clk_pmic);
> > >  err_pmic:
> > >         clk_disable_unprepare(i2c->clk_main);
> > >  err_main:
> > > @@ -311,6 +323,9 @@ static int mtk_i2c_clock_enable(struct mtk_i2c *i2c)
> > >
> > >  static void mtk_i2c_clock_disable(struct mtk_i2c *i2c)
> > >  {
> > > +       if (i2c->clk_arb)
> > > +               clk_disable_unprepare(i2c->clk_arb);
> > > +
> > >         if (i2c->have_pmic)
> > >                 clk_disable_unprepare(i2c->clk_pmic);
> > >
> > > @@ -519,13 +534,13 @@ static int mtk_i2c_do_transfer(struct mtk_i2c *i2c, struct i2c_msg *msgs,
> > >
> > >         /* Clear interrupt status */
> > >         mtk_i2c_writew(i2c, restart_flag | I2C_HS_NACKERR | I2C_ACKERR |
> > > -              I2C_TRANSAC_COMP, OFFSET_INTR_STAT);
> > > +                           I2C_ARB_LOST | I2C_TRANSAC_COMP, OFFSET_INTR_STAT);
> 
> Is it ok to set I2C_ARB_LOST on _all_ SoC that this driver supports?
> If so, please at least say so in the commit message.
> 

Yes, old and new SoC have the I2C_ARB_LOST bit, but there was no need
for multi-master before, so we didn't set it up specifically, I have
test the patch on the old SoCs. I will add a note in the commit message.

> > >
> > >         mtk_i2c_writew(i2c, I2C_FIFO_ADDR_CLR, OFFSET_FIFO_ADDR_CLR);
> > >
> > >         /* Enable interrupt */
> > >         mtk_i2c_writew(i2c, restart_flag | I2C_HS_NACKERR | I2C_ACKERR |
> > > -              I2C_TRANSAC_COMP, OFFSET_INTR_MASK);
> > > +                           I2C_ARB_LOST | I2C_TRANSAC_COMP, OFFSET_INTR_MASK);
> > >
> > >         /* Set transfer and transaction len */
> > >         if (i2c->op == I2C_MASTER_WRRD) {
> > > @@ -659,7 +674,7 @@ static int mtk_i2c_do_transfer(struct mtk_i2c *i2c, struct i2c_msg *msgs,
> > >
> > >         /* Clear interrupt mask */
> > >         mtk_i2c_writew(i2c, ~(restart_flag | I2C_HS_NACKERR | I2C_ACKERR |
> > > -              I2C_TRANSAC_COMP), OFFSET_INTR_MASK);
> > > +                           I2C_ARB_LOST | I2C_TRANSAC_COMP), OFFSET_INTR_MASK);
> > >
> > >         if (i2c->op == I2C_MASTER_WR) {
> > >                 dma_unmap_single(i2c->dev, wpaddr,
> > > @@ -884,6 +899,10 @@ static int mtk_i2c_probe(struct platform_device *pdev)
> > >                 return PTR_ERR(i2c->clk_dma);
> > >         }
> > >
> > > +       i2c->clk_arb = devm_clk_get(&pdev->dev, "arb");
> > > +       if (IS_ERR(i2c->clk_arb))
> > > +               i2c->clk_arb = NULL;
> > > +
> > >         clk = i2c->clk_main;
> > >         if (i2c->have_pmic) {
> > >                 i2c->clk_pmic = devm_clk_get(&pdev->dev, "pmic");
> > > --
> > > 1.7.9.5
> > >

WARNING: multiple messages have this Message-ID (diff)
From: Qii Wang <qii.wang@mediatek.com>
To: Nicolas Boichat <drinkcat@chromium.org>
Cc: devicetree@vger.kernel.org,
	srv_heupstream <srv_heupstream@mediatek.com>,
	wsa@the-dreams.de, Leilk Liu <leilk.liu@mediatek.com>,
	xinping.qian@mediatek.com, lkml <linux-kernel@vger.kernel.org>,
	liguo.zhang@mediatek.com,
	"moderated list:ARM/Mediatek SoC support"
	<linux-mediatek@lists.infradead.org>,
	linux-i2c@vger.kernel.org, Rob Herring <robh@kernel.org>,
	linux-arm Mailing List <linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH v5 3/5] i2c: mediatek: Add arb clock in i2c driver
Date: Thu, 7 Mar 2019 12:57:57 +0800	[thread overview]
Message-ID: <1551934677.30363.55.camel@mhfsdcap03> (raw)
In-Reply-To: <CANMq1KBt7LeR=Od2LmswUSZMV_XZE+zn2LbnqU+SzywKqmDP7w@mail.gmail.com>

On Wed, 2019-03-06 at 18:49 +0800, Nicolas Boichat wrote:
> One thing I missed from Matthias' comment on v4:
> https://patchwork.kernel.org/patch/10822083/
> 
> On Wed, Mar 6, 2019 at 6:44 PM Nicolas Boichat <drinkcat@chromium.org> wrote:
> >
> > On Tue, Feb 26, 2019 at 9:11 PM Qii Wang <qii.wang@mediatek.com> wrote:
> > >
> > > When two i2c controllers are internally connected to the same
> > > GPIO pins, the arb clock is needed to ensure that the waveforms
> > > do not interfere with each other.
> > >
> > > Signed-off-by: Qii Wang <qii.wang@mediatek.com>
> >
> > Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
> >
> > > ---
> > >  drivers/i2c/busses/i2c-mt65xx.c |   25 ++++++++++++++++++++++---
> > >  1 file changed, 22 insertions(+), 3 deletions(-)
> > >
> > > diff --git a/drivers/i2c/busses/i2c-mt65xx.c b/drivers/i2c/busses/i2c-mt65xx.c
> > > index 428ac99..14d6b38 100644
> > > --- a/drivers/i2c/busses/i2c-mt65xx.c
> > > +++ b/drivers/i2c/busses/i2c-mt65xx.c
> > > @@ -35,6 +35,7 @@
> > >  #include <linux/slab.h>
> > >
> > >  #define I2C_RS_TRANSFER                        (1 << 4)
> > > +#define I2C_ARB_LOST                   (1 << 3)
> > >  #define I2C_HS_NACKERR                 (1 << 2)
> > >  #define I2C_ACKERR                     (1 << 1)
> > >  #define I2C_TRANSAC_COMP               (1 << 0)
> > > @@ -181,6 +182,7 @@ struct mtk_i2c {
> > >         struct clk *clk_main;           /* main clock for i2c bus */
> > >         struct clk *clk_dma;            /* DMA clock for i2c via DMA */
> > >         struct clk *clk_pmic;           /* PMIC clock for i2c from PMIC */
> > > +       struct clk *clk_arb;            /* Arbitrator clock for i2c */
> > >         bool have_pmic;                 /* can use i2c pins from PMIC */
> > >         bool use_push_pull;             /* IO config push-pull mode */
> > >
> > > @@ -299,8 +301,18 @@ static int mtk_i2c_clock_enable(struct mtk_i2c *i2c)
> > >                 if (ret)
> > >                         goto err_pmic;
> > >         }
> > > +
> > > +       if (i2c->clk_arb) {
> > > +               ret = clk_prepare_enable(i2c->clk_arb);
> > > +               if (ret)
> > > +                       goto err_arb;
> > > +       }
> > > +
> > >         return 0;
> > >
> > > +err_arb:
> > > +       if (i2c->have_pmic)
> > > +               clk_disable_unprepare(i2c->clk_pmic);
> > >  err_pmic:
> > >         clk_disable_unprepare(i2c->clk_main);
> > >  err_main:
> > > @@ -311,6 +323,9 @@ static int mtk_i2c_clock_enable(struct mtk_i2c *i2c)
> > >
> > >  static void mtk_i2c_clock_disable(struct mtk_i2c *i2c)
> > >  {
> > > +       if (i2c->clk_arb)
> > > +               clk_disable_unprepare(i2c->clk_arb);
> > > +
> > >         if (i2c->have_pmic)
> > >                 clk_disable_unprepare(i2c->clk_pmic);
> > >
> > > @@ -519,13 +534,13 @@ static int mtk_i2c_do_transfer(struct mtk_i2c *i2c, struct i2c_msg *msgs,
> > >
> > >         /* Clear interrupt status */
> > >         mtk_i2c_writew(i2c, restart_flag | I2C_HS_NACKERR | I2C_ACKERR |
> > > -              I2C_TRANSAC_COMP, OFFSET_INTR_STAT);
> > > +                           I2C_ARB_LOST | I2C_TRANSAC_COMP, OFFSET_INTR_STAT);
> 
> Is it ok to set I2C_ARB_LOST on _all_ SoC that this driver supports?
> If so, please at least say so in the commit message.
> 

Yes, old and new SoC have the I2C_ARB_LOST bit, but there was no need
for multi-master before, so we didn't set it up specifically, I have
test the patch on the old SoCs. I will add a note in the commit message.

> > >
> > >         mtk_i2c_writew(i2c, I2C_FIFO_ADDR_CLR, OFFSET_FIFO_ADDR_CLR);
> > >
> > >         /* Enable interrupt */
> > >         mtk_i2c_writew(i2c, restart_flag | I2C_HS_NACKERR | I2C_ACKERR |
> > > -              I2C_TRANSAC_COMP, OFFSET_INTR_MASK);
> > > +                           I2C_ARB_LOST | I2C_TRANSAC_COMP, OFFSET_INTR_MASK);
> > >
> > >         /* Set transfer and transaction len */
> > >         if (i2c->op == I2C_MASTER_WRRD) {
> > > @@ -659,7 +674,7 @@ static int mtk_i2c_do_transfer(struct mtk_i2c *i2c, struct i2c_msg *msgs,
> > >
> > >         /* Clear interrupt mask */
> > >         mtk_i2c_writew(i2c, ~(restart_flag | I2C_HS_NACKERR | I2C_ACKERR |
> > > -              I2C_TRANSAC_COMP), OFFSET_INTR_MASK);
> > > +                           I2C_ARB_LOST | I2C_TRANSAC_COMP), OFFSET_INTR_MASK);
> > >
> > >         if (i2c->op == I2C_MASTER_WR) {
> > >                 dma_unmap_single(i2c->dev, wpaddr,
> > > @@ -884,6 +899,10 @@ static int mtk_i2c_probe(struct platform_device *pdev)
> > >                 return PTR_ERR(i2c->clk_dma);
> > >         }
> > >
> > > +       i2c->clk_arb = devm_clk_get(&pdev->dev, "arb");
> > > +       if (IS_ERR(i2c->clk_arb))
> > > +               i2c->clk_arb = NULL;
> > > +
> > >         clk = i2c->clk_main;
> > >         if (i2c->have_pmic) {
> > >                 i2c->clk_pmic = devm_clk_get(&pdev->dev, "pmic");
> > > --
> > > 1.7.9.5
> > >



_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

WARNING: multiple messages have this Message-ID (diff)
From: Qii Wang <qii.wang@mediatek.com>
To: Nicolas Boichat <drinkcat@chromium.org>
Cc: <wsa@the-dreams.de>, <linux-i2c@vger.kernel.org>,
	<devicetree@vger.kernel.org>,
	linux-arm Mailing List <linux-arm-kernel@lists.infradead.org>,
	lkml <linux-kernel@vger.kernel.org>,
	"moderated list:ARM/Mediatek SoC support" 
	<linux-mediatek@lists.infradead.org>,
	srv_heupstream <srv_heupstream@mediatek.com>,
	Leilk Liu <leilk.liu@mediatek.com>, <xinping.qian@mediatek.com>,
	<liguo.zhang@mediatek.com>, Rob Herring <robh@kernel.org>
Subject: Re: [PATCH v5 3/5] i2c: mediatek: Add arb clock in i2c driver
Date: Thu, 7 Mar 2019 12:57:57 +0800	[thread overview]
Message-ID: <1551934677.30363.55.camel@mhfsdcap03> (raw)
In-Reply-To: <CANMq1KBt7LeR=Od2LmswUSZMV_XZE+zn2LbnqU+SzywKqmDP7w@mail.gmail.com>

On Wed, 2019-03-06 at 18:49 +0800, Nicolas Boichat wrote:
> One thing I missed from Matthias' comment on v4:
> https://patchwork.kernel.org/patch/10822083/
> 
> On Wed, Mar 6, 2019 at 6:44 PM Nicolas Boichat <drinkcat@chromium.org> wrote:
> >
> > On Tue, Feb 26, 2019 at 9:11 PM Qii Wang <qii.wang@mediatek.com> wrote:
> > >
> > > When two i2c controllers are internally connected to the same
> > > GPIO pins, the arb clock is needed to ensure that the waveforms
> > > do not interfere with each other.
> > >
> > > Signed-off-by: Qii Wang <qii.wang@mediatek.com>
> >
> > Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
> >
> > > ---
> > >  drivers/i2c/busses/i2c-mt65xx.c |   25 ++++++++++++++++++++++---
> > >  1 file changed, 22 insertions(+), 3 deletions(-)
> > >
> > > diff --git a/drivers/i2c/busses/i2c-mt65xx.c b/drivers/i2c/busses/i2c-mt65xx.c
> > > index 428ac99..14d6b38 100644
> > > --- a/drivers/i2c/busses/i2c-mt65xx.c
> > > +++ b/drivers/i2c/busses/i2c-mt65xx.c
> > > @@ -35,6 +35,7 @@
> > >  #include <linux/slab.h>
> > >
> > >  #define I2C_RS_TRANSFER                        (1 << 4)
> > > +#define I2C_ARB_LOST                   (1 << 3)
> > >  #define I2C_HS_NACKERR                 (1 << 2)
> > >  #define I2C_ACKERR                     (1 << 1)
> > >  #define I2C_TRANSAC_COMP               (1 << 0)
> > > @@ -181,6 +182,7 @@ struct mtk_i2c {
> > >         struct clk *clk_main;           /* main clock for i2c bus */
> > >         struct clk *clk_dma;            /* DMA clock for i2c via DMA */
> > >         struct clk *clk_pmic;           /* PMIC clock for i2c from PMIC */
> > > +       struct clk *clk_arb;            /* Arbitrator clock for i2c */
> > >         bool have_pmic;                 /* can use i2c pins from PMIC */
> > >         bool use_push_pull;             /* IO config push-pull mode */
> > >
> > > @@ -299,8 +301,18 @@ static int mtk_i2c_clock_enable(struct mtk_i2c *i2c)
> > >                 if (ret)
> > >                         goto err_pmic;
> > >         }
> > > +
> > > +       if (i2c->clk_arb) {
> > > +               ret = clk_prepare_enable(i2c->clk_arb);
> > > +               if (ret)
> > > +                       goto err_arb;
> > > +       }
> > > +
> > >         return 0;
> > >
> > > +err_arb:
> > > +       if (i2c->have_pmic)
> > > +               clk_disable_unprepare(i2c->clk_pmic);
> > >  err_pmic:
> > >         clk_disable_unprepare(i2c->clk_main);
> > >  err_main:
> > > @@ -311,6 +323,9 @@ static int mtk_i2c_clock_enable(struct mtk_i2c *i2c)
> > >
> > >  static void mtk_i2c_clock_disable(struct mtk_i2c *i2c)
> > >  {
> > > +       if (i2c->clk_arb)
> > > +               clk_disable_unprepare(i2c->clk_arb);
> > > +
> > >         if (i2c->have_pmic)
> > >                 clk_disable_unprepare(i2c->clk_pmic);
> > >
> > > @@ -519,13 +534,13 @@ static int mtk_i2c_do_transfer(struct mtk_i2c *i2c, struct i2c_msg *msgs,
> > >
> > >         /* Clear interrupt status */
> > >         mtk_i2c_writew(i2c, restart_flag | I2C_HS_NACKERR | I2C_ACKERR |
> > > -              I2C_TRANSAC_COMP, OFFSET_INTR_STAT);
> > > +                           I2C_ARB_LOST | I2C_TRANSAC_COMP, OFFSET_INTR_STAT);
> 
> Is it ok to set I2C_ARB_LOST on _all_ SoC that this driver supports?
> If so, please at least say so in the commit message.
> 

Yes, old and new SoC have the I2C_ARB_LOST bit, but there was no need
for multi-master before, so we didn't set it up specifically, I have
test the patch on the old SoCs. I will add a note in the commit message.

> > >
> > >         mtk_i2c_writew(i2c, I2C_FIFO_ADDR_CLR, OFFSET_FIFO_ADDR_CLR);
> > >
> > >         /* Enable interrupt */
> > >         mtk_i2c_writew(i2c, restart_flag | I2C_HS_NACKERR | I2C_ACKERR |
> > > -              I2C_TRANSAC_COMP, OFFSET_INTR_MASK);
> > > +                           I2C_ARB_LOST | I2C_TRANSAC_COMP, OFFSET_INTR_MASK);
> > >
> > >         /* Set transfer and transaction len */
> > >         if (i2c->op == I2C_MASTER_WRRD) {
> > > @@ -659,7 +674,7 @@ static int mtk_i2c_do_transfer(struct mtk_i2c *i2c, struct i2c_msg *msgs,
> > >
> > >         /* Clear interrupt mask */
> > >         mtk_i2c_writew(i2c, ~(restart_flag | I2C_HS_NACKERR | I2C_ACKERR |
> > > -              I2C_TRANSAC_COMP), OFFSET_INTR_MASK);
> > > +                           I2C_ARB_LOST | I2C_TRANSAC_COMP), OFFSET_INTR_MASK);
> > >
> > >         if (i2c->op == I2C_MASTER_WR) {
> > >                 dma_unmap_single(i2c->dev, wpaddr,
> > > @@ -884,6 +899,10 @@ static int mtk_i2c_probe(struct platform_device *pdev)
> > >                 return PTR_ERR(i2c->clk_dma);
> > >         }
> > >
> > > +       i2c->clk_arb = devm_clk_get(&pdev->dev, "arb");
> > > +       if (IS_ERR(i2c->clk_arb))
> > > +               i2c->clk_arb = NULL;
> > > +
> > >         clk = i2c->clk_main;
> > >         if (i2c->have_pmic) {
> > >                 i2c->clk_pmic = devm_clk_get(&pdev->dev, "pmic");
> > > --
> > > 1.7.9.5
> > >



  reply	other threads:[~2019-03-07  4:57 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-26 13:10 [PATCH v5 0/5] add i2c support for mt8183 Qii Wang
2019-02-26 13:10 ` Qii Wang
2019-02-26 13:10 ` Qii Wang
2019-02-26 13:10 ` [PATCH v5 1/5] i2c: mediatek: Add offsets array for new i2c registers Qii Wang
2019-02-26 13:10   ` Qii Wang
2019-02-26 13:10   ` Qii Wang
2019-02-26 13:10 ` [PATCH v5 2/5] dt-bindings: i2c: Add Mediatek MT8183 i2c binding Qii Wang
2019-02-26 13:10   ` Qii Wang
2019-02-26 13:10   ` Qii Wang
2019-02-26 16:41   ` Rob Herring
2019-02-26 16:41     ` Rob Herring
2019-02-26 13:10 ` [PATCH v5 3/5] i2c: mediatek: Add arb clock in i2c driver Qii Wang
2019-02-26 13:10   ` Qii Wang
2019-02-26 13:10   ` Qii Wang
2019-03-06 10:44   ` Nicolas Boichat
2019-03-06 10:44     ` Nicolas Boichat
2019-03-06 10:49     ` Nicolas Boichat
2019-03-06 10:49       ` Nicolas Boichat
2019-03-07  4:57       ` Qii Wang [this message]
2019-03-07  4:57         ` Qii Wang
2019-03-07  4:57         ` Qii Wang
2019-02-26 13:10 ` [PATCH v5 4/5] i2c: mediatek: Add i2c and apdma sync " Qii Wang
2019-02-26 13:10   ` Qii Wang
2019-02-26 13:10   ` Qii Wang
2019-03-06 10:44   ` Nicolas Boichat
2019-03-06 10:44     ` Nicolas Boichat
2019-02-26 13:11 ` [PATCH v5 5/5] i2c: mediatek: Add i2c support for MediaTek MT8183 Qii Wang
2019-02-26 13:11   ` Qii Wang
2019-02-26 13:11   ` Qii Wang
2019-03-06 10:52   ` Nicolas Boichat
2019-03-06 10:52     ` Nicolas Boichat
2019-03-07  5:01     ` Qii Wang
2019-03-07  5:01       ` Qii Wang
2019-03-07  5:01       ` Qii Wang

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=1551934677.30363.55.camel@mhfsdcap03 \
    --to=qii.wang@mediatek.com \
    --cc=devicetree@vger.kernel.org \
    --cc=drinkcat@chromium.org \
    --cc=leilk.liu@mediatek.com \
    --cc=liguo.zhang@mediatek.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=robh@kernel.org \
    --cc=srv_heupstream@mediatek.com \
    --cc=wsa@the-dreams.de \
    --cc=xinping.qian@mediatek.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.