Amlogic MesonX device tree bindings
-------------------------------------------

Work in progress statement:

Device tree files and bindings applying to Amlogic SoCs and boards are
considered "unstable". Any Amlogic device tree binding may change at
any time. Be sure to use a device tree binary and a kernel image
generated from the same source tree.

Please refer to Documentation/devicetree/bindings/ABI.txt for a definition of a
stable binding/ABI.

---------------------------------------------------------------

Boards with the Amlogic Meson6 SoC shall have the following properties:
  Required root node property:
    compatible: "amlogic,meson6"

Boards with the Amlogic Meson8 SoC shall have the following properties:
  Required root node property:
    compatible: "amlogic,meson8";

Boards with the Amlogic Meson8b SoC shall have the following properties:
  Required root node property:
    compatible: "amlogic,meson8b";

Boards with the Amlogic Meson GXBaby SoC shall have the following properties:
  Required root node property:
    compatible: "amlogic,meson-gxbb";

Boards with the Amlogic Meson GXL S905X SoC shall have the following properties:
  Required root node property:
    compatible: "amlogic,s905x", "amlogic,meson-gxl";

Boards with the Amlogic Meson GXL S905D SoC shall have the following properties:
  Required root node property:
    compatible: "amlogic,s905d", "amlogic,meson-gxl";

Boards with the Amlogic Meson GXM S912 SoC shall have the following properties:
  Required root node property:
    compatible: "amlogic,s912", "amlogic,meson-gxm";

Boards with the Amlogic Meson AXG A113D SoC shall have the following properties:
  Required root node property:
    compatible: "amlogic,a113d", "amlogic,meson-axg";

Board compatible values (alphabetically, grouped by SoC):

  - "geniatech,atv1200" (Meson6)

  - "minix,neo-x8" (Meson8)

  - "hardkernel,odroid-c1" (Meson8b)
  - "tronfy,mxq" (Meson8b)

  - "amlogic,p200" (Meson gxbb)
  - "amlogic,p201" (Meson gxbb)
  - "friendlyarm,nanopi-k2" (Meson gxbb)
  - "hardkernel,odroid-c2" (Meson gxbb)
  - "nexbox,a95x" (Meson gxbb or Meson gxl s905x)
  - "tronsmart,vega-s95-pro", "tronsmart,vega-s95" (Meson gxbb)
  - "tronsmart,vega-s95-meta", "tronsmart,vega-s95" (Meson gxbb)
  - "tronsmart,vega-s95-telos", "tronsmart,vega-s95" (Meson gxbb)
  - "wetek,hub" (Meson gxbb)
  - "wetek,play2" (Meson gxbb)

  - "amlogic,p212" (Meson gxl s905x)
  - "hwacom,amazetv" (Meson gxl s905x)
  - "khadas,vim" (Meson gxl s905x)
  - "libretech,cc" (Meson gxl s905x)

  - "amlogic,p230" (Meson gxl s905d)
  - "amlogic,p231" (Meson gxl s905d)

  - "amlogic,q200" (Meson gxm s912)
  - "amlogic,q201" (Meson gxm s912)
  - "khadas,vim2" (Meson gxm s912)
  - "kingnovel,r-box-pro" (Meson gxm S912)
  - "nexbox,a1" (Meson gxm s912)
  - "tronsmart,vega-s96" (Meson gxm s912)

  - "amlogic,s400" (Meson axg a113d)

Amlogic Meson Firmware registers Interface
------------------------------------------

The Meson SoCs have a register bank with status and data shared with the
secure firmware.

Required properties:
 - compatible: For Meson GX SoCs, must be "amlogic,meson-gx-ao-secure", "syscon"

Properties should indentify components of this register interface :

Meson GX SoC Information
------------------------
A firmware register encodes the SoC type, package and revision information on
the Meson GX SoCs.
If present, the following property should be added :

Optional properties:
  - amlogic,has-chip-id: If present, the interface gives the current SoC version.

Example
-------

ao-secure@140 {
	compatible = "amlogic,meson-gx-ao-secure", "syscon";
	reg = <0x0 0x140 0x0 0x140>;
	amlogic,has-chip-id;
};
