All of lore.kernel.org
 help / color / mirror / Atom feed
From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Liang Yang <liang.yang@amlogic.com>
Cc: <linux-mtd@lists.infradead.org>, Rob Herring <robh+dt@kernel.org>,
	Richard Weinberger <richard@nod.at>,
	Vignesh Raghavendra <vigneshr@ti.com>,
	Jerome Brunet <jbrunet@baylibre.com>,
	Neil Armstrong <narmstrong@baylibre.com>,
	Martin Blumenstingl <martin.blumenstingl@googlemail.com>,
	Kevin Hilman <khilman@baylibre.com>,
	Jianxin Pan <jianxin.pan@amlogic.com>,
	Victor Wan <victor.wan@amlogic.com>,
	XianWei Zhao <xianwei.zhao@amlogic.com>,
	Kelvin Zhang <kelvin.zhang@amlogic.com>,
	BiChao Zheng <bichao.zheng@amlogic.com>,
	YongHui Yu <yonghui.yu@amlogic.com>,
	<linux-arm-kernel@lists.infradead.org>,
	<linux-amlogic@lists.infradead.org>,
	<linux-kernel@vger.kernel.org>, <devicetree@vger.kernel.org>
Subject: Re: [PATCH v4 1/2] mtd: rawnand: meson: discard the common MMC sub clock framework
Date: Wed, 20 Apr 2022 09:29:12 +0200	[thread overview]
Message-ID: <20220420092912.10ce66ec@xps13> (raw)
In-Reply-To: <126691f4-bc6b-10cd-ee2c-ff4006bc6518@amlogic.com>

Hi Liang,

liang.yang@amlogic.com wrote on Wed, 20 Apr 2022 13:44:32 +0800:

