devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "André Przywara" <andre.przywara-5wv7dgnIgG8@public.gmane.org>
To: Icenowy Zheng <icenowy-h8G6r0blFSE@public.gmane.org>,
	Ulf Hansson <ulf.hansson-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
	Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	Maxime Ripard
	<maxime.ripard-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>,
	Chen-Yu Tsai <wens-jdAy2FN1RRM@public.gmane.org>
Cc: linux-mmc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
Subject: Re: [PATCH 2/3] arm64: allwinner: h6: add device tree nodes for MMC controllers
Date: Fri, 27 Apr 2018 22:25:49 +0100	[thread overview]
Message-ID: <8259b2d9-be02-68fb-90bb-bd0ebdee0b05@arm.com> (raw)
In-Reply-To: <6EBD7D16-E985-4345-B2C2-D0CE7B32F8C5-h8G6r0blFSE@public.gmane.org>

On 27/04/18 10:23, Icenowy Zheng wrote:
> 
> 
> 于 2018年4月27日 GMT+08:00 下午5:18:23, Andre Przywara <andre.przywara-5wv7dgnIgG8@public.gmane.org> 写到:
>> Hi,
>>
>> On 27/04/18 09:36, Icenowy Zheng wrote:
>>>
>>>
>>> 于 2018年4月27日 GMT+08:00 上午12:45:38, Andre Przywara
>> <andre.przywara-5wv7dgnIgG8@public.gmane.org> 写到:
>>>> Hi,
>>>>
>>>> On 26/04/18 15:07, Icenowy Zheng wrote:
>>>>> The Allwinner H6 SoC have 3 MMC controllers.
>>>>>
>>>>> Add device tree nodes for them.
>>>>>
>>>>> Signed-off-by: Icenowy Zheng <icenowy-h8G6r0blFSE@public.gmane.org>
>>>>> ---
>>>>>  arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 56
>>>> ++++++++++++++++++++++++++++
>>>>>  1 file changed, 56 insertions(+)
>>>>>
>>>>> diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi
>>>> b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi
>>>>> index 4debc3962830..3cbfc035c979 100644
>>>>> --- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi
>>>>> +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi
>>>>> @@ -124,12 +124,68 @@
>>>>>  			interrupt-controller;
>>>>>  			#interrupt-cells = <3>;
>>>>>  
>>>>> +			mmc0_pins: mmc0-pins {
>>>>> +				pins = "PF0", "PF1", "PF2", "PF3",
>>>>> +				       "PF4", "PF5";
>>>>> +				function = "mmc0";
>>>>> +				drive-strength = <30>;
>>>>> +				bias-pull-up;
>>>>> +			};
>>>>> +
>>>>> +			mmc2_pins: mmc2-pins {
>>>>> +				pins = "PC1", "PC4", "PC5", "PC6",
>>>>> +				       "PC7", "PC8", "PC9", "PC10",
>>>>> +				       "PC11", "PC12", "PC13", "PC14";
>>>>> +				function = "mmc2";
>>>>> +				drive-strength = <30>;
>>>>> +				bias-pull-up;
>>>>> +			};
>>>>> +
>>>>>  			uart0_ph_pins: uart0-ph {
>>>>>  				pins = "PH0", "PH1";
>>>>>  				function = "uart0";
>>>>>  			};
>>>>>  		};
>>>>>  
>>>>> +		mmc0: mmc@4020000 {
>>>>> +			compatible = "allwinner,sun50i-h6-mmc";
>>>>
>>>> This should be:
>>>> 			compatible = "allwinner,sun50i-h6-mmc",
>>>> 				     "allwinner,sun50i-a64-mmc";
>>>
>>> I'm intended to not add A64 compatible, as
>>> H6 is a quite new design
>>> (new process) and there might be different behavior, even on mmc0/1.
>>
>> But as your patch proves, it is fully backwards compatible: An A64
>> driver works with this device.
> 
> No, my patch only proves "the current A64 driver works
> with this device", not "Any A64 driver works with device", as
> the current driver doesn't fully use the capability provided
> by A64 MMC cobtrollers.

Good point, but I still believe every A64 driver would be capable of
driving an H6 MMC controller, ....

>> And this is what this compatible string list says: If your system does
>> not have a specific H6 driver, you can use an A64 driver.
>> You might not get all the (potentially) new features, but it covers
>> everything the A64 has.
>>
>> And a new silicon process doesn't matter here, since the software
>> interface is unchanged. *If* we find bugs, we can add quirks matching
> 
> I think there's timing parameters for higher speed bins which
> are different among chips. As we have currently no support
> for speed bins higher than DDR50, they're not added yet.

True, but what are those differences? I compared the A64 and H6 manuals
side by side, the differences I found are:
SMHC_FIFOTH[+0x40]:
	BSIZE_OF_TRANS[30:28]:
	- H6 supports 16 transfers for SMHC0 also.
	other parameters:
	- H6 recommends better values for SMHC0 also
SMHC_CSDC[+0x54]:
	- H6 doesn't mention restriction to SMHC2
	(though this might be a mistake)
SMHC_NTSR_REG[+0x5C]:
	- H6 defines fields for bits[24:8]
SMHC_EMCE[+0x64] and SMHC_EMCE_DBG[+0x68]:
	- H6 adds, for EMCE support
EMMC_DDR_SBIT_DET_REG[0x10c]:
	- A64 doesn't mention restriction to SMHC2,
	  but I believe this is a mistake
SMHC_EMCE_BMn[0x150 + 0x4 * 0..31]
	- H6 adds, for EMCE support

All those pieces are only *additions* to the H6 over the A64, so don't
affect backwards compatibility.

>> on
>> the H6 compatible string - that's why we put it here already, despite
>> having a matching string in the kernel at the moment.
> 
> Device tree is not driver data but hardware description, so
> it should follow "how the device is formed" rather than
> "how the device works".

True, but as shown above, the compatibility is really at the device level.
Unless you have any other information ...

Cheers,
Andre.

-- 
You received this message because you are subscribed to the Google Groups "linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
For more options, visit https://groups.google.com/d/optout.

  parent reply	other threads:[~2018-04-27 21:25 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-26 14:07 [PATCH 0/3] Enable basic MMC support on Allwinner H6 Icenowy Zheng
     [not found] ` <20180426140728.43155-1-icenowy-h8G6r0blFSE@public.gmane.org>
2018-04-26 14:07   ` [PATCH 1/3] mmc: sunxi: add support for the MMC controller on H6 Icenowy Zheng
     [not found]     ` <20180426140728.43155-2-icenowy-h8G6r0blFSE@public.gmane.org>
2018-04-26 16:45       ` Andre Przywara
     [not found]         ` <f722ce51-2391-620c-df65-48f047b5f3d5-5wv7dgnIgG8@public.gmane.org>
2018-04-27  8:38           ` Icenowy Zheng
     [not found]             ` <EECAFDD1-FEAC-42DF-BB17-F11C1C8612DE-h8G6r0blFSE@public.gmane.org>
2018-04-27  9:23               ` Andre Przywara
2018-05-02 12:54       ` Ulf Hansson
2018-04-26 14:07   ` [PATCH 2/3] arm64: allwinner: h6: add device tree nodes for MMC controllers Icenowy Zheng
     [not found]     ` <20180426140728.43155-3-icenowy-h8G6r0blFSE@public.gmane.org>
2018-04-26 16:45       ` Andre Przywara
     [not found]         ` <9571735d-929f-a2ef-ed97-dc9193420b73-5wv7dgnIgG8@public.gmane.org>
2018-04-27  8:36           ` Icenowy Zheng
     [not found]             ` <77DF7884-8DA8-4ED5-BB51-941CFDE4A123-h8G6r0blFSE@public.gmane.org>
2018-04-27  9:18               ` Andre Przywara
     [not found]                 ` <0ae1b6ce-c1cf-61e8-e09b-abec47b089b2-5wv7dgnIgG8@public.gmane.org>
2018-04-27  9:23                   ` Icenowy Zheng
     [not found]                     ` <6EBD7D16-E985-4345-B2C2-D0CE7B32F8C5-h8G6r0blFSE@public.gmane.org>
2018-04-27 21:25                       ` André Przywara [this message]
     [not found]                         ` <8259b2d9-be02-68fb-90bb-bd0ebdee0b05-5wv7dgnIgG8@public.gmane.org>
2018-06-26  0:28                           ` Icenowy Zheng
2018-04-26 14:07   ` [PATCH 3/3] arm64: allwinner: h6: enable MMC0/2 on Pine H64 Icenowy Zheng
     [not found]     ` <20180426140728.43155-4-icenowy-h8G6r0blFSE@public.gmane.org>
2018-04-26 16:46       ` Andre Przywara
2018-04-27  7:12         ` [linux-sunxi] " Icenowy Zheng
     [not found]           ` <83EDF187-5EB2-4FEB-99BC-9D5B728D3A45-h8G6r0blFSE@public.gmane.org>
2018-04-30  9:47             ` Andre Przywara
2018-04-30  9:51               ` [linux-sunxi] " Icenowy Zheng
     [not found]                 ` <CDCEAF85-ACD3-4884-8727-3AB1BFF670FE-h8G6r0blFSE@public.gmane.org>
2018-04-30 10:44                   ` Andre Przywara
2018-05-01 15:52                     ` [linux-sunxi] " Chen-Yu Tsai
     [not found]                       ` <CAGb2v6783ERJHPd5ov3Ebf+V5LNm+bL=ypAgetPLigSyW6_niQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-05-02 11:01                         ` Andre Przywara
     [not found]                           ` <add8a505-9daa-43d6-eada-b5925d58f1a1-5wv7dgnIgG8@public.gmane.org>
2018-05-04  2:44                             ` Chen-Yu Tsai
     [not found]               ` <45956397-a593-e51e-8637-655178c5901c-5wv7dgnIgG8@public.gmane.org>
2018-05-01 15:48                 ` Chen-Yu Tsai
2018-05-02  9:36                 ` Maxime Ripard
2018-05-02 11:01                   ` Andre Przywara
     [not found]                     ` <aa2d6072-87a5-cd52-d3a5-17df889e6bc9-5wv7dgnIgG8@public.gmane.org>
2018-05-03 18:05                       ` Maxime Ripard

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=8259b2d9-be02-68fb-90bb-bd0ebdee0b05@arm.com \
    --to=andre.przywara-5wv7dgnigg8@public.gmane.org \
    --cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=icenowy-h8G6r0blFSE@public.gmane.org \
    --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-mmc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org \
    --cc=maxime.ripard-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org \
    --cc=robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=ulf.hansson-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
    --cc=wens-jdAy2FN1RRM@public.gmane.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).