2020-11-07 12:57:34

by Icenowy Zheng

[permalink] [raw]
Subject: [PATCH 3/3] arm64: allwinner: dts: a64: add DT for PineTab developer sample

Some developers received PineTab samples that used an old LCD panel.

Add device tree for these samples.

Signed-off-by: Icenowy Zheng <[email protected]>
---
arch/arm64/boot/dts/allwinner/Makefile | 1 +
.../dts/allwinner/sun50i-a64-pinetab-dev.dts | 28 +++++++++++++++++++
2 files changed, 29 insertions(+)
create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab-dev.dts

diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile
index 211d1e9d4701..a221dcebfad4 100644
--- a/arch/arm64/boot/dts/allwinner/Makefile
+++ b/arch/arm64/boot/dts/allwinner/Makefile
@@ -13,6 +13,7 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinephone-1.0.dtb
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinephone-1.1.dtb
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinephone-1.2.dtb
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinetab.dtb
+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinetab-dev.dtb
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-sopine-baseboard.dtb
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-teres-i.dtb
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a100-allwinner-perf1.dtb
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab-dev.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab-dev.dts
new file mode 100644
index 000000000000..3a4153890f3e
--- /dev/null
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab-dev.dts
@@ -0,0 +1,28 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (C) 2020 Icenowy Zheng <[email protected]>
+ *
+ */
+
+/dts-v1/;
+
+#include "sun50i-a64-pinetab.dts"
+
+/ {
+ model = "PineTab Developer Sample";
+ compatible = "pine64,pinetab-dev", "allwinner,sun50i-a64";
+};
+
+&dsi {
+ /delete-node/ panel@0;
+
+ panel@0 {
+ compatible = "feixin,k101-im2ba02";
+ reg = <0>;
+ avdd-supply = <&reg_dc1sw>;
+ dvdd-supply = <&reg_dc1sw>;
+ cvdd-supply = <&reg_ldo_io1>;
+ reset-gpios = <&pio 3 24 GPIO_ACTIVE_HIGH>; /* PD24 */
+ backlight = <&backlight>;
+ };
+};
--
2.28.0


2020-11-10 10:41:29

by Maxime Ripard

[permalink] [raw]
Subject: Re: [PATCH 3/3] arm64: allwinner: dts: a64: add DT for PineTab developer sample

On Sat, Nov 07, 2020 at 08:53:32PM +0800, Icenowy Zheng wrote:
> Some developers received PineTab samples that used an old LCD panel.
>
> Add device tree for these samples.
>
> Signed-off-by: Icenowy Zheng <[email protected]>
> ---
> arch/arm64/boot/dts/allwinner/Makefile | 1 +
> .../dts/allwinner/sun50i-a64-pinetab-dev.dts | 28 +++++++++++++++++++
> 2 files changed, 29 insertions(+)
> create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab-dev.dts
>
> diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile
> index 211d1e9d4701..a221dcebfad4 100644
> --- a/arch/arm64/boot/dts/allwinner/Makefile
> +++ b/arch/arm64/boot/dts/allwinner/Makefile
> @@ -13,6 +13,7 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinephone-1.0.dtb
> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinephone-1.1.dtb
> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinephone-1.2.dtb
> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinetab.dtb
> +dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinetab-dev.dtb
> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-sopine-baseboard.dtb
> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-teres-i.dtb
> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a100-allwinner-perf1.dtb
> diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab-dev.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab-dev.dts
> new file mode 100644
> index 000000000000..3a4153890f3e
> --- /dev/null
> +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab-dev.dts
> @@ -0,0 +1,28 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Copyright (C) 2020 Icenowy Zheng <[email protected]>
> + *
> + */
> +
> +/dts-v1/;
> +
> +#include "sun50i-a64-pinetab.dts"
> +
> +/ {
> + model = "PineTab Developer Sample";
> + compatible = "pine64,pinetab-dev", "allwinner,sun50i-a64";
> +};