> Hi Miquel,
> 
> On 2022/4/19 23:25, Miquel Raynal wrote:
> > [ EXTERNAL EMAIL ]
> > 
> > Hello,
> > 
> > liang.yang@amlogic.com wrote on Tue, 19 Apr 2022 17:17:48 +0800:
> >   
> >> Hello Miquel,
> >>
> >> On 2022/4/19 16:26, Miquel Raynal wrote:  
> >>> [ EXTERNAL EMAIL ]
> >>>
> >>> Hello,
> >>>
> >>> liang.yang@amlogic.com wrote on Mon, 18 Apr 2022 11:40:10 +0800:  
> >>>    >>>> Hi Miquel,  
> >>>>
> >>>> i have some confusion when i prepare the patches. for DT compatibility, it falls back to the old DT when failed to get resource by the new DT, but there is some points:
> >>>> a. old DT depends on MMC sub clock driver, but it never be merged, so it can't work.  
> >>>
> >>> I don't get what you mean here, sorry. I believe there is a new way to
> >>> describe this clock but grabbing the one from the MMC still works, does
> >>> not it?  
> >>>    >>  
> >> No, it doesn't. after the NFC driver using the MMC sub clock framework was merged into the mainline of kernel, we didn't continue to submit the series of patches about MMC sub clock after v9. when i found that, we made a discussion to decide whether to recover the series of patches about MMC sub clock framework, finally, see the description from cover letter, we plan to abandon it and adopt the new clock scheme in this series of patches.  
> > 
> > I am not sure to follow. Is the current code completely broken? I
> > believe it is not, so I don't understand your issue.  
> 
> i think only the code about the clock is completely broken.
> 
> > 
> > Can you please summarize the situation?  
> 
> Yes. the current NFC clock implementation depends on the following series of patches [https://lore.kernel.org/all/20220121074508.42168-5-liang.yang@amlogic.com], which we call "Meson MMC Sub Clock Controller Driver".
> when i was preparing the NFC patchset at that time, we discussed how the clock should be implemented base on the special clock framework for NFC and EMMC port. then we decided to implement a driver "Meson MMC Sub Clock Controller Driver". so another people begin to prepare "Meson MMC Sub Clock Controller Driver", but submitted it by different patchset.
> finally, now the meson NFC patchset is accepted and merged, but "Meson MMC Sub Clock Controller Driver" patchset is not. also we decide to abandon the patset "Meson MMC Sub Clock Controller Driver" and implement the new clock design in this series.

Ok thanks for the summary and the link with the discussion with Jerome
and Neil, it's informative.

So in the end, we are not really breaking anything here as this NAND
controller driver never worked in the first place? Or is it only one of
the two compatibles which is not working?

If this never worked then please do the binding changes (in the first
patch of your series) and then do the necessary changes in the code. If
this worked with at least one of the two compatibles, then you have to
create dedicated helpers, one for each, in order to grab the clocks
differently and not break anybody.

> 
> >   
> >>
> >> Thanks.
> >>  
> >>>> b. if it falls back to the old DT, beside the regmap lookup below, it seems that we have to preserve the code of the old clock setting in nfc_clk_init().  
> >>>
> >>> Yes, probably.  
> >>>    >>>> do we still need to avoid break DT compatibility?  
> >>>
> >>> We should try our best to avoid breaking the DT, yes.  
> >>>    >>>>  
> >>>> Thanks.
> >>>>
> >>>> On 2022/4/11 10:40, Liang Yang wrote:  
> >>>>>>>         nfc->dev = dev;
> >>>>>>> -    res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> >>>>>>> -    nfc->reg_base = devm_ioremap_resource(dev, res);
> >>>>>>> +    nfc->reg_base = devm_platform_ioremap_resource_byname(pdev, "nfc");  
> >>>>>>
> >>>>>> This change seems unrelated.  
> >>>>>
> >>>>> To be consistent with the following > devm_platform_ioremap_resource_byname(pdev, "emmc"). do you mean that we > don't need it?>  
> >>>>>>>         if (IS_ERR(nfc->reg_base))
> >>>>>>>             return PTR_ERR(nfc->reg_base);
> >>>>>>> -    nfc->reg_clk =
> >>>>>>> -        syscon_regmap_lookup_by_phandle(dev->of_node,
> >>>>>>> -                        "amlogic,mmc-syscon");
> >>>>>>> -    if (IS_ERR(nfc->reg_clk)) {
> >>>>>>> -        dev_err(dev, "Failed to lookup clock base\n");
> >>>>>>> -        return PTR_ERR(nfc->reg_clk);
> >>>>>>> -    }
> >>>>>>> +    nfc->sd_emmc_clock = devm_platform_ioremap_resource_byname(pdev, >>> "emmc");
> >>>>>>> +    if (IS_ERR(nfc->sd_emmc_clock))
> >>>>>>> +        return PTR_ERR(nfc->sd_emmc_clock);  
> >>>>>>
> >>>>>> While I agree this is much better than the previous solution, we cannot
> >>>>>> break DT compatibility, so you need to try getting the emmc clock, but
> >>>>>> if it fails you should fallback to the regmap lookup.  
> >>>>>
> >>>>> ok, i will fix it next version. thanks.  
> >>>>>     >>>>   >>>>>        irq = platform_get_irq(pdev, 0);  
> >>>
> >>>
> >>> Thanks,
> >>> Miquèl
> >>>
> >>> .  
> > 
> > 
> > Thanks,
> > Miquèl
> > 
> > .  


Thanks,
Miquèl

WARNING: multiple messages have this Message-ID
From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Liang Yang <liang.yang@amlogic.com>
Cc: <linux-mtd@lists.infradead.org>, Rob Herring <robh+dt@kernel.org>,
	Richard Weinberger <richard@nod.at>,
	Vignesh Raghavendra <vigneshr@ti.com>,
	Jerome Brunet <jbrunet@baylibre.com>,
	Neil Armstrong <narmstrong@baylibre.com>,
	Martin Blumenstingl <martin.blumenstingl@googlemail.com>,
	Kevin Hilman <khilman@baylibre.com>,
	Jianxin Pan <jianxin.pan@amlogic.com>,
	Victor Wan <victor.wan@amlogic.com>,
	XianWei Zhao <xianwei.zhao@amlogic.com>,
	Kelvin Zhang <kelvin.zhang@amlogic.com>,
	BiChao Zheng <bichao.zheng@amlogic.com>,
	YongHui Yu <yonghui.yu@amlogic.com>,
	<linux-arm-kernel@lists.infradead.org>,
	<linux-amlogic@lists.infradead.org>,
	<linux-kernel@vger.kernel.org>, <devicetree@vger.kernel.org>
Subject: Re: [PATCH v4 1/2] mtd: rawnand: meson: discard the common MMC sub clock framework
Date: Wed, 20 Apr 2022 09:29:12 +0200	[thread overview]
Message-ID: <20220420092912.10ce66ec@xps13> (raw)
In-Reply-To: <126691f4-bc6b-10cd-ee2c-ff4006bc6518@amlogic.com>

Hi Liang,

liang.yang@amlogic.com wrote on Wed, 20 Apr 2022 13:44:32 +0800:

> Hi Miquel,
> 
> On 2022/4/19 23:25, Miquel Raynal wrote:
> > [ EXTERNAL EMAIL ]
> > 
> > Hello,
> > 
> > liang.yang@amlogic.com wrote on Tue, 19 Apr 2022 17:17:48 +0800:
> >   
> >> Hello Miquel,
> >>
> >> On 2022/4/19 16:26, Miquel Raynal wrote:  
> >>> [ EXTERNAL EMAIL ]
> >>>
> >>> Hello,
> >>>
> >>> liang.yang@amlogic.com wrote on Mon, 18 Apr 2022 11:40:10 +0800:  
> >>>    >>>> Hi Miquel,  
> >>>>
> >>>> i have some confusion when i prepare the patches. for DT compatibility, it falls back to the old DT when failed to get resource by the new DT, but there is some points:
> >>>> a. old DT depends on MMC sub clock driver, but it never be merged, so it can't work.  
> >>>
> >>> I don't get what you mean here, sorry. I believe there is a new way to
> >>> describe this clock but grabbing the one from the MMC still works, does
> >>> not it?  
> >>>    >>  
> >> No, it doesn't. after the NFC driver using the MMC sub clock framework was merged into the mainline of kernel, we didn't continue to submit the series of patches about MMC sub clock after v9. when i found that, we made a discussion to decide whether to recover the series of patches about MMC sub clock framework, finally, see the description from cover letter, we plan to abandon it and adopt the new clock scheme in this series of patches.  
> > 
> > I am not sure to follow. Is the current code completely broken? I
> > believe it is not, so I don't understand your issue.  
> 
> i think only the code about the clock is completely broken.
> 
> > 
> > Can you please summarize the situation?  
> 
> Yes. the current NFC clock implementation depends on the following series of patches [https://lore.kernel.org/all/20220121074508.42168-5-liang.yang@amlogic.com], which we call "Meson MMC Sub Clock Controller Driver".
> when i was preparing the NFC patchset at that time, we discussed how the clock should be implemented base on the special clock framework for NFC and EMMC port. then we decided to implement a driver "Meson MMC Sub Clock Controller Driver". so another people begin to prepare "Meson MMC Sub Clock Controller Driver", but submitted it by different patchset.
> finally, now the meson NFC patchset is accepted and merged, but "Meson MMC Sub Clock Controller Driver" patchset is not. also we decide to abandon the patset "Meson MMC Sub Clock Controller Driver" and implement the new clock design in this series.

Ok thanks for the summary and the link with the discussion with Jerome
and Neil, it's informative.

So in the end, we are not really breaking anything here as this NAND
controller driver never worked in the first place? Or is it only one of
the two compatibles which is not working?

If this never worked then please do the binding changes (in the first
patch of your series) and then do the necessary changes in the code. If
this worked with at least one of the two compatibles, then you have to
create dedicated helpers, one for each, in order to grab the clocks
differently and not break anybody.

> 
> >   
> >>
> >> Thanks.
> >>  
> >>>> b. if it falls back to the old DT, beside the regmap lookup below, it seems that we have to preserve the code of the old clock setting in nfc_clk_init().  
> >>>
> >>> Yes, probably.  
> >>>    >>>> do we still need to avoid break DT compatibility?  
> >>>
> >>> We should try our best to avoid breaking the DT, yes.  
> >>>    >>>>  
> >>>> Thanks.
> >>>>
> >>>> On 2022/4/11 10:40, Liang Yang wrote:  
> >>>>>>>         nfc->dev = dev;
> >>>>>>> -    res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> >>>>>>> -    nfc->reg_base = devm_ioremap_resource(dev, res);
> >>>>>>> +    nfc->reg_base = devm_platform_ioremap_resource_byname(pdev, "nfc");  
> >>>>>>
> >>>>>> This change seems unrelated.  
> >>>>>
> >>>>> To be consistent with the following > devm_platform_ioremap_resource_byname(pdev, "emmc"). do you mean that we > don't need it?>  
> >>>>>>>         if (IS_ERR(nfc->reg_base))
> >>>>>>>             return PTR_ERR(nfc->reg_base);
> >>>>>>> -    nfc->reg_clk =
> >>>>>>> -        syscon_regmap_lookup_by_phandle(dev->of_node,
> >>>>>>> -                        "amlogic,mmc-syscon");
> >>>>>>> -    if (IS_ERR(nfc->reg_clk)) {
> >>>>>>> -        dev_err(dev, "Failed to lookup clock base\n");
> >>>>>>> -        return PTR_ERR(nfc->reg_clk);
> >>>>>>> -    }
> >>>>>>> +    nfc->sd_emmc_clock = devm_platform_ioremap_resource_byname(pdev, >>> "emmc");
> >>>>>>> +    if (IS_ERR(nfc->sd_emmc_clock))
> >>>>>>> +        return PTR_ERR(nfc->sd_emmc_clock);  
> >>>>>>
> >>>>>> While I agree this is much better than the previous solution, we cannot
> >>>>>> break DT compatibility, so you need to try getting the emmc clock, but
> >>>>>> if it fails you should fallback to the regmap lookup.  
> >>>>>
> >>>>> ok, i will fix it next version. thanks.  
> >>>>>     >>>>   >>>>>        irq = platform_get_irq(pdev, 0);  
> >>>
> >>>
> >>> Thanks,
> >>> Miquèl
> >>>
> >>> .  
> > 
> > 
> > Thanks,
> > Miquèl
> > 
> > .  


Thanks,
Miquèl

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

WARNING: multiple messages have this Message-ID
From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Liang Yang <liang.yang@amlogic.com>
Cc: <linux-mtd@lists.infradead.org>, Rob Herring <robh+dt@kernel.org>,
	Richard Weinberger <richard@nod.at>,
	Vignesh Raghavendra <vigneshr@ti.com>,
	Jerome Brunet <jbrunet@baylibre.com>,
	Neil Armstrong <narmstrong@baylibre.com>,
	Martin Blumenstingl <martin.blumenstingl@googlemail.com>,
	Kevin Hilman <khilman@baylibre.com>,
	Jianxin Pan <jianxin.pan@amlogic.com>,
	Victor Wan <victor.wan@amlogic.com>,
	XianWei Zhao <xianwei.zhao@amlogic.com>,
	Kelvin Zhang <kelvin.zhang@amlogic.com>,
	BiChao Zheng <bichao.zheng@amlogic.com>,
	YongHui Yu <yonghui.yu@amlogic.com>,
	<linux-arm-kernel@lists.infradead.org>,
	<linux-amlogic@lists.infradead.org>,
	<linux-kernel@vger.kernel.org>, <devicetree@vger.kernel.org>
Subject: Re: [PATCH v4 1/2] mtd: rawnand: meson: discard the common MMC sub clock framework
Date: Wed, 20 Apr 2022 09:29:12 +0200	[thread overview]
Message-ID: <20220420092912.10ce66ec@xps13> (raw)
In-Reply-To: <126691f4-bc6b-10cd-ee2c-ff4006bc6518@amlogic.com>

Hi Liang,

liang.yang@amlogic.com wrote on Wed, 20 Apr 2022 13:44:32 +0800:

> Hi Miquel,
> 
> On 2022/4/19 23:25, Miquel Raynal wrote:
> > [ EXTERNAL EMAIL ]
> > 
> > Hello,
> > 
> > liang.yang@amlogic.com wrote on Tue, 19 Apr 2022 17:17:48 +0800:
> >   
> >> Hello Miquel,
> >>
> >> On 2022/4/19 16:26, Miquel Raynal wrote:  
> >>> [ EXTERNAL EMAIL ]
> >>>
> >>> Hello,
> >>>
> >>> liang.yang@amlogic.com wrote on Mon, 18 Apr 2022 11:40:10 +0800:  
> >>>    >>>> Hi Miquel,  
> >>>>
> >>>> i have some confusion when i prepare the patches. for DT compatibility, it falls back to the old DT when failed to get resource by the new DT, but there is some points:
> >>>> a. old DT depends on MMC sub clock driver, but it never be merged, so it can't work.  
> >>>
> >>> I don't get what you mean here, sorry. I believe there is a new way to
> >>> describe this clock but grabbing the one from the MMC still works, does
> >>> not it?  
> >>>    >>  
> >> No, it doesn't. after the NFC driver using the MMC sub clock framework was merged into the mainline of kernel, we didn't continue to submit the series of patches about MMC sub clock after v9. when i found that, we made a discussion to decide whether to recover the series of patches about MMC sub clock framework, finally, see the description from cover letter, we plan to abandon it and adopt the new clock scheme in this series of patches.  
> > 
> > I am not sure to follow. Is the current code completely broken? I
> > believe it is not, so I don't understand your issue.  
> 
> i think only the code about the clock is completely broken.
> 
> > 
> > Can you please summarize the situation?  
> 
> Yes. the current NFC clock implementation depends on the following series of patches [https://lore.kernel.org/all/20220121074508.42168-5-liang.yang@amlogic.com], which we call "Meson MMC Sub Clock Controller Driver".
> when i was preparing the NFC patchset at that time, we discussed how the clock should be implemented base on the special clock framework for NFC and EMMC port. then we decided to implement a driver "Meson MMC Sub Clock Controller Driver". so another people begin to prepare "Meson MMC Sub Clock Controller Driver", but submitted it by different patchset.
> finally, now the meson NFC patchset is accepted and merged, but "Meson MMC Sub Clock Controller Driver" patchset is not. also we decide to abandon the patset "Meson MMC Sub Clock Controller Driver" and implement the new clock design in this series.

Ok thanks for the summary and the link with the discussion with Jerome
and Neil, it's informative.

So in the end, we are not really breaking anything here as this NAND
controller driver never worked in the first place? Or is it only one of
the two compatibles which is not working?

If this never worked then please do the binding changes (in the first
patch of your series) and then do the necessary changes in the code. If
this worked with at least one of the two compatibles, then you have to
create dedicated helpers, one for each, in order to grab the clocks
differently and not break anybody.

> 
> >   
> >>
> >> Thanks.
> >>  
> >>>> b. if it falls back to the old DT, beside the regmap lookup below, it seems that we have to preserve the code of the old clock setting in nfc_clk_init().  
> >>>
> >>> Yes, probably.  
> >>>    >>>> do we still need to avoid break DT compatibility?  
> >>>
> >>> We should try our best to avoid breaking the DT, yes.  
> >>>    >>>>  
> >>>> Thanks.
> >>>>
> >>>> On 2022/4/11 10:40, Liang Yang wrote:  
> >>>>>>>         nfc->dev = dev;
> >>>>>>> -    res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> >>>>>>> -    nfc->reg_base = devm_ioremap_resource(dev, res);
> >>>>>>> +    nfc->reg_base = devm_platform_ioremap_resource_byname(pdev, "nfc");  
> >>>>>>
> >>>>>> This change seems unrelated.  
> >>>>>
> >>>>> To be consistent with the following > devm_platform_ioremap_resource_byname(pdev, "emmc"). do you mean that we > don't need it?>  
> >>>>>>>         if (IS_ERR(nfc->reg_base))
> >>>>>>>             return PTR_ERR(nfc->reg_base);
> >>>>>>> -    nfc->reg_clk =
> >>>>>>> -        syscon_regmap_lookup_by_phandle(dev->of_node,
> >>>>>>> -                        "amlogic,mmc-syscon");
> >>>>>>> -    if (IS_ERR(nfc->reg_clk)) {
> >>>>>>> -        dev_err(dev, "Failed to lookup clock base\n");
> >>>>>>> -        return PTR_ERR(nfc->reg_clk);
> >>>>>>> -    }
> >>>>>>> +    nfc->sd_emmc_clock = devm_platform_ioremap_resource_byname(pdev, >>> "emmc");
> >>>>>>> +    if (IS_ERR(nfc->sd_emmc_clock))
> >>>>>>> +        return PTR_ERR(nfc->sd_emmc_clock);  
> >>>>>>
> >>>>>> While I agree this is much better than the previous solution, we cannot
> >>>>>> break DT compatibility, so you need to try getting the emmc clock, but
> >>>>>> if it fails you should fallback to the regmap lookup.  
> >>>>>
> >>>>> ok, i will fix it next version. thanks.  
> >>>>>     >>>>   >>>>>        irq = platform_get_irq(pdev, 0);  
> >>>
> >>>
> >>> Thanks,
> >>> Miquèl
> >>>
> >>> .  
> > 
> > 
> > Thanks,
> > Miquèl
> > 
> > .  


Thanks,
Miquèl

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

WARNING: multiple messages have this Message-ID
From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Liang Yang <liang.yang@amlogic.com>
Cc: <linux-mtd@lists.infradead.org>, Rob Herring <robh+dt@kernel.org>,
	Richard Weinberger <richard@nod.at>,
	Vignesh Raghavendra <vigneshr@ti.com>,
	Jerome Brunet <jbrunet@baylibre.com>,
	Neil Armstrong <narmstrong@baylibre.com>,
	Martin Blumenstingl <martin.blumenstingl@googlemail.com>,
	Kevin Hilman <khilman@baylibre.com>,
	Jianxin Pan <jianxin.pan@amlogic.com>,
	Victor Wan <victor.wan@amlogic.com>,
	XianWei Zhao <xianwei.zhao@amlogic.com>,
	Kelvin Zhang <kelvin.zhang@amlogic.com>,
	BiChao Zheng <bichao.zheng@amlogic.com>,
	YongHui Yu <yonghui.yu@amlogic.com>,
	<linux-arm-kernel@lists.infradead.org>,
	<linux-amlogic@lists.infradead.org>,
	<linux-kernel@vger.kernel.org>, <devicetree@vger.kernel.org>
Subject: Re: [PATCH v4 1/2] mtd: rawnand: meson: discard the common MMC sub clock framework
Date: Wed, 20 Apr 2022 09:29:12 +0200	[thread overview]
Message-ID: <20220420092912.10ce66ec@xps13> (raw)
In-Reply-To: <126691f4-bc6b-10cd-ee2c-ff4006bc6518@amlogic.com>

Hi Liang,

liang.yang@amlogic.com wrote on Wed, 20 Apr 2022 13:44:32 +0800:

> Hi Miquel,
> 
> On 2022/4/19 23:25, Miquel Raynal wrote:
> > [ EXTERNAL EMAIL ]
> > 
> > Hello,
> > 
> > liang.yang@amlogic.com wrote on Tue, 19 Apr 2022 17:17:48 +0800:
> >   
> >> Hello Miquel,
> >>
> >> On 2022/4/19 16:26, Miquel Raynal wrote:  
> >>> [ EXTERNAL EMAIL ]
> >>>
> >>> Hello,
> >>>
> >>> liang.yang@amlogic.com wrote on Mon, 18 Apr 2022 11:40:10 +0800:  
> >>>    >>>> Hi Miquel,  
> >>>>
> >>>> i have some confusion when i prepare the patches. for DT compatibility, it falls back to the old DT when failed to get resource by the new DT, but there is some points:
> >>>> a. old DT depends on MMC sub clock driver, but it never be merged, so it can't work.  
> >>>
> >>> I don't get what you mean here, sorry. I believe there is a new way to
> >>> describe this clock but grabbing the one from the MMC still works, does
> >>> not it?  
> >>>    >>  
> >> No, it doesn't. after the NFC driver using the MMC sub clock framework was merged into the mainline of kernel, we didn't continue to submit the series of patches about MMC sub clock after v9. when i found that, we made a discussion to decide whether to recover the series of patches about MMC sub clock framework, finally, see the description from cover letter, we plan to abandon it and adopt the new clock scheme in this series of patches.  
> > 
> > I am not sure to follow. Is the current code completely broken? I
> > believe it is not, so I don't understand your issue.  
> 
> i think only the code about the clock is completely broken.
> 
> > 
> > Can you please summarize the situation?  
> 
> Yes. the current NFC clock implementation depends on the following series of patches [https://lore.kernel.org/all/20220121074508.42168-5-liang.yang@amlogic.com], which we call "Meson MMC Sub Clock Controller Driver".
> when i was preparing the NFC patchset at that time, we discussed how the clock should be implemented base on the special clock framework for NFC and EMMC port. then we decided to implement a driver "Meson MMC Sub Clock Controller Driver". so another people begin to prepare "Meson MMC Sub Clock Controller Driver", but submitted it by different patchset.
> finally, now the meson NFC patchset is accepted and merged, but "Meson MMC Sub Clock Controller Driver" patchset is not. also we decide to abandon the patset "Meson MMC Sub Clock Controller Driver" and implement the new clock design in this series.

Ok thanks for the summary and the link with the discussion with Jerome
and Neil, it's informative.

So in the end, we are not really breaking anything here as this NAND
controller driver never worked in the first place? Or is it only one of
the two compatibles which is not working?

If this never worked then please do the binding changes (in the first
patch of your series) and then do the necessary changes in the code. If
this worked with at least one of the two compatibles, then you have to
create dedicated helpers, one for each, in order to grab the clocks
differently and not break anybody.

> 
> >   
> >>
> >> Thanks.
> >>  
> >>>> b. if it falls back to the old DT, beside the regmap lookup below, it seems that we have to preserve the code of the old clock setting in nfc_clk_init().  
> >>>
> >>> Yes, probably.  
> >>>    >>>> do we still need to avoid break DT compatibility?  
> >>>
> >>> We should try our best to avoid breaking the DT, yes.  
> >>>    >>>>  
> >>>> Thanks.
> >>>>
> >>>> On 2022/4/11 10:40, Liang Yang wrote:  
> >>>>>>>         nfc->dev = dev;
> >>>>>>> -    res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> >>>>>>> -    nfc->reg_base = devm_ioremap_resource(dev, res);
> >>>>>>> +    nfc->reg_base = devm_platform_ioremap_resource_byname(pdev, "nfc");  
> >>>>>>
> >>>>>> This change seems unrelated.  
> >>>>>
> >>>>> To be consistent with the following > devm_platform_ioremap_resource_byname(pdev, "emmc"). do you mean that we > don't need it?>  
> >>>>>>>         if (IS_ERR(nfc->reg_base))
> >>>>>>>             return PTR_ERR(nfc->reg_base);
> >>>>>>> -    nfc->reg_clk =
> >>>>>>> -        syscon_regmap_lookup_by_phandle(dev->of_node,
> >>>>>>> -                        "amlogic,mmc-syscon");
> >>>>>>> -    if (IS_ERR(nfc->reg_clk)) {
> >>>>>>> -        dev_err(dev, "Failed to lookup clock base\n");
> >>>>>>> -        return PTR_ERR(nfc->reg_clk);
> >>>>>>> -    }
> >>>>>>> +    nfc->sd_emmc_clock = devm_platform_ioremap_resource_byname(pdev, >>> "emmc");
> >>>>>>> +    if (IS_ERR(nfc->sd_emmc_clock))
> >>>>>>> +        return PTR_ERR(nfc->sd_emmc_clock);  
> >>>>>>
> >>>>>> While I agree this is much better than the previous solution, we cannot
> >>>>>> break DT compatibility, so you need to try getting the emmc clock, but
> >>>>>> if it fails you should fallback to the regmap lookup.  
> >>>>>
> >>>>> ok, i will fix it next version. thanks.  
> >>>>>     >>>>   >>>>>        irq = platform_get_irq(pdev, 0);  
> >>>
> >>>
> >>> Thanks,
> >>> Miquèl
> >>>
> >>> .  
> > 
> > 
> > Thanks,
> > Miquèl
> > 
> > .  


Thanks,
Miquèl

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

  reply	other threads:[~2022-04-20  7:29 UTC|newest]

Thread overview: 88+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-02  7:49 [PATCH v4 0/2] refine the NFC clock framework Liang Yang
2022-04-02  7:49 ` Liang Yang
2022-04-02  7:49 ` Liang Yang
2022-04-02  7:49 ` Liang Yang
2022-04-02  7:49 ` [PATCH v4 1/2] mtd: rawnand: meson: discard the common MMC sub " Liang Yang
2022-04-02  7:49   ` Liang Yang
2022-04-02  7:49   ` Liang Yang
2022-04-02  7:49   ` Liang Yang
2022-04-04  8:30   ` Miquel Raynal
2022-04-04  8:30     ` Miquel Raynal
2022-04-04  8:30     ` Miquel Raynal
2022-04-04  8:30     ` Miquel Raynal
2022-04-11  2:40     ` Liang Yang
2022-04-11  2:40       ` Liang Yang
2022-04-11  2:40       ` Liang Yang
2022-04-11  2:40       ` Liang Yang
2022-04-11  7:00       ` Miquel Raynal
2022-04-11  7:00         ` Miquel Raynal
2022-04-11  7:00         ` Miquel Raynal
2022-04-11  7:00         ` Miquel Raynal
2022-04-11  9:03         ` Liang Yang
2022-04-11  9:03           ` Liang Yang
2022-04-11  9:03           ` Liang Yang
2022-04-11  9:03           ` Liang Yang
2022-04-18  3:40       ` Liang Yang
2022-04-18  3:40         ` Liang Yang
2022-04-18  3:40         ` Liang Yang
2022-04-18  3:40         ` Liang Yang
2022-04-19  8:26         ` Miquel Raynal
2022-04-19  8:26           ` Miquel Raynal
2022-04-19  8:26           ` Miquel Raynal
2022-04-19  8:26           ` Miquel Raynal
2022-04-19  9:17           ` Liang Yang
2022-04-19  9:17             ` Liang Yang
2022-04-19  9:17             ` Liang Yang
2022-04-19  9:17             ` Liang Yang
2022-04-19 15:25             ` Miquel Raynal
2022-04-19 15:25               ` Miquel Raynal
2022-04-19 15:25               ` Miquel Raynal
2022-04-19 15:25               ` Miquel Raynal
2022-04-20  5:44               ` Liang Yang
2022-04-20  5:44                 ` Liang Yang
2022-04-20  5:44                 ` Liang Yang
2022-04-20  5:44                 ` Liang Yang
2022-04-20  7:29                 ` Miquel Raynal [this message]
2022-04-20  7:29                   ` Miquel Raynal
2022-04-20  7:29                   ` Miquel Raynal
2022-04-20  7:29                   ` Miquel Raynal
2022-04-20  8:19                   ` Liang Yang
2022-04-20  8:19                     ` Liang Yang
2022-04-20  8:19                     ` Liang Yang
2022-04-20  8:19                     ` Liang Yang
2022-04-04 12:40   ` Neil Armstrong
2022-04-04 12:40     ` Neil Armstrong
2022-04-04 12:40     ` Neil Armstrong
2022-04-04 12:40     ` Neil Armstrong
2022-04-11  2:44     ` Liang Yang
2022-04-11  2:44       ` Liang Yang
2022-04-11  2:44       ` Liang Yang
2022-04-11  2:44       ` Liang Yang
2022-04-04 14:26   ` kernel test robot
2022-04-04 14:26     ` kernel test robot
2022-04-04 14:26     ` kernel test robot
2022-04-04 14:26     ` kernel test robot
2022-04-05 11:48   ` kernel test robot
2022-04-05 11:48     ` kernel test robot
2022-04-05 11:48     ` kernel test robot
2022-04-05 11:48     ` kernel test robot
2022-04-02  7:49 ` [PATCH v4 2/2] dt-bindings: nand: meson: refine Amlogic NAND controller driver Liang Yang
2022-04-02  7:49   ` Liang Yang
2022-04-02  7:49   ` Liang Yang
2022-04-02  7:49   ` Liang Yang
2022-04-20  7:41   ` Miquel Raynal
2022-04-20  7:41     ` Miquel Raynal
2022-04-20  7:41     ` Miquel Raynal
2022-04-20  7:41     ` Miquel Raynal
2022-04-20 11:55     ` Liang Yang
2022-04-20 11:55       ` Liang Yang
2022-04-20 11:55       ` Liang Yang
2022-04-20 11:55       ` Liang Yang
2022-04-20 12:16       ` Miquel Raynal
2022-04-20 12:16         ` Miquel Raynal
2022-04-20 12:16         ` Miquel Raynal
2022-04-20 12:16         ` Miquel Raynal
2022-04-20 12:35         ` Liang Yang
2022-04-20 12:35           ` Liang Yang
2022-04-20 12:35           ` Liang Yang
2022-04-20 12:35           ` Liang Yang

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=20220420092912.10ce66ec@xps13 \
    --to=miquel.raynal@bootlin.com \
    --cc=bichao.zheng@amlogic.com \
    --cc=devicetree@vger.kernel.org \
    --cc=jbrunet@baylibre.com \
    --cc=jianxin.pan@amlogic.com \
    --cc=kelvin.zhang@amlogic.com \
    --cc=khilman@baylibre.com \
    --cc=liang.yang@amlogic.com \
    --cc=linux-amlogic@lists.infradead.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=martin.blumenstingl@googlemail.com \
    --cc=narmstrong@baylibre.com \
    --cc=richard@nod.at \
    --cc=robh+dt@kernel.org \
    --cc=victor.wan@amlogic.com \
    --cc=vigneshr@ti.com \
    --cc=xianwei.zhao@amlogic.com \
    --cc=yonghui.yu@amlogic.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.