diff mbox series

[1/2] dt-bindings: arm: sunxi: add OrangePi 3 with eMMC

Message ID 20200115194216.173117-2-jernej.skrabec@siol.net (mailing list archive)
State New, archived
Headers show
Series arm64: dts: allwinner: h6: Introduce OrangePi 3 eMMC board | expand

Commit Message

Jernej Škrabec Jan. 15, 2020, 7:42 p.m. UTC
OrangePi 3 can optionally have eMMC. Add a compatible for it.

Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
---
 Documentation/devicetree/bindings/arm/sunxi.yaml | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Rob Herring Jan. 15, 2020, 9:57 p.m. UTC | #1
On Wed, Jan 15, 2020 at 1:42 PM Jernej Skrabec <jernej.skrabec@siol.net> wrote:
>
> OrangePi 3 can optionally have eMMC. Add a compatible for it.

Is this just a population option or a different board layout? If the
former, I don't think you need a new compatible, just add/enable a
node for the eMMC.

Rob
Jernej Škrabec Jan. 15, 2020, 11:10 p.m. UTC | #2
Hi!

Dne sreda, 15. januar 2020 ob 22:57:31 CET je Rob Herring napisal(a):
> On Wed, Jan 15, 2020 at 1:42 PM Jernej Skrabec <jernej.skrabec@siol.net> 
wrote:
> > OrangePi 3 can optionally have eMMC. Add a compatible for it.
> 
> Is this just a population option or a different board layout? If the
> former, I don't think you need a new compatible, just add/enable a
> node for the eMMC.

I have only board with eMMC but I imagine it's the former. Even so, current 
approach with Allwinner boards is to have two different board DT files, one for 
each variant. This can be seen from Documentation/devicetree/bindings/arm/
sunxi.yaml which has a lot of compatibles ending with "-emmc". I guess reason 
for that is to avoid having MMC controller being powered on for no reason.

Best regards,
Jernej
Maxime Ripard Jan. 16, 2020, 12:29 p.m. UTC | #3
On Thu, Jan 16, 2020 at 12:10:58AM +0100, Jernej Škrabec wrote:
> Hi!
>
> Dne sreda, 15. januar 2020 ob 22:57:31 CET je Rob Herring napisal(a):
> > On Wed, Jan 15, 2020 at 1:42 PM Jernej Skrabec <jernej.skrabec@siol.net>
> wrote:
> > > OrangePi 3 can optionally have eMMC. Add a compatible for it.
> >
> > Is this just a population option or a different board layout? If the
> > former, I don't think you need a new compatible, just add/enable a
> > node for the eMMC.
>
> I have only board with eMMC but I imagine it's the former. Even so, current
> approach with Allwinner boards is to have two different board DT files, one for
> each variant. This can be seen from Documentation/devicetree/bindings/arm/
> sunxi.yaml which has a lot of compatibles ending with "-emmc". I guess reason
> for that is to avoid having MMC controller being powered on for no reason.

The main reason for that is that those populating options can be
conflicting. For example, last week we discussed an issue about the
eMMC being on the same pin set than an SPI flash, both options being
available.

The solution Andre suggested then was to let the eMMC be disabled, and
have the bootloader probe the emmc, and if found, enable
it. Otherwise, it means that you have a SPI flash (and enable it).

I guess a similar solution would apply here.