Changing the DT and the compatible half-way through it isn't ok. Please
add a new DT with the newer revision like we did for the pinephone

Maxime


Attachments:
(No filename) (1.94 kB)
signature.asc (235.00 B)
Download all attachments

2020-11-10 10:44:00

by Icenowy Zheng

[permalink] [raw]
Subject: Re: [PATCH 3/3] arm64: allwinner: dts: a64: add DT for PineTab developer sample



于 2020年11月10日 GMT+08:00 下午6:39:25, Maxime Ripard <[email protected]> 写到:
>On Sat, Nov 07, 2020 at 08:53:32PM +0800, Icenowy Zheng wrote:
>> Some developers received PineTab samples that used an old LCD panel.
>>
>> Add device tree for these samples.
>>
>> Signed-off-by: Icenowy Zheng <[email protected]>
>> ---
>> arch/arm64/boot/dts/allwinner/Makefile | 1 +
>> .../dts/allwinner/sun50i-a64-pinetab-dev.dts | 28
>+++++++++++++++++++
>> 2 files changed, 29 insertions(+)
>> create mode 100644
>arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab-dev.dts
>>
>> diff --git a/arch/arm64/boot/dts/allwinner/Makefile
>b/arch/arm64/boot/dts/allwinner/Makefile
>> index 211d1e9d4701..a221dcebfad4 100644
>> --- a/arch/arm64/boot/dts/allwinner/Makefile
>> +++ b/arch/arm64/boot/dts/allwinner/Makefile
>> @@ -13,6 +13,7 @@ dtb-$(CONFIG_ARCH_SUNXI) +=
>sun50i-a64-pinephone-1.0.dtb
>> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinephone-1.1.dtb
>> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinephone-1.2.dtb
>> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinetab.dtb
>> +dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinetab-dev.dtb
>> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-sopine-baseboard.dtb
>> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-teres-i.dtb
>> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a100-allwinner-perf1.dtb
>> diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab-dev.dts
>b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab-dev.dts
>> new file mode 100644
>> index 000000000000..3a4153890f3e
>> --- /dev/null
>> +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab-dev.dts
>> @@ -0,0 +1,28 @@
>> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
>> +/*
>> + * Copyright (C) 2020 Icenowy Zheng <[email protected]>
>> + *
>> + */
>> +
>> +/dts-v1/;
>> +
>> +#include "sun50i-a64-pinetab.dts"
>> +
>> +/ {
>> + model = "PineTab Developer Sample";
>> + compatible = "pine64,pinetab-dev", "allwinner,sun50i-a64";
>> +};
>
>Changing the DT and the compatible half-way through it isn't ok. Please
>add a new DT with the newer revision like we did for the pinephone

We did this on Pine H64.

>
>Maxime

2020-11-16 16:00:18

by Maxime Ripard

[permalink] [raw]
Subject: Re: [PATCH 3/3] arm64: allwinner: dts: a64: add DT for PineTab developer sample

