* Texas Instruments OMAP

OMAP is currently using a static file per SoC family to describe the
IPs present in the SoC.
On top of that an omap_device is created to extend the platform_device
capabilities and to allow binding with one or several hwmods.
The hwmods will contain all the information to build the device:
address range, irq lines, dma lines, interconnect, PRCM register,
clock domain, input clocks.
For the moment just point to the existing hwmod, the next step will be
to move data from hwmod to device-tree representation.


Required properties:
- compatible: Every devices present in OMAP SoC should be in the
  form: "ti,XXX"
- ti,hwmods: list of hwmod names (ascii strings), that comes from the OMAP
  HW documentation, attached to a device. Must contain at least
  one hwmod.

Optional properties:
- ti,no_idle_on_suspend: When present, it prevents the PM to idle the module
  during suspend.
- ti,no-reset-on-init: When present, the module should not be reset at init
- ti,no-idle-on-init: When present, the module should not be idled at init
- ti,no-idle: When present, the module is never allowed to idle.

Example:

spinlock@1 {
    compatible = "ti,omap4-spinlock";
    ti,hwmods = "spinlock";
};

SoC Type (optional):

- General Purpose devices
  compatible = "ti,gp"
- High Security devices
  compatible = "ti,hs"

SoC Families:

- OMAP2 generic - defaults to OMAP2420
  compatible = "ti,omap2"
- OMAP3 generic - defaults to OMAP3430
  compatible = "ti,omap3"
- OMAP4 generic - defaults to OMAP4430
  compatible = "ti,omap4"
- OMAP5 generic - defaults to OMAP5430
  compatible = "ti,omap5"
- DRA7 generic - defaults to DRA742
  compatible = "ti,dra7"
- AM43x generic - defaults to AM4372
  compatible = "ti,am43"

SoCs:

- OMAP2420
  compatible = "ti,omap2420", "ti,omap2"
- OMAP2430
  compatible = "ti,omap2430", "ti,omap2"

- OMAP3430
  compatible = "ti,omap3430", "ti,omap3"
- AM3517
  compatible = "ti,am3517", "ti,omap3"
- OMAP3630
  compatible = "ti,omap36xx", "ti,omap3"
- AM33xx
  compatible = "ti,am33xx", "ti,omap3"

- OMAP4430
  compatible = "ti,omap4430", "ti,omap4"
- OMAP4460
  compatible = "ti,omap4460", "ti,omap4"

- OMAP5430
  compatible = "ti,omap5430", "ti,omap5"
- OMAP5432
  compatible = "ti,omap5432", "ti,omap5"

- DRA742
  compatible = "ti,dra742", "ti,dra74", "ti,dra7"

- DRA722
  compatible = "ti,dra722", "ti,dra72", "ti,dra7"

- AM5728
  compatible = "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7"

- AM5726
  compatible = "ti,am5726", "ti,dra742", "ti,dra74", "ti,dra7"

- AM5718
  compatible = "ti,am5718", "ti,dra722", "ti,dra72", "ti,dra7"

- AM5716
  compatible = "ti,am5716", "ti,dra722", "ti,dra72", "ti,dra7"

- AM4372
  compatible = "ti,am4372", "ti,am43"

Boards:

- OMAP3 BeagleBoard : Low cost community board
  compatible = "ti,omap3-beagle", "ti,omap3"

- OMAP3 Tobi with Overo : Commercial expansion board with daughter board
  compatible = "gumstix,omap3-overo-tobi", "gumstix,omap3-overo", "ti,omap3"

- OMAP4 SDP : Software Development Board
  compatible = "ti,omap4-sdp", "ti,omap4430"

- OMAP4 PandaBoard : Low cost community board
  compatible = "ti,omap4-panda", "ti,omap4430"

- OMAP4 DuoVero with Parlor : Commercial expansion board with daughter board
  compatible = "gumstix,omap4-duovero-parlor", "gumstix,omap4-duovero", "ti,omap4430", "ti,omap4";

- OMAP4 VAR-STK-OM44 : Commercial dev kit with VAR-OM44CustomBoard and VAR-SOM-OM44 w/WLAN
  compatible = "variscite,var-stk-om44", "variscite,var-som-om44", "ti,omap4460", "ti,omap4";

- OMAP4 VAR-DVK-OM44 : Commercial dev kit with VAR-OM44CustomBoard, VAR-SOM-OM44 w/WLAN and LCD touchscreen
  compatible = "variscite,var-dvk-om44", "variscite,var-som-om44", "ti,omap4460", "ti,omap4";

- OMAP3 EVM : Software Development Board for OMAP35x, AM/DM37x
  compatible = "ti,omap3-evm", "ti,omap3"

- AM335X EVM : Software Development Board for AM335x
  compatible = "ti,am335x-evm", "ti,am33xx", "ti,omap3"

- AM335X Bone : Low cost community board
  compatible = "ti,am335x-bone", "ti,am33xx", "ti,omap3"

- AM3359 ICEv2 : Low cost Industrial Communication Engine EVM.
  compatible = "ti,am3359-icev2", "ti,am33xx", "ti,omap3"

- AM335X OrionLXm : Substation Automation Platform
  compatible = "novatech,am335x-lxm", "ti,am33xx"

- AM335X phyBOARD-WEGA: Single Board Computer dev kit
  compatible = "phytec,am335x-wega", "phytec,am335x-phycore-som", "ti,am33xx"

- AM335X CM-T335 : System On Module, built around the Sitara AM3352/4
  compatible = "compulab,cm-t335", "ti,am33xx"

- AM335X SBC-T335 : single board computer, built around the Sitara AM3352/4
  compatible = "compulab,sbc-t335", "compulab,cm-t335", "ti,am33xx"

- OMAP5 EVM : Evaluation Module
  compatible = "ti,omap5-evm", "ti,omap5"

- AM437x CM-T43
  compatible = "compulab,am437x-cm-t43", "ti,am4372", "ti,am43"

- AM437x SBC-T43
  compatible = "compulab,am437x-sbc-t43", "compulab,am437x-cm-t43", "ti,am4372", "ti,am43"

- AM43x EPOS EVM
  compatible = "ti,am43x-epos-evm", "ti,am43", "ti,am438x"

- AM437x GP EVM
  compatible = "ti,am437x-gp-evm", "ti,am4372", "ti,am43"

- AM437x SK EVM: AM437x StarterKit Evaluation Module
  compatible = "ti,am437x-sk-evm", "ti,am4372", "ti,am43"

- AM57XX CL-SOM-AM57x
  compatible = "compulab,cl-som-am57x", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7"

- AM57XX SBC-AM57x
  compatible = "compulab,sbc-am57x", "compulab,cl-som-am57x", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7"

- AM5728 IDK
  compatible = "ti,am5728-idk", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7"

- DRA742 EVM:  Software Development Board for DRA742
  compatible = "ti,dra7-evm", "ti,dra742", "ti,dra74", "ti,dra7"

- DRA722 EVM: Software Development Board for DRA722
  compatible = "ti,dra72-evm", "ti,dra722", "ti,dra72", "ti,dra7"

- DM3730 Logic PD Torpedo + Wireless: Commercial System on Module with WiFi and Bluetooth
  compatible = "logicpd,dm3730-torpedo-devkit", "ti,omap3630", "ti,omap3"

- DM3730 Logic PD SOM-LV: Commercial System on Module with WiFi and Bluetooth
  compatible = "logicpd,dm3730-som-lv-devkit", "ti,omap3630", "ti,omap3"
