From: Martin Sperl <kernel@xxxxxxxxxxxxxxxx> The BCM2835 contains 3 auxiliar devices: * spi1 * spi2 * uart1 All of those 3 devices are enabled/disabled via a shared register, which is set by default to be disabled. Access to this register needs to get serialized. So fter several iterations of discussions with the following idea: * syscon - device tree should describe HW not drivers to use - 'compatiblity = "brcm,bcm2835-aux-enable", "syscon";' is not acceptable * regulator - it is not necessarily a regulator or a power gate that is implemented in HW, so it is not valid to use this framework The recommendation was made to create a new minimal API in soc just for access to this shared enable/disable register. This patch-series implements: * the bcm2835-auxiliar device enable/disable api in soc. * the bcm2835-auxiliar spi device driver The uart1 device driver (ns16550 based) is not implemented so far but should be using the same API. Martin Sperl (5): soc: bcm2835: auxiliar devices enable infrastructure ARM: bcm2835: add DT for the bcm2835 auxiliar devices dt/bindings: bcm2835: add binding documentation for bcm2835-aux spi: bcm2835: new driver implementing auxiliar spi1/spi2 on the bcm2835 soc dt/bindings: bcm2835: Add binding documentation for auxiliar spi devices .../bindings/soc/bcm/brcm,bcm2835-aux.txt | 27 ++ .../bindings/spi/brcm,bcm2835-aux-spi.txt | 61 +++ arch/arm/boot/dts/bcm2835.dtsi | 37 ++ arch/arm/configs/bcm2835_defconfig | 1 + drivers/soc/Kconfig | 1 + drivers/soc/Makefile | 1 + drivers/soc/bcm/Kconfig | 11 + drivers/soc/bcm/Makefile | 1 + drivers/soc/bcm/bcm2835-aux.c | 154 ++++++ drivers/spi/Kconfig | 12 + drivers/spi/Makefile | 1 + drivers/spi/spi-bcm2835aux.c | 506 ++++++++++++++++++++ include/linux/soc/bcm/bcm2835-aux.h | 23 + 13 files changed, 836 insertions(+) create mode 100644 Documentation/devicetree/bindings/soc/bcm/brcm,bcm2835-aux.txt create mode 100644 Documentation/devicetree/bindings/spi/brcm,bcm2835-aux-spi.txt create mode 100644 drivers/soc/bcm/Kconfig create mode 100644 drivers/soc/bcm/Makefile create mode 100644 drivers/soc/bcm/bcm2835-aux.c create mode 100644 drivers/spi/spi-bcm2835aux.c create mode 100644 include/linux/soc/bcm/bcm2835-aux.h -- 1.7.10.4 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html