On Tue, Nov 10, 2020 at 06:41:37PM +0800, Icenowy Zheng wrote:
>
>
> 于 2020年11月10日 GMT+08:00 下午6:39:25, Maxime Ripard <[email protected]> 写到:
> >On Sat, Nov 07, 2020 at 08:53:32PM +0800, Icenowy Zheng wrote:
> >> Some developers received PineTab samples that used an old LCD panel.
> >>
> >> Add device tree for these samples.
> >>
> >> Signed-off-by: Icenowy Zheng <[email protected]>
> >> ---
> >> arch/arm64/boot/dts/allwinner/Makefile | 1 +
> >> .../dts/allwinner/sun50i-a64-pinetab-dev.dts | 28
> >+++++++++++++++++++
> >> 2 files changed, 29 insertions(+)
> >> create mode 100644
> >arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab-dev.dts
> >>
> >> diff --git a/arch/arm64/boot/dts/allwinner/Makefile
> >b/arch/arm64/boot/dts/allwinner/Makefile
> >> index 211d1e9d4701..a221dcebfad4 100644
> >> --- a/arch/arm64/boot/dts/allwinner/Makefile
> >> +++ b/arch/arm64/boot/dts/allwinner/Makefile
> >> @@ -13,6 +13,7 @@ dtb-$(CONFIG_ARCH_SUNXI) +=
> >sun50i-a64-pinephone-1.0.dtb
> >> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinephone-1.1.dtb
> >> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinephone-1.2.dtb
> >> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinetab.dtb
> >> +dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinetab-dev.dtb
> >> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-sopine-baseboard.dtb
> >> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-teres-i.dtb
> >> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a100-allwinner-perf1.dtb
> >> diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab-dev.dts
> >b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab-dev.dts
> >> new file mode 100644
> >> index 000000000000..3a4153890f3e
> >> --- /dev/null
> >> +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab-dev.dts
> >> @@ -0,0 +1,28 @@
> >> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> >> +/*
> >> + * Copyright (C) 2020 Icenowy Zheng <[email protected]>
> >> + *
> >> + */
> >> +
> >> +/dts-v1/;
> >> +
> >> +#include "sun50i-a64-pinetab.dts"
> >> +
> >> +/ {
> >> + model = "PineTab Developer Sample";
> >> + compatible = "pine64,pinetab-dev", "allwinner,sun50i-a64";
> >> +};
> >
> >Changing the DT and the compatible half-way through it isn't ok. Please
> >add a new DT with the newer revision like we did for the pinephone
>
> We did this on Pine H64.

What are you referring to? I couldn't find a commit where we did what
you suggested in that patch to the pine H64.

Maxime


Attachments:
(No filename) (2.41 kB)
signature.asc (235.00 B)
Download all attachments

2020-11-16 18:39:03

by Icenowy Zheng

[permalink] [raw]
Subject: Re: [linux-sunxi] Re: [PATCH 3/3] arm64: allwinner: dts: a64: add DT for PineTab developer sample



于 2020年11月16日 GMT+08:00 下午11:55:08, Maxime Ripard <[email protected]> 写到:
>On Tue, Nov 10, 2020 at 06:41:37PM +0800, Icenowy Zheng wrote:
>>
>>
>> 于 2020年11月10日 GMT+08:00 下午6:39:25, Maxime Ripard <[email protected]>
>写到:
>> >On Sat, Nov 07, 2020 at 08:53:32PM +0800, Icenowy Zheng wrote:
>> >> Some developers received PineTab samples that used an old LCD
>panel.
>> >>
>> >> Add device tree for these samples.
>> >>
>> >> Signed-off-by: Icenowy Zheng <[email protected]>
>> >> ---
>> >> arch/arm64/boot/dts/allwinner/Makefile | 1 +
>> >> .../dts/allwinner/sun50i-a64-pinetab-dev.dts | 28
>> >+++++++++++++++++++
>> >> 2 files changed, 29 insertions(+)
>> >> create mode 100644
>> >arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab-dev.dts
>> >>
>> >> diff --git a/arch/arm64/boot/dts/allwinner/Makefile
>> >b/arch/arm64/boot/dts/allwinner/Makefile
>> >> index 211d1e9d4701..a221dcebfad4 100644
>> >> --- a/arch/arm64/boot/dts/allwinner/Makefile
>> >> +++ b/arch/arm64/boot/dts/allwinner/Makefile
>> >> @@ -13,6 +13,7 @@ dtb-$(CONFIG_ARCH_SUNXI) +=
>> >sun50i-a64-pinephone-1.0.dtb
>> >> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinephone-1.1.dtb
>> >> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinephone-1.2.dtb
>> >> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinetab.dtb
>> >> +dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinetab-dev.dtb
>> >> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-sopine-baseboard.dtb
>> >> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-teres-i.dtb
>> >> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a100-allwinner-perf1.dtb
>> >> diff --git
>a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab-dev.dts
>> >b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab-dev.dts
>> >> new file mode 100644
>> >> index 000000000000..3a4153890f3e
>> >> --- /dev/null
>> >> +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab-dev.dts
>> >> @@ -0,0 +1,28 @@
>> >> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
>> >> +/*
>> >> + * Copyright (C) 2020 Icenowy Zheng <[email protected]>
>> >> + *
>> >> + */
>> >> +
>> >> +/dts-v1/;
>> >> +
>> >> +#include "sun50i-a64-pinetab.dts"
>> >> +
>> >> +/ {
>> >> + model = "PineTab Developer Sample";
>> >> + compatible = "pine64,pinetab-dev", "allwinner,sun50i-a64";
>> >> +};
>> >
>> >Changing the DT and the compatible half-way through it isn't ok.
>Please
>> >add a new DT with the newer revision like we did for the pinephone
>>
>> We did this on Pine H64.
>
>What are you referring to? I couldn't find a commit where we did what
>you suggested in that patch to the pine H64.

