* BOARD-ID

The qcom,board-id entry specifies the MSM platform and subtype revision.
It can optionally be an array of these to indicate multiple hardware that use
the same device tree.  It is expected that the bootloader will use this
information at boot-up to decide which device tree to use when given multiple
device trees, some of which may not be compatible with the actual hardware.  It
is the bootloader's responsibility to pass the correct device tree to the kernel.

Legacy format:

It is expected that the qcom,board-id entry be at the top level of the device
tree structure.  The format of the entry is:

   qcom,board-id = <platform_id, subtype_id> [, <p2, s2> ...]

where platform_id and subtype_id are the numeric values for the platform and
subtype of the current hardware.

The "subtype_id" cell is a 32-bit integer whose bit values are defined as follows:
    bits 31-20 = Reserved bits
    bits 19-16 = Boot Device Type.
		 MSM:
		     0: default (eMMC)
		     2: EMMC_SDC1
		     4: BOOT_UFS
		 MDM:
		     0: default (NAND)
		     3: EMMC_SDC1
    bits 15-8  = DDR Size. For devices with DDR Size as 512MB the value is 0x1, default value as 0x0
    bits 7-0   = Platform Subtype

In the event that a given device tree is applicable to all hardware versions
matching a given Platform Type / Subtype ID, the major/minior platform version
fields in the board_id property shall both be specified as 0xff.

Modern format:
The cell layout of the qcom,board-id property is as follows:

   qcom,board-id = <board_id, reserved>

where board_id is a 32-bit integer whose bit values are defined as follows:
    bits 31-24 = Platform Subtype ID
    bits 23-16 = Platform Version (Major)
    bits 15-8  = Platform Version (Minor)
    bits  7-0  = Platform Type ID

and the 'reserved' cell is a 32-bit integer whose bit values are defined as follows:
    bits 31-13 = Reserved Bits
    bits 12-11 = Panel Detection. 00 - limit to HD, 01 - limit to 720p,
		 10 - limit to qHD, 11 - limit to FWVGA
    bits 10-8  = DDR Size. For devices with DDR Size as 512MB the value is 0x1,
		 default value as 0x0
    bits 7-0   = Platform Subtype

In the event that a given device tree is applicable to all hardware versions
matching a given Platform Type / Subtype ID, the major/minior platform version
fields in the board_id property shall both be specified as 0xff.

Example:
   qcom,board-id = <15 0>;
   qcom,board-id = <0x01040708, 0>;
   qcom,board-id = <0x01ffff08, 0>;
   qcom,board-id = <8, 0x100>;
