MFC r257200, r259121, r261410, r265853:

 - Remove #include <machine/frame.h>.
 - Add gpio parse routines according to sys/boot/fdt/dts/bindings-gpio.txt.
 - Follow r261352 by updating all drivers which are children of simplebus
   to check the status property in their probe routines.
 - Rename platform_gpio_init to be SoC specific, and make it static as it's
   only called from this file.

This is mostly catching up on some old MFCs that were done before this file
existed in the 10 branch.
MFC r270025:

Implement the FDT static pinctl/pinmux spec for Atmel.
MFC r270945:

Rename OF_xref_phandle() to OF_node_from_xref() and add a new function
that provides the inverse translation, OF_xref_from_node().
MFC r270953, r270958, r270960, r271190, r271199, r271202:

  Create a mechanism for looking up a device_t associated with an ofw/fdt
  xref handle, and for registering that association.  Also use the same data
  for faster translations between node and xref handles.

  Add OF_xref_from_device() so that there's no need to have an intermediate
  call to ofw_bus_get_node() to lookup info that's already in the xreflist.

  When registering an association between a device and an xref phandle, create
  an entry in the xref list if one doesn't already exist for the given handle.
MFC r270955,r270956: make the imx6 octop and anatop drivers early attachers.
MFC r270957, r270959:

  Create an interface for drivers to enable or disable their clocks as listed
  in the clocks=<...> properties of their FDT data.
MFC r271054:

 When built with FDT support, add /boot/dtb to the list of search directories.
MFC r271055, r271084, r271094:

  Add a function to get the frequency of the AHB bus.  Another stopgap
  function until we have full clock support for imx6.

  The imx5x and imx6 chips have an onboard IOMUX device which also contains a
  few "general purpose registers" whose values control chip behavior in ways
  that have nothing to do with IO pin mux control.  Define a simple API that
  other soc-specific code can use to read and write the registers, and provide
  the imx51 implementation of them.

  Fix a typo.
MFC r271057: Create a /boot/dtb directory to house DTB blobs.
MFC r268834, r268835:

 o Enable GPIO device driver for i.MX6.
   It was originally written for i.MX5 and compatible with newer chip.
 o Extend device tree information
 o style(9) fixes
 o Rename gpio driver file.
MFC r268973, r268977: Rename i.MX I2C driver file, enable it on imx6.
MFC r271097, r271100, r271101, r271102, r271124:

 - Add a basic iomux driver for imx6.
 - Implement the same public interface in imx51 and imx6 iomux
 - The iomux driver is no longer optional, remove it from kernel configs.
 - Implement the imx_iomux_get/set_gpr() interface for imx6.
 - Stop setting the iomux device status to disabled, now that we have a driver.
MFC r266878, r266879: Add support for snprintf() to libstand.
MFC r271285:

  Add a 'ubenv import' command to import environment variables from the
  u-boot env into the loader(8) env (which also gets them into the kernel
  env).
MFC r271310:

  Rename new to newval in inline asm code, to avoid clashes with C++ new.
MFC r271535:

  Make inclusion of fdt clock support conditional on fdt_clock, not just fdt.
MFC 271546:

  Create an interface and support routines for drivers that handle IO pin
  multiplexing and configuration based on FDT data.
MFC r271550, r271591:

  Replace the imx5 and imx6 iomux drivers with a single common driver that
  uses the new fdt_pinctrl interface.
MFC r271594:

 Fix an undefined variable that was accidentally not causing an error.
MFC r271595, r271601, r271607, r271630:

  Add compat strings for all the flavors of GIC this driver should support.
  Also allow the driver to attach to ofwbus as well as simplebus, some FDT
  data puts the root interrupt controller on the root bus.

  Add a common routine for parsing FDT data describing an ARM GIC interrupt.

  Use gic_decode_fdt() rather than a local routine to parse fdt interrupt
  properties.  Move fdt_pic_table and fdt_fixup_table into imx6_machdep.c,
  which means imx6 doesn't need imx_common.c anymore.

  The private peripheral interrupts start at offset 16, not 0.  Also, use
  names rather than inline mystery constants for these offsets.