Oh the situation is complex. On Pine H64, we didn't specify anything at
start (which is the same here), the DT is originally version-neutral
but then transitioned to model B, then reverted to model A. Here the DT is always
for the sample.

However, for Pine H64 there's model A/B names, but for PineTab there's no
any samples that are sold, thus except who got the samples, all PineTab
owners simply owns a "PineTab", not a "PineTab xxx version".

>
>Maxime

2020-11-20 16:04:17

by Maxime Ripard

[permalink] [raw]
Subject: Re: [linux-sunxi] Re: [PATCH 3/3] arm64: allwinner: dts: a64: add DT for PineTab developer sample

On Tue, Nov 17, 2020 at 02:36:48AM +0800, Icenowy Zheng wrote:
>
>
> 于 2020年11月16日 GMT+08:00 下午11:55:08, Maxime Ripard <[email protected]> 写到:
> >On Tue, Nov 10, 2020 at 06:41:37PM +0800, Icenowy Zheng wrote:
> >>
> >>
> >> 于 2020年11月10日 GMT+08:00 下午6:39:25, Maxime Ripard <[email protected]>
> >写到:
> >> >On Sat, Nov 07, 2020 at 08:53:32PM +0800, Icenowy Zheng wrote:
> >> >> Some developers received PineTab samples that used an old LCD
> >panel.
> >> >>
> >> >> Add device tree for these samples.
> >> >>
> >> >> Signed-off-by: Icenowy Zheng <[email protected]>
> >> >> ---
> >> >> arch/arm64/boot/dts/allwinner/Makefile | 1 +
> >> >> .../dts/allwinner/sun50i-a64-pinetab-dev.dts | 28
> >> >+++++++++++++++++++
> >> >> 2 files changed, 29 insertions(+)
> >> >> create mode 100644
> >> >arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab-dev.dts
> >> >>
> >> >> diff --git a/arch/arm64/boot/dts/allwinner/Makefile
> >> >b/arch/arm64/boot/dts/allwinner/Makefile
> >> >> index 211d1e9d4701..a221dcebfad4 100644
> >> >> --- a/arch/arm64/boot/dts/allwinner/Makefile
> >> >> +++ b/arch/arm64/boot/dts/allwinner/Makefile
> >> >> @@ -13,6 +13,7 @@ dtb-$(CONFIG_ARCH_SUNXI) +=
> >> >sun50i-a64-pinephone-1.0.dtb
> >> >> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinephone-1.1.dtb
> >> >> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinephone-1.2.dtb
> >> >> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinetab.dtb
> >> >> +dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinetab-dev.dtb
> >> >> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-sopine-baseboard.dtb
> >> >> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-teres-i.dtb
> >> >> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a100-allwinner-perf1.dtb
> >> >> diff --git
> >a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab-dev.dts
> >> >b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab-dev.dts
> >> >> new file mode 100644
> >> >> index 000000000000..3a4153890f3e
> >> >> --- /dev/null
> >> >> +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab-dev.dts
> >> >> @@ -0,0 +1,28 @@
> >> >> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> >> >> +/*
> >> >> + * Copyright (C) 2020 Icenowy Zheng <[email protected]>
> >> >> + *
> >> >> + */
> >> >> +
> >> >> +/dts-v1/;
> >> >> +
> >> >> +#include "sun50i-a64-pinetab.dts"
> >> >> +
> >> >> +/ {
> >> >> + model = "PineTab Developer Sample";
> >> >> + compatible = "pine64,pinetab-dev", "allwinner,sun50i-a64";
> >> >> +};
> >> >
> >> >Changing the DT and the compatible half-way through it isn't ok.
> >Please
> >> >add a new DT with the newer revision like we did for the pinephone
> >>
> >> We did this on Pine H64.
> >
> >What are you referring to? I couldn't find a commit where we did what
> >you suggested in that patch to the pine H64.
>
> Oh the situation is complex. On Pine H64, we didn't specify anything at
> start (which is the same here), the DT is originally version-neutral
> but then transitioned to model B, then reverted to model A. Here the DT is always
> for the sample.
>
> However, for Pine H64 there's model A/B names, but for PineTab there's no
> any samples that are sold, thus except who got the samples, all PineTab
> owners simply owns a "PineTab", not a "PineTab xxx version".

