aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2016-10-08 00:23:40 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2016-10-08 00:23:40 -0400
commit6afd563d4bbc1924b7de9e053324c007e0d36476 (patch)
tree619c2270f6f09ce8c9eb7f6aa448f07f67ffa8e8
parentb4f33f6ddd0c218e12454e1379de3aaa73f2e8dc (diff)
parentd6db68b2deaa0158d25b236edffcf6dd2117208f (diff)
Merge tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC driver updates from Arnd Bergmann: "Driver updates for ARM SoCs, including a couple of newly added drivers: - The Qualcomm external bus interface 2 (EBI2), used in some of their mobile phone chips for connecting flash memory, LCD displays or other peripherals - Secure monitor firmware for Amlogic SoCs, and an NVMEM driver for the EFUSE based on that firmware interface. - Perf support for the AppliedMicro X-Gene performance monitor unit - Reset driver for STMicroelectronics STM32 - Reset driver for SocioNext UniPhier SoCs Aside from these, there are minor updates to SoC-specific bus, clocksource, firmware, pinctrl, reset, rtc and pmic drivers" * tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (50 commits) bus: qcom-ebi2: depend on HAS_IOMEM pinctrl: mvebu: orion5x: Generalise mv88f5181l support for 88f5181 clk: mvebu: Add clk support for the orion5x SoC mv88f5181 dt-bindings: EXYNOS: Add Exynos5433 PMU compatible clocksource: exynos_mct: Add the support for ARM64 perf: xgene: Add APM X-Gene SoC Performance Monitoring Unit driver Documentation: Add documentation for APM X-Gene SoC PMU DTS binding MAINTAINERS: Add entry for APM X-Gene SoC PMU driver bus: qcom: add EBI2 driver bus: qcom: add EBI2 device tree bindings rtc: rtc-pm8xxx: Add support for pm8018 rtc nvmem: amlogic: Add Amlogic Meson EFUSE driver firmware: Amlogic: Add secure monitor driver soc: qcom: smd: Reset rx tail rather than tx memory: atmel-sdramc: fix a possible NULL dereference reset: hi6220: allow to compile test driver on other architectures reset: zynq: add driver Kconfig option reset: sunxi: add driver Kconfig option reset: stm32: add driver Kconfig option reset: socfpga: add driver Kconfig option ...
-rw-r--r--Documentation/devicetree/bindings/arm/samsung/pmu.txt1
-rw-r--r--Documentation/devicetree/bindings/bus/qcom,ebi2.txt138
-rw-r--r--Documentation/devicetree/bindings/clock/mvebu-core-clock.txt1
-rw-r--r--Documentation/devicetree/bindings/clock/st,stm32-rcc.txt42
-rw-r--r--Documentation/devicetree/bindings/perf/apm-xgene-pmu.txt112
-rw-r--r--Documentation/devicetree/bindings/pinctrl/marvell,orion-pinctrl.txt4
-rw-r--r--Documentation/devicetree/bindings/reset/st,stm32-rcc.txt6
-rw-r--r--Documentation/devicetree/bindings/reset/uniphier-reset.txt93
-rw-r--r--Documentation/perf/xgene-pmu.txt48
-rw-r--r--MAINTAINERS8
-rw-r--r--arch/arm/boot/dts/stm32f429.dtsi1
-rw-r--r--drivers/bus/Kconfig14
-rw-r--r--drivers/bus/Makefile1
-rw-r--r--drivers/bus/qcom-ebi2.c408
-rw-r--r--drivers/bus/tegra-aconnect.c22
-rw-r--r--drivers/clk/mvebu/orion.c70
-rw-r--r--drivers/clocksource/Kconfig2
-rw-r--r--drivers/clocksource/exynos_mct.c4
-rw-r--r--drivers/firmware/Kconfig1
-rw-r--r--drivers/firmware/Makefile1
-rw-r--r--drivers/firmware/meson/Kconfig9
-rw-r--r--drivers/firmware/meson/Makefile1
-rw-r--r--drivers/firmware/meson/meson_sm.c248
-rw-r--r--drivers/firmware/qcom_scm.c19
-rw-r--r--drivers/media/rc/meson-ir.c29
-rw-r--r--drivers/memory/atmel-ebi.c10
-rw-r--r--drivers/memory/atmel-sdramc.c4
-rw-r--r--drivers/memory/omap-gpmc.c20
-rw-r--r--drivers/nvmem/Kconfig10
-rw-r--r--drivers/nvmem/Makefile2
-rw-r--r--drivers/nvmem/meson-efuse.c93
-rw-r--r--drivers/perf/Kconfig7
-rw-r--r--drivers/perf/Makefile1
-rw-r--r--drivers/perf/xgene_pmu.c1398
-rw-r--r--drivers/pinctrl/mvebu/pinctrl-orion.c23
-rw-r--r--drivers/reset/Kconfig65
-rw-r--r--drivers/reset/Makefile20
-rw-r--r--drivers/reset/core.c12
-rw-r--r--drivers/reset/hisilicon/Kconfig3
-rw-r--r--drivers/reset/reset-ath79.c1
-rw-r--r--drivers/reset/reset-socfpga.c19
-rw-r--r--drivers/reset/reset-stm32.c108
-rw-r--r--drivers/reset/reset-uniphier.c440
-rw-r--r--drivers/soc/mediatek/mtk-pmic-wrap.c2
-rw-r--r--drivers/soc/qcom/smd.c265
-rw-r--r--drivers/soc/qcom/smem.c3
-rw-r--r--drivers/soc/rockchip/pm_domains.c100
-rw-r--r--drivers/soc/tegra/pmc.c28
-rw-r--r--include/dt-bindings/mfd/stm32f4-rcc.h98
-rw-r--r--include/linux/firmware/meson/meson_sm.h31
-rw-r--r--include/linux/omap-gpmc.h4
-rw-r--r--include/linux/soc/qcom/smd.h29
52 files changed, 3789 insertions, 290 deletions
diff --git a/Documentation/devicetree/bindings/arm/samsung/pmu.txt b/Documentation/devicetree/bindings/arm/samsung/pmu.txt
index 2d6356d8daf4..bf5fc59a6938 100644
--- a/Documentation/devicetree/bindings/arm/samsung/pmu.txt
+++ b/Documentation/devicetree/bindings/arm/samsung/pmu.txt
@@ -10,6 +10,7 @@ Properties:
10 - "samsung,exynos5260-pmu" - for Exynos5260 SoC. 10 - "samsung,exynos5260-pmu" - for Exynos5260 SoC.
11 - "samsung,exynos5410-pmu" - for Exynos5410 SoC, 11 - "samsung,exynos5410-pmu" - for Exynos5410 SoC,
12 - "samsung,exynos5420-pmu" - for Exynos5420 SoC. 12 - "samsung,exynos5420-pmu" - for Exynos5420 SoC.
13 - "samsung,exynos5433-pmu" - for Exynos5433 SoC.
13 - "samsung,exynos7-pmu" - for Exynos7 SoC. 14 - "samsung,exynos7-pmu" - for Exynos7 SoC.
14 second value must be always "syscon". 15 second value must be always "syscon".
15 16
diff --git a/Documentation/devicetree/bindings/bus/qcom,ebi2.txt b/Documentation/devicetree/bindings/bus/qcom,ebi2.txt
new file mode 100644
index 000000000000..920681f552db
--- /dev/null
+++ b/Documentation/devicetree/bindings/bus/qcom,ebi2.txt
@@ -0,0 +1,138 @@
1Qualcomm External Bus Interface 2 (EBI2)
2
3The EBI2 contains two peripheral blocks: XMEM and LCDC. The XMEM handles any
4external memory (such as NAND or other memory-mapped peripherals) whereas
5LCDC handles LCD displays.
6
7As it says it connects devices to an external bus interface, meaning address
8lines (up to 9 address lines so can only address 1KiB external memory space),
9data lines (16 bits), OE (output enable), ADV (address valid, used on some
10NOR flash memories), WE (write enable). This on top of 6 different chip selects
11(CS0 thru CS5) so that in theory 6 different devices can be connected.
12
13Apparently this bus is clocked at 64MHz. It has dedicated pins on the package
14and the bus can only come out on these pins, however if some of the pins are
15unused they can be left unconnected or remuxed to be used as GPIO or in some
16cases other orthogonal functions as well.
17
18Also CS1 and CS2 has -A and -B signals. Why they have that is unclear to me.
19
20The chip selects have the following memory range assignments. This region of
21memory is referred to as "Chip Peripheral SS FPB0" and is 168MB big.
22
23Chip Select Physical address base
24CS0 GPIO134 0x1a800000-0x1b000000 (8MB)
25CS1 GPIO39 (A) / GPIO123 (B) 0x1b000000-0x1b800000 (8MB)
26CS2 GPIO40 (A) / GPIO124 (B) 0x1b800000-0x1c000000 (8MB)
27CS3 GPIO133 0x1d000000-0x25000000 (128 MB)
28CS4 GPIO132 0x1c800000-0x1d000000 (8MB)
29CS5 GPIO131 0x1c000000-0x1c800000 (8MB)
30
31The APQ8060 Qualcomm Application Processor User Guide, 80-N7150-14 Rev. A,
32August 6, 2012 contains some incomplete documentation of the EBI2.
33
34FIXME: the manual mentions "write precharge cycles" and "precharge cycles".
35We have not been able to figure out which bit fields these correspond to
36in the hardware, or what valid values exist. The current hypothesis is that
37this is something just used on the FAST chip selects and that the SLOW
38chip selects are understood fully. There is also a "byte device enable"
39flag somewhere for 8bit memories.
40
41FIXME: The chipselects have SLOW and FAST configuration registers. It's a bit
42unclear what this means, if they are mutually exclusive or can be used
43together, or if some chip selects are hardwired to be FAST and others are SLOW
44by design.
45
46The XMEM registers are totally undocumented but could be partially decoded
47because the Cypress AN49576 Antioch Westbridge apparently has suspiciously
48similar register layout, see: http://www.cypress.com/file/105771/download
49
50Required properties:
51- compatible: should be one of:
52 "qcom,msm8660-ebi2"
53 "qcom,apq8060-ebi2"
54- #address-cells: shoule be <2>: the first cell is the chipselect,
55 the second cell is the offset inside the memory range
56- #size-cells: should be <1>
57- ranges: should be set to:
58 ranges = <0 0x0 0x1a800000 0x00800000>,
59 <1 0x0 0x1b000000 0x00800000>,
60 <2 0x0 0x1b800000 0x00800000>,
61 <3 0x0 0x1d000000 0x08000000>,
62 <4 0x0 0x1c800000 0x00800000>,
63 <5 0x0 0x1c000000 0x00800000>;
64- reg: two ranges of registers: EBI2 config and XMEM config areas
65- reg-names: should be "ebi2", "xmem"
66- clocks: two clocks, EBI_2X and EBI
67- clock-names: shoule be "ebi2x", "ebi2"
68
69Optional subnodes:
70- Nodes inside the EBI2 will be considered device nodes.
71
72The following optional properties are properties that can be tagged onto
73any device subnode. We are assuming that there can be only ONE device per
74chipselect subnode, else the properties will become ambigous.
75
76Optional properties arrays for SLOW chip selects:
77- qcom,xmem-recovery-cycles: recovery cycles is the time the memory continues to
78 drive the data bus after OE is de-asserted, in order to avoid contention on
79 the data bus. They are inserted when reading one CS and switching to another
80 CS or read followed by write on the same CS. Valid values 0 thru 15. Minimum
81 value is actually 1, so a value of 0 will still yield 1 recovery cycle.
82- qcom,xmem-write-hold-cycles: write hold cycles, these are extra cycles
83 inserted after every write minimum 1. The data out is driven from the time
84 WE is asserted until CS is asserted. With a hold of 1 (value = 0), the CS
85 stays active for 1 extra cycle etc. Valid values 0 thru 15.
86- qcom,xmem-write-delta-cycles: initial latency for write cycles inserted for
87 the first write to a page or burst memory. Valid values 0 thru 255.
88- qcom,xmem-read-delta-cycles: initial latency for read cycles inserted for the
89 first read to a page or burst memory. Valid values 0 thru 255.
90- qcom,xmem-write-wait-cycles: number of wait cycles for every write access, 0=1
91 cycle