1) Write a DT binding doc and get the corresponding DT node merged to
   bcm2835.

This will let the driver probe when enabled.

2) Import drivers using VCHI.

VCHI is just a tool to let drivers talk to the firmware.  Here are
some of the ones we want:

  - vc_mem (https://github.com/raspberrypi/linux/blob/rpi-4.4.y/drivers/char/broadcom/vc_mem.c)

  This driver is what the vcdbg userspace program uses to set up its
  requests to the firmware, which are transmitted across VCHIQ.  vcdbg
  is really useful for debugging firmware interactions.

  - bcm2835-camera (https://github.com/raspberrypi/linux/tree/rpi-4.4.y/drivers/media/platform/bcm2835)

  This driver will let us get images from the camera using the MMAL
  protocol over VCHI.

  - VCSM (https://github.com/raspberrypi/linux/tree/rpi-4.4.y/drivers/char/broadcom/vc_sm)

  This driver is used for talking about regions of VC memory across
  firmware protocols including VCHI.  We'll want to extend this driver
  to manage these buffers as dmabufs so that we can zero-copy import
  camera images into vc4 for rendering/display.

3) Garbage-collect unused code

One of the reasons this driver wasn't upstreamed previously was that
there's a lot code that got built that's probably unnecessary these
days.  Once we have the set of VCHI-using drivers we want in tree, we
should be able to do a sweep of the code to see what's left that's
unused.