It's fairly simple really, we can't really predict the future, so any DT
submitted is for the current version of whatever board there is. This is
what we (somewhat messily) did for the PineH64, for the pinephone, or
really any other board that has several revisions

Maxime


Attachments:
(No filename) (3.49 kB)
signature.asc (235.00 B)
Download all attachments

2020-11-20 23:32:32

by Icenowy Zheng

[permalink] [raw]
Subject: Re: [linux-sunxi] Re: [PATCH 3/3] arm64: allwinner: dts: a64: add DT for PineTab developer sample



于 2020年11月20日 GMT+08:00 下午11:59:39, Maxime Ripard <[email protected]> 写到:
>On Tue, Nov 17, 2020 at 02:36:48AM +0800, Icenowy Zheng wrote:
>>
>>
>> 于 2020年11月16日 GMT+08:00 下午11:55:08, Maxime Ripard <[email protected]>
>写到:
>> >On Tue, Nov 10, 2020 at 06:41:37PM +0800, Icenowy Zheng wrote:
>> >>
>> >>
>> >> 于 2020年11月10日 GMT+08:00 下午6:39:25, Maxime Ripard
><[email protected]>
>> >写到:
>> >> >On Sat, Nov 07, 2020 at 08:53:32PM +0800, Icenowy Zheng wrote:
>> >> >> Some developers received PineTab samples that used an old LCD
>> >panel.
>> >> >>
>> >> >> Add device tree for these samples.
>> >> >>
>> >> >> Signed-off-by: Icenowy Zheng <[email protected]>
>> >> >> ---
>> >> >> arch/arm64/boot/dts/allwinner/Makefile | 1 +
>> >> >> .../dts/allwinner/sun50i-a64-pinetab-dev.dts | 28
>> >> >+++++++++++++++++++
>> >> >> 2 files changed, 29 insertions(+)
>> >> >> create mode 100644
>> >> >arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab-dev.dts
>> >> >>
>> >> >> diff --git a/arch/arm64/boot/dts/allwinner/Makefile
>> >> >b/arch/arm64/boot/dts/allwinner/Makefile
>> >> >> index 211d1e9d4701..a221dcebfad4 100644
>> >> >> --- a/arch/arm64/boot/dts/allwinner/Makefile
>> >> >> +++ b/arch/arm64/boot/dts/allwinner/Makefile
>> >> >> @@ -13,6 +13,7 @@ dtb-$(CONFIG_ARCH_SUNXI) +=
>> >> >sun50i-a64-pinephone-1.0.dtb
>> >> >> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinephone-1.1.dtb
>> >> >> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinephone-1.2.dtb
>> >> >> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinetab.dtb
>> >> >> +dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinetab-dev.dtb
>> >> >> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-sopine-baseboard.dtb
>> >> >> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-teres-i.dtb
>> >> >> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a100-allwinner-perf1.dtb
>> >> >> diff --git
>> >a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab-dev.dts
>> >> >b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab-dev.dts
>> >> >> new file mode 100644
>> >> >> index 000000000000..3a4153890f3e
>> >> >> --- /dev/null
>> >> >> +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab-dev.dts
>> >> >> @@ -0,0 +1,28 @@
>> >> >> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
>> >> >> +/*
>> >> >> + * Copyright (C) 2020 Icenowy Zheng <[email protected]>
>> >> >> + *
>> >> >> + */
>> >> >> +
>> >> >> +/dts-v1/;
>> >> >> +
>> >> >> +#include "sun50i-a64-pinetab.dts"
>> >> >> +
>> >> >> +/ {
>> >> >> + model = "PineTab Developer Sample";
>> >> >> + compatible = "pine64,pinetab-dev", "allwinner,sun50i-a64";
>> >> >> +};
>> >> >
>> >> >Changing the DT and the compatible half-way through it isn't ok.
>> >Please
>> >> >add a new DT with the newer revision like we did for the
>pinephone
>> >>
>> >> We did this on Pine H64.
>> >
>> >What are you referring to? I couldn't find a commit where we did
>what
>> >you suggested in that patch to the pine H64.
>>
>> Oh the situation is complex. On Pine H64, we didn't specify anything
>at
>> start (which is the same here), the DT is originally version-neutral
>> but then transitioned to model B, then reverted to model A. Here the
>DT is always
>> for the sample.
>>
>> However, for Pine H64 there's model A/B names, but for PineTab
>there's no
>> any samples that are sold, thus except who got the samples, all
>PineTab
>> owners simply owns a "PineTab", not a "PineTab xxx version".
>
>It's fairly simple really, we can't really predict the future, so any
>DT
>submitted is for the current version of whatever board there is. This
>is
>what we (somewhat messily) did for the PineH64, for the pinephone, or
>really any other board that has several revisions

