ARC: [DeviceTree] Allow dts to be user-defined

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
ARC: [DeviceTree] unflatten blob for DT core

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
ARC: [plat-arcfpga]: DeviceTree for Angel4 board

* DT contains the in-core intc and creation of corresponding irq-domain
  which is needed for interrupt requests by a DT probed device (e.g.
  arc-uart)
* This tree is still dormant, as we need the changes in arc-uart driver
  before populating it's nodes via DT

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
serial/arc-uart: Don't index with -ve platform_device->id

probe routine could index into port[] with -ve index. The check in
arc_uart_init_one() was too late.

This came to light when trying to port driver to CONFIG_OF, where
bydefault of-core code sets -ve platform dev id and in absence of
DT serial aliases, driver would use the -ve index.

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
serial/arc-uart: split probe from probe_earlyprintk

This is in preparation for devicetree based probing, where earlyprintk
won't have access to DT serial aliases which the normal probe would
absolutely rely on.

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
serial/arc-uart: platform_data order changed

* is_emulated is now 1st element, rather than last
* also tucked all platform data refs together

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
serial/arc-uart: supports DeviceTree based probing

Note that there's a bit of kludge right now because earlyprintk portion
of driver can't use the DT infrastrcuture to get resoures/plat_data.

This needs to be revisited.

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Cc: Grant Likely <grant.likely@secretlab.ca>
Cc: Arnd Bergmann <arnd@arndb.de>
ARC: [plat-arcfpga] Populate platform devices via Devicetree

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>