[U-Boot] [PATCH] Add NFC register definitions for Allwinner A20 SoC

And while at it, why not finally add the DT register definitions for Allwinner A20 NFC. I'm certainly not the author of these, and they have been around for many years already. Its quite unlikely they will suddenly change, or vary between different A20-based devices. The A20 SoC is gradually becoming obsolete, so why wait any more. Note: one whould typically need to also add NFC node definition on top of this in order to actually use it.
Signed-off-by: Nikolai Zhubr n-a-zhubr@yandex.ru --- arch/arm/dts/sun7i-a20.dtsi | 69 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+)
diff --git a/arch/arm/dts/sun7i-a20.dtsi b/arch/arm/dts/sun7i-a20.dtsi index e529e4f..6f96693 100644 --- a/arch/arm/dts/sun7i-a20.dtsi +++ b/arch/arm/dts/sun7i-a20.dtsi @@ -920,6 +920,75 @@ pins = "PI20", "PI21"; function = "uart7"; }; + nand_pins_a: nand_base0@0 { + allwinner,pins = "PC0", "PC1", "PC2", + "PC5", "PC8", "PC9", "PC10", + "PC11", "PC12", "PC13", "PC14", + "PC15", "PC16"; + allwinner,function = "nand0"; + allwinner,drive = <0>; + allwinner,pull = <0>; + }; + nand_cs0_pins_a: nand_cs@0 { + allwinner,pins = "PC4"; + allwinner,function = "nand0"; + allwinner,drive = <0>; + allwinner,pull = <0>; + }; + nand_cs1_pins_a: nand_cs@1 { + allwinner,pins = "PC3"; + allwinner,function = "nand0"; + allwinner,drive = <0>; + allwinner,pull = <0>; + }; + nand_cs2_pins_a: nand_cs@2 { + allwinner,pins = "PC17"; + allwinner,function = "nand0"; + allwinner,drive = <0>; + allwinner,pull = <0>; + }; + nand_cs3_pins_a: nand_cs@3 { + allwinner,pins = "PC18"; + allwinner,function = "nand0"; + allwinner,drive = <0>; + allwinner,pull = <0>; + }; + nand_cs4_pins_a: nand_cs@4 { + allwinner,pins = "PC19"; + allwinner,function = "nand0"; + allwinner,drive = <0>; + allwinner,pull = <0>; + }; + nand_cs5_pins_a: nand_cs@5 { + allwinner,pins = "PC20"; + allwinner,function = "nand0"; + allwinner,drive = <0>; + allwinner,pull = <0>; + }; + nand_cs6_pins_a: nand_cs@6 { + allwinner,pins = "PC21"; + allwinner,function = "nand0"; + allwinner,drive = <0>; + allwinner,pull = <0>; + }; + nand_cs7_pins_a: nand_cs@7 { + allwinner,pins = "PC22"; + allwinner,function = "nand0"; + allwinner,drive = <0>; + allwinner,pull = <0>; + }; + nand_rb0_pins_a: nand_rb@0 { + allwinner,pins = "PC6"; + allwinner,function = "nand0"; + allwinner,drive = <0>; + allwinner,pull = <0>; + }; + nand_rb1_pins_a: nand_rb@1 { + allwinner,pins = "PC7"; + allwinner,function = "nand0"; + allwinner,drive = <0>; + allwinner,pull = <0>; + }; };
timer@1c20c00 {

On Wed, Dec 26, 2018 at 02:37:26PM +0300, Nikolai Zhubr wrote:
And while at it, why not finally add the DT register definitions for Allwinner A20 NFC. I'm certainly not the author of these, and they have been around for many years already. Its quite unlikely they will suddenly change, or vary between different A20-based devices. The A20 SoC is gradually becoming obsolete, so why wait any more. Note: one whould typically need to also add NFC node definition on top of this in order to actually use it.
Signed-off-by: Nikolai Zhubr n-a-zhubr@yandex.ru
arch/arm/dts/sun7i-a20.dtsi | 69 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+)
diff --git a/arch/arm/dts/sun7i-a20.dtsi b/arch/arm/dts/sun7i-a20.dtsi index e529e4f..6f96693 100644 --- a/arch/arm/dts/sun7i-a20.dtsi +++ b/arch/arm/dts/sun7i-a20.dtsi @@ -920,6 +920,75 @@ pins = "PI20", "PI21"; function = "uart7"; };
nand_pins_a: nand_base0@0 {
allwinner,pins = "PC0", "PC1", "PC2",
"PC5", "PC8", "PC9", "PC10",
"PC11", "PC12", "PC13", "PC14",
"PC15", "PC16";
allwinner,function = "nand0";
allwinner,drive = <0>;
allwinner,pull = <0>;
allwinner,{pins,function,drive,pull} syntax has been deprecated in favor or general pinctrl syntax.
You can check how sun5i.dtsi defines these blocks.
};
nand_cs0_pins_a: nand_cs@0 {
allwinner,pins = "PC4";
allwinner,function = "nand0";
allwinner,drive = <0>;
allwinner,pull = <0>;
};
nand_cs1_pins_a: nand_cs@1 {
allwinner,pins = "PC3";
allwinner,function = "nand0";
allwinner,drive = <0>;
allwinner,pull = <0>;
};
nand_cs2_pins_a: nand_cs@2 {
allwinner,pins = "PC17";
allwinner,function = "nand0";
allwinner,drive = <0>;
allwinner,pull = <0>;
};
nand_cs3_pins_a: nand_cs@3 {
allwinner,pins = "PC18";
allwinner,function = "nand0";
allwinner,drive = <0>;
allwinner,pull = <0>;
};
nand_cs4_pins_a: nand_cs@4 {
allwinner,pins = "PC19";
allwinner,function = "nand0";
allwinner,drive = <0>;
allwinner,pull = <0>;
};
nand_cs5_pins_a: nand_cs@5 {
allwinner,pins = "PC20";
allwinner,function = "nand0";
allwinner,drive = <0>;
allwinner,pull = <0>;
};
nand_cs6_pins_a: nand_cs@6 {
allwinner,pins = "PC21";
allwinner,function = "nand0";
allwinner,drive = <0>;
allwinner,pull = <0>;
};
nand_cs7_pins_a: nand_cs@7 {
allwinner,pins = "PC22";
allwinner,function = "nand0";
allwinner,drive = <0>;
allwinner,pull = <0>;
};
nand_rb0_pins_a: nand_rb@0 {
allwinner,pins = "PC6";
allwinner,function = "nand0";
allwinner,drive = <0>;
allwinner,pull = <0>;
};
nand_rb1_pins_a: nand_rb@1 {
allwinner,pins = "PC7";
allwinner,function = "nand0";
allwinner,drive = <0>;
allwinner,pull = <0>;
};
};
timer@1c20c00 {
-- 2.1.2
-- 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@googlegroups.com. For more options, visit https://groups.google.com/d/optout.

Hi,
26.12.2018 14:28, Priit Laes:
And while at it, why not finally add the DT register definitions for Allwinner A20 NFC. I'm certainly not the author of these, and they have been
[...]
nand_pins_a: nand_base0@0 {
allwinner,pins = "PC0", "PC1", "PC2",
"PC5", "PC8", "PC9", "PC10",
"PC11", "PC12", "PC13", "PC14",
"PC15", "PC16";
allwinner,function = "nand0";
allwinner,drive =<0>;
allwinner,pull =<0>;
allwinner,{pins,function,drive,pull} syntax has been deprecated in favor or general pinctrl syntax.
You can check how sun5i.dtsi defines these blocks.
Well, I could certainly do such editing, but I'm not sure if something related in the tree will also need to be updated accordingly, therefore I'd prefer to refrain. I'm rather a u-boot user than a u-boot developer, I can do some simple searching and testing, but probably not refactoring. Thing is, however, the original Allwinner's implementation of nand boot procedure for A20 appeared to be so messy and fragile and inconvenient that using u-boot's mainline approach is basically the only reasonable choice for this device. (And btw great thanks to all developers who implemented it!)
Regards, Nikolai
};
nand_cs0_pins_a: nand_cs@0 {
allwinner,pins = "PC4";
allwinner,function = "nand0";
allwinner,drive =<0>;
allwinner,pull =<0>;
};
nand_cs1_pins_a: nand_cs@1 {
allwinner,pins = "PC3";
allwinner,function = "nand0";
allwinner,drive =<0>;
allwinner,pull =<0>;
};
nand_cs2_pins_a: nand_cs@2 {
allwinner,pins = "PC17";
allwinner,function = "nand0";
allwinner,drive =<0>;
allwinner,pull =<0>;
};
nand_cs3_pins_a: nand_cs@3 {
allwinner,pins = "PC18";
allwinner,function = "nand0";
allwinner,drive =<0>;
allwinner,pull =<0>;
};
nand_cs4_pins_a: nand_cs@4 {
allwinner,pins = "PC19";
allwinner,function = "nand0";
allwinner,drive =<0>;
allwinner,pull =<0>;
};
nand_cs5_pins_a: nand_cs@5 {
allwinner,pins = "PC20";
allwinner,function = "nand0";
allwinner,drive =<0>;
allwinner,pull =<0>;
};
nand_cs6_pins_a: nand_cs@6 {
allwinner,pins = "PC21";
allwinner,function = "nand0";
allwinner,drive =<0>;
allwinner,pull =<0>;
};
nand_cs7_pins_a: nand_cs@7 {
allwinner,pins = "PC22";
allwinner,function = "nand0";
allwinner,drive =<0>;
allwinner,pull =<0>;
};
nand_rb0_pins_a: nand_rb@0 {
allwinner,pins = "PC6";
allwinner,function = "nand0";
allwinner,drive =<0>;
allwinner,pull =<0>;
};
nand_rb1_pins_a: nand_rb@1 {
allwinner,pins = "PC7";
allwinner,function = "nand0";
allwinner,drive =<0>;
allwinner,pull =<0>;
};
};
timer@1c20c00 {
-- 2.1.2
-- 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@googlegroups.com. For more options, visit https://groups.google.com/d/optout.

On Wed, Dec 26, 2018 at 4:49 PM Nikolai Zhubr n-a-zhubr@yandex.ru wrote:
And while at it, why not finally add the DT register definitions for Allwinner A20 NFC. I'm certainly not the author of these, and they have been around for many years already. Its quite unlikely they will suddenly change, or vary between different A20-based devices. The A20 SoC is gradually becoming obsolete, so why wait any more. Note: one whould typically need to also add NFC node definition on top of this in order to actually use it.
Signed-off-by: Nikolai Zhubr n-a-zhubr@yandex.ru
arch/arm/dts/sun7i-a20.dtsi | 69
dts(i) changes need to be synced from Linux,we don't encourage to add them explicitly. Better sync from Linux if required.
participants (3)
-
Jagan Teki
-
Nikolai Zhubr
-
Priit Laes