Okay. But I'm not satisfied with a non-public sample occupies
the pinetab name. Is rename it to pinetab-dev and add a
pinetab-retail okay?

>
>Maxime

2020-11-21 02:55:55

by Samuel Holland

[permalink] [raw]
Subject: Re: [linux-sunxi] Re: [PATCH 3/3] arm64: allwinner: dts: a64: add DT for PineTab developer sample

Maxime,

On 11/20/20 5:30 PM, Icenowy Zheng wrote:
>>>>>>> +/ {
>>>>>>> + model = "PineTab Developer Sample";
>>>>>>> + compatible = "pine64,pinetab-dev", "allwinner,sun50i-a64";
>>>>>>> +};
>>>>>>
>>>>>> Changing the DT and the compatible half-way through it isn't ok. Please
>>>>>> add a new DT with the newer revision like we did for the pinephone
>>>>>
>>>>> We did this on Pine H64.
>>>>
>>>> What are you referring to? I couldn't find a commit where we did what
>>>> you suggested in that patch to the pine H64.
>>>
>>> Oh the situation is complex. On Pine H64, we didn't specify anything at
>>> start (which is the same here), the DT is originally version-neutral
>>> but then transitioned to model B, then reverted to model A. Here the DT is always
>>> for the sample.
>>>
>>> However, for Pine H64 there's model A/B names, but for PineTab there's no
>>> any samples that are sold, thus except who got the samples, all PineTab
>>> owners simply owns a "PineTab", not a "PineTab xxx version".
>>
>> It's fairly simple really, we can't really predict the future, so any DT
>> submitted is for the current version of whatever board there is. This is

