[PATCH v3 0/4] ARM: sunxi: SRAM mapping support
Maxime Ripard
maxime.ripard at free-electrons.com
Sun May 31 02:15:04 PDT 2015
Hi,
The Allwinner SoCs all have a bunch of SRAMs (the exact number
depending on the SoC itself) that can have various sections mapped to
the CPU or to a bunch of devices, each section having different
possible devices to be mapped to.
Since this SRAM setup is highly SoC dependent, and that we could have
multiple drivers trying to map a section for their own use, relying on
syscon would put to much duplicated logic to devices that are using
these SRAMs, among which the USB OTG and EMAC controllers, while not
guaranteeing any kind of exclusive use of that section.
To do this, we introduce a custom API to control the mapping of the
sections in a SoC independent way, and a SoC driver to implement it.
Let me know what you think,
Maxime
Changes from v2:
- Changed the DT bindings to have an explicit relationship between
"client" devices, the controller, and the SRAM sections it
controls
- Changed the interface to not rely on private structures anymore
but only the client's struct device
- Fixed a bug in the claiming logic
Maxime Ripard (4):
drivers: soc: sunxi: Introduce SoC driver to map SRAMs
ARM: dts: sun4i: Add A10 SRAM and SRAM controller
ARM: dts: sun5i: Add A10s and A13 SRAM and SRAM controller
ARM: dts: sun7i: Add A20 SRAM and SRAM controller
.../devicetree/bindings/soc/sunxi/sram.txt | 72 ++++++
arch/arm/boot/dts/sun4i-a10-a1000.dts | 4 +
arch/arm/boot/dts/sun4i-a10-ba10-tvbox.dts | 4 +
arch/arm/boot/dts/sun4i-a10-cubieboard.dts | 4 +
arch/arm/boot/dts/sun4i-a10-hackberry.dts | 4 +
arch/arm/boot/dts/sun4i-a10-jesurun-q5.dts | 4 +
arch/arm/boot/dts/sun4i-a10-marsboard.dts | 4 +
arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts | 4 +
arch/arm/boot/dts/sun4i-a10-pcduino.dts | 4 +
arch/arm/boot/dts/sun4i-a10.dtsi | 37 +++
arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts | 4 +
arch/arm/boot/dts/sun5i-a10s.dtsi | 9 +
arch/arm/boot/dts/sun5i.dtsi | 30 +++
arch/arm/boot/dts/sun7i-a20.dtsi | 37 +++
drivers/soc/Kconfig | 1 +
drivers/soc/Makefile | 1 +
drivers/soc/sunxi/Kconfig | 10 +
drivers/soc/sunxi/Makefile | 1 +
drivers/soc/sunxi/sunxi_sram.c | 284 +++++++++++++++++++++
include/linux/soc/sunxi/sunxi_sram.h | 19 ++
20 files changed, 537 insertions(+)
create mode 100644 Documentation/devicetree/bindings/soc/sunxi/sram.txt
create mode 100644 drivers/soc/sunxi/Kconfig
create mode 100644 drivers/soc/sunxi/Makefile
create mode 100644 drivers/soc/sunxi/sunxi_sram.c
create mode 100644 include/linux/soc/sunxi/sunxi_sram.h
--
2.4.1
More information about the linux-arm-kernel
mailing list