ARM Allwinner SoCs
==================

This document lists all the ARM Allwinner SoCs that are currently
supported in mainline by the Linux kernel. This document will also
provide links to documentation and/or datasheet for these SoCs.

SunXi family
------------
  Linux kernel mach directory: arch/arm/mach-sunxi

  Flavors:
    * ARM926 based SoCs
      - Allwinner F20 (sun3i)
        + Not Supported

    * ARM Cortex-A8 based SoCs
      - Allwinner A10 (sun4i)
        + Datasheet
	  http://dl.linux-sunxi.org/A10/A10%20Datasheet%20-%20v1.21%20%282012-04-06%29.pdf
	+ User Manual
	  http://dl.linux-sunxi.org/A10/A10%20User%20Manual%20-%20v1.20%20%282012-04-09%2c%20DECRYPTED%29.pdf

      - Allwinner A10s (sun5i)
        + Datasheet
          http://dl.linux-sunxi.org/A10s/A10s%20Datasheet%20-%20v1.20%20%282012-03-27%29.pdf

      - Allwinner A13 / R8 (sun5i)
        + Datasheet
	  http://dl.linux-sunxi.org/A13/A13%20Datasheet%20-%20v1.12%20%282012-03-29%29.pdf
        + User Manual
          http://dl.linux-sunxi.org/A13/A13%20User%20Manual%20-%20v1.2%20%282013-01-08%29.pdf

      - Next Thing Co GR8 (sun5i)

    * Single ARM Cortex-A7 based SoCs
      - Allwinner V3s (sun8i)
        + Datasheet
          http://linux-sunxi.org/File:Allwinner_V3s_Datasheet_V1.0.pdf

    * Dual ARM Cortex-A7 based SoCs
      - Allwinner A20 (sun7i)
        + User Manual
          http://dl.linux-sunxi.org/A20/A20%20User%20Manual%202013-03-22.pdf

      - Allwinner A23 (sun8i)
        + Datasheet
          http://dl.linux-sunxi.org/A23/A23%20Datasheet%20V1.0%2020130830.pdf
        + User Manual
          http://dl.linux-sunxi.org/A23/A23%20User%20Manual%20V1.0%2020130830.pdf

    * Quad ARM Cortex-A7 based SoCs
      - Allwinner A31 (sun6i)
        + Datasheet
          http://dl.linux-sunxi.org/A31/A3x_release_document/A31/IC/A31%20datasheet%20V1.3%2020131106.pdf
        + User Manual
          http://dl.linux-sunxi.org/A31/A3x_release_document/A31/IC/A31%20user%20manual%20V1.1%2020130630.pdf

      - Allwinner A31s (sun6i)
        + Datasheet
          http://dl.linux-sunxi.org/A31/A3x_release_document/A31s/IC/A31s%20datasheet%20V1.3%2020131106.pdf
        + User Manual
          http://dl.linux-sunxi.org/A31/A3x_release_document/A31s/IC/A31s%20User%20Manual%20%20V1.0%2020130322.pdf

      - Allwinner A33 (sun8i)
        + Datasheet
          http://dl.linux-sunxi.org/A33/A33%20Datasheet%20release%201.1.pdf
        + User Manual
          http://dl.linux-sunxi.org/A33/A33%20user%20manual%20release%201.1.pdf

      - Allwinner H2+ (sun8i)
        + No document available now, but is known to be working properly with
          H3 drivers and memory map.

      - Allwinner H3 (sun8i)
        + Datasheet
          http://dl.linux-sunxi.org/H3/Allwinner_H3_Datasheet_V1.0.pdf

      - Allwinner R40 (sun8i)
        + Datasheet
          https://github.com/tinalinux/docs/raw/r40-v1.y/R40_Datasheet_V1.0.pdf
        + User Manual
          https://github.com/tinalinux/docs/raw/r40-v1.y/Allwinner_R40_User_Manual_V1.0.pdf

    * Quad ARM Cortex-A15, Quad ARM Cortex-A7 based SoCs
      - Allwinner A80
        + Datasheet
	  http://dl.linux-sunxi.org/A80/A80_Datasheet_Revision_1.0_0404.pdf

    * Octa ARM Cortex-A7 based SoCs
      - Allwinner A83T
        + Datasheet
          https://github.com/allwinner-zh/documents/raw/master/A83T/A83T_Datasheet_v1.3_20150510.pdf
        + User Manual
          https://github.com/allwinner-zh/documents/raw/master/A83T/A83T_User_Manual_v1.5.1_20150513.pdf

    * Quad ARM Cortex-A53 based SoCs
      - Allwinner A64
        + Datasheet
          http://dl.linux-sunxi.org/A64/A64_Datasheet_V1.1.pdf
        + User Manual
          http://dl.linux-sunxi.org/A64/Allwinner%20A64%20User%20Manual%20v1.0.pdf