I don't think that was the intention at all. The DT was submitted for a
future product, whatever that future product ends up being at the time
of its release. Since there are necessarily no users until the product
ships, there is no chance of breaking users by modifying the DT.

>> what we (somewhat messily) did for the PineH64, for the pinephone, or
>> really any other board that has several revisions

Surely a non-public prototype doesn't count as a separate revision! This
sort of policy strongly discourages ever shipping a board with
out-of-the-box mainline Linux support. Because if there any hardware
bugs fixed between initial upstreaming and production, the manufacture
must come up with a new DT name.

This is hostile to the users as well, because the "canonical" DT name no
longer matches the "canonical" (read: the only one ever available)
version of the hardware.

Do you want manufacturers to submit their initial board DT as
"$BOARD-prototype.dts", just in case they have to make a change before
production? And only after the board is shipped (with out-of-tree
patches, of course, to use $BOARD.dts, since the shipped board is *not*
the prototype) submit a "$BOARD.dts" to mainline?

Maxime, can you clarify specifically what the line is where a device
tree is "locked down" and further changes to the hardware require a new
name? First sample leaves the factory? $NUMBER units produced? First
sold to the public for money?

Without some guidance, or a change in policy, this problem is going to
keep coming up again and again.

You'll note that so far it has mostly affected Pine devices, and I don't
think that's because they make more board revisions than other
manufacturers. It's because they're actively involved in getting their
boards supported upstream. For other manufacturers, it's some user
sending in a device tree months after the hardware ships to the public
-- of course the hardware is more stable at that point. I think Pine's
behavior is something we want to encourage, not penalize.

> Okay. But I'm not satisfied with a non-public sample occupies
> the pinetab name. Is rename it to pinetab-dev and add a
> pinetab-retail okay?
To me, naming the production version anything but "pinetab" isn't
satisfying either.

Samuel

2020-11-23 23:29:51

by Maxime Ripard

[permalink] [raw]
Subject: Re: [linux-sunxi] Re: [PATCH 3/3] arm64: allwinner: dts: a64: add DT for PineTab developer sample

Hi!

On Fri, Nov 20, 2020 at 08:51:48PM -0600, Samuel Holland wrote:
> On 11/20/20 5:30 PM, Icenowy Zheng wrote:
> >>>>>>> +/ {
> >>>>>>> + model = "PineTab Developer Sample";
> >>>>>>> + compatible = "pine64,pinetab-dev", "allwinner,sun50i-a64";
> >>>>>>> +};
> >>>>>>
> >>>>>> Changing the DT and the compatible half-way through it isn't ok. Please
> >>>>>> add a new DT with the newer revision like we did for the pinephone
> >>>>>
> >>>>> We did this on Pine H64.
> >>>>
> >>>> What are you referring to? I couldn't find a commit where we did what
> >>>> you suggested in that patch to the pine H64.
> >>>
> >>> Oh the situation is complex. On Pine H64, we didn't specify anything at
> >>> start (which is the same here), the DT is originally version-neutral
> >>> but then transitioned to model B, then reverted to model A. Here the DT is always
> >>> for the sample.
> >>>
> >>> However, for Pine H64 there's model A/B names, but for PineTab there's no
> >>> any samples that are sold, thus except who got the samples, all PineTab
> >>> owners simply owns a "PineTab", not a "PineTab xxx version".
> >>
> >> It's fairly simple really, we can't really predict the future, so any DT
> >> submitted is for the current version of whatever board there is. This is
>
> I don't think that was the intention at all. The DT was submitted for a
> future product, whatever that future product ends up being at the time
> of its release. Since there are necessarily no users until the product
> ships, there is no chance of breaking users by modifying the DT.