Maxime
Jernej Škrabec Jan. 16, 2020, 4:33 p.m. UTC | #4
Dne četrtek, 16. januar 2020 ob 13:29:44 CET je Maxime Ripard napisal(a):
> On Thu, Jan 16, 2020 at 12:10:58AM +0100, Jernej Škrabec wrote:
> > Hi!
> > 
> > Dne sreda, 15. januar 2020 ob 22:57:31 CET je Rob Herring napisal(a):
> > > On Wed, Jan 15, 2020 at 1:42 PM Jernej Skrabec <jernej.skrabec@siol.net>
> > 
> > wrote:
> > > > OrangePi 3 can optionally have eMMC. Add a compatible for it.
> > > 
> > > Is this just a population option or a different board layout? If the
> > > former, I don't think you need a new compatible, just add/enable a
> > > node for the eMMC.
> > 
> > I have only board with eMMC but I imagine it's the former. Even so,
> > current
> > approach with Allwinner boards is to have two different board DT files,
> > one for each variant. This can be seen from
> > Documentation/devicetree/bindings/arm/ sunxi.yaml which has a lot of
> > compatibles ending with "-emmc". I guess reason for that is to avoid
> > having MMC controller being powered on for no reason.
> The main reason for that is that those populating options can be
> conflicting. For example, last week we discussed an issue about the
> eMMC being on the same pin set than an SPI flash, both options being
> available.
> 
> The solution Andre suggested then was to let the eMMC be disabled, and
> have the bootloader probe the emmc, and if found, enable
> it. Otherwise, it means that you have a SPI flash (and enable it).
> 
> I guess a similar solution would apply here.

From what I can tell from schematic, pins are dedicated for eMMC.

So what solution do you suggest? Put eMMC node in original OrangePi 3 DT and 
set status to disabled?

Best regards,
Jernej
Maxime Ripard Jan. 17, 2020, 6:25 p.m. UTC | #5
Hi,

On Thu, Jan 16, 2020 at 05:33:45PM +0100, Jernej Škrabec wrote:
> Dne četrtek, 16. januar 2020 ob 13:29:44 CET je Maxime Ripard napisal(a):
> > On Thu, Jan 16, 2020 at 12:10:58AM +0100, Jernej Škrabec wrote:
> > > Hi!
> > >
> > > Dne sreda, 15. januar 2020 ob 22:57:31 CET je Rob Herring napisal(a):
> > > > On Wed, Jan 15, 2020 at 1:42 PM Jernej Skrabec <jernej.skrabec@siol.net>
> > >
> > > wrote:
> > > > > OrangePi 3 can optionally have eMMC. Add a compatible for it.
> > > >
> > > > Is this just a population option or a different board layout? If the
> > > > former, I don't think you need a new compatible, just add/enable a
> > > > node for the eMMC.
> > >
> > > I have only board with eMMC but I imagine it's the former. Even so,
> > > current
> > > approach with Allwinner boards is to have two different board DT files,
> > > one for each variant. This can be seen from
> > > Documentation/devicetree/bindings/arm/ sunxi.yaml which has a lot of
> > > compatibles ending with "-emmc". I guess reason for that is to avoid
> > > having MMC controller being powered on for no reason.
> > The main reason for that is that those populating options can be
> > conflicting. For example, last week we discussed an issue about the
> > eMMC being on the same pin set than an SPI flash, both options being
> > available.
> >
> > The solution Andre suggested then was to let the eMMC be disabled, and
> > have the bootloader probe the emmc, and if found, enable
> > it. Otherwise, it means that you have a SPI flash (and enable it).
> >
> > I guess a similar solution would apply here.
>
> From what I can tell from schematic, pins are dedicated for eMMC.
>
> So what solution do you suggest? Put eMMC node in original OrangePi 3 DT and
> set status to disabled?

If it's always dedicated to eMMC, but the eMMC is not always there, I
guess we could remove the non-removable property from the eMMC
mode. IIRC, without it (and without CD GPIO), it will fall-back to
polling the card and will be able to detect it if it's there (and not
use it if it's not).

Maxime
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/arm/sunxi.yaml b/Documentation/devicetree/bindings/arm/sunxi.yaml
index 327ce6730823..c1e447915c59 100644
--- a/Documentation/devicetree/bindings/arm/sunxi.yaml
+++ b/Documentation/devicetree/bindings/arm/sunxi.yaml
@@ -763,6 +763,11 @@  properties:
           - const: xunlong,orangepi-3
           - const: allwinner,sun50i-h6
 
+      - description: Xunlong OrangePi 3 (with eMMC)
+        items:
+          - const: xunlong,orangepi-3-emmc
+          - const: allwinner,sun50i-h6
+
       - description: Xunlong OrangePi Lite
         items:
           - const: xunlong,orangepi-lite