There was no indication of that in the commit though

> >> what we (somewhat messily) did for the PineH64, for the pinephone, or
> >> really any other board that has several revisions
>
> Surely a non-public prototype doesn't count as a separate revision! This
> sort of policy strongly discourages ever shipping a board with
> out-of-the-box mainline Linux support. Because if there any hardware
> bugs fixed between initial upstreaming and production, the manufacture
> must come up with a new DT name.
>
> This is hostile to the users as well, because the "canonical" DT name no
> longer matches the "canonical" (read: the only one ever available)
> version of the hardware.
>
> Do you want manufacturers to submit their initial board DT as
> "$BOARD-prototype.dts", just in case they have to make a change before
> production? And only after the board is shipped (with out-of-tree
> patches, of course, to use $BOARD.dts, since the shipped board is *not*
> the prototype) submit a "$BOARD.dts" to mainline?
>
> Maxime, can you clarify specifically what the line is where a device
> tree is "locked down" and further changes to the hardware require a new
> name? First sample leaves the factory? $NUMBER units produced? First
> sold to the public for money?

The first board that is shipped to a user. From the wiki, the version
supported here (I guess?) has been shipped to around 100 people, so it
doesn't really qualify for the "non-public prototype". We still have to
support these users, whether we like it or not.

> Without some guidance, or a change in policy, this problem is going to
> keep coming up again and again.

There's a few things that are interleaved here. First, there's two hard
rules: never change the DT name and never change the compatible of a
board.

The former would break any build system, boot script or documentation,
and the latter would break the DT compatibility.

Aside from this, things get a bit blurrier since it's mostly about the
intent. I'm fine with having a DT for a non-public prototype if it's
clear from day one that it is. In this particular case, the DT just
stated that support for the pinetab was added. I guess anyone would make
the assumption without any context that this would be for the (or a)
final design.

Finally, I'd also advise against submitting the parts that are still not
finalized though, because this is also fairly bad for the users. Let's
take the current situation as the example: from what I understand, the
screen changed half-way through the process, and the first one was
upstreamed. This means that any user that would use a kernel with that
bugfix would have the display working, while rolling back to 5.9 would
break the display, even though everyone claimed it was supported
out-of-the-box in mainline. This is a worse situation than not
supporting the display in the first place here.

> You'll note that so far it has mostly affected Pine devices, and I don't
> think that's because they make more board revisions than other
> manufacturers.

Yes definitely. Pine devices may be worse though because of their policy
of making their prototypes public. I guess most of the issues we had
also were due to poor communication: context on what were the Pine
intentions were missing, and thus we couldn't catch things that turned
out to be bad later on during review.

> It's because they're actively involved in getting their
> boards supported upstream. For other manufacturers, it's some user
> sending in a device tree months after the hardware ships to the public
> -- of course the hardware is more stable at that point.

I mean, it's not black and white either. One could very well send the DT
once the final design is done and that would still be upstreamed way
before reaching the first user.

> I think Pine's behavior is something we want to encourage, not
> penalize.

For the DT in particular, yes

> > Okay. But I'm not satisfied with a non-public sample occupies
> > the pinetab name. Is rename it to pinetab-dev and add a
> > pinetab-retail okay?
>
> To me, naming the production version anything but "pinetab" isn't
> satisfying either.

I understand where you're coming from, but the point I was making my
previous mail is precisely that it's not really possible.

You want to name the early adopter version _the_ production version.
Let's assume the hardware changes again between the early adopter and
mass-production version. Which one will be _the_ production version? The
early-adopter or the mass-produced one?

There's really no good answer here, and both would suck in their own
way. The only way to deal with this is to simply avoid defining one
version as the one true board, and just loading the proper DT in u-boot
based on whatever clue we have of the hardware revision.

Maxime


Attachments:
(No filename) (6.33 kB)
signature.asc (235.00 B)
Download all attachments