This is a first set of Gemini DTS patches for the v4.13 cycle.

This adds the reset and clock lines to the Gemini core DTS SoC.
 
 These bindings have been ACKed by the DT maintainer Rob.
 
 The reset driver is going to be merged by the reset maintainer.
 The clock driver is going to be merged by the clock maintainers.
 Each of these have their macro defines coming with them, split
 off as separate patches.
 
 A post-rc1 patch will be sumbitted for switching the numerical
 values to the defined macros in line with the ARM SoC DT header
 merge strategy.
 -----BEGIN PGP SIGNATURE-----
 
 iQIcBAABAgAGBQJZJUpbAAoJEEEQszewGV1zXSEQAIGcFltGHqLrbaM1Zc1I2XG3
 H1j0W09hQ5Zbnee09x1WBXRt6ickyCjlUb+Is969kF3BANvBGv1kl5UEoHhi86Yp
 JmvjxWkXcdqZrkQYobQd3Zi1Okd9W6sTBupVApbErieEYQIhqV7h5yTVdx3UIoEE
 dlLesk4l1aDuxAH0xM2o1fIXYH73ZWgRuEcGZlVDw/CgMWFjvmG1twQ1TtTWMDWS
 p29we0TjF18aP9fGlf1bBtbKgrrt23NIniuPvriwmUhpWPA/C2fKcw51G39m3Eqv
 2ep8azFotJB4EZ4lCv+24GojEkF5I+BmFaeMY/yV3jb2+Gufni7aSpc7c0yM8Zb8
 hLrlzbyCBU0Xc/xCuD7Hu0HoTIriJB7YM4W5O9pB3IJvrEjK6kc/tGSZa0YvmurC
 qlftNzFDwnUELUOtbOvA2g0BOMHxvbmUDHkFtFH6tWWgLGHsf7axLJSprQZgrmAJ
 Pq17XWWiLz3/bSkSOkGncIejp3Ed+5fo7kk06Dn4THCss7pD/KioFd6Wwi+Y2AEX
 TF7qP0t6KK9rN5Y1N6H1PRMFjKXARw/Qt3NhbG6RX2PCUPoD/upx6gzsO1Zu+7na
 kaZ2qUu2bjB1IQl0f2VGFfzExSBAyEZScFRGAvbY0EKwfI+tipupfsJgu0ocRfk2
 DxfT+fD+K35OSvMZ7V41
 =SNKP
 -----END PGP SIGNATURE-----

Merge tag 'gemini-v4.13-dts-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik into next/dt

This is a first set of Gemini DTS patches for the v4.13 cycle.

This adds the reset and clock lines to the Gemini core DTS SoC.

These bindings have been ACKed by the DT maintainer Rob.

The reset driver is going to be merged by the reset maintainer.
The clock driver is going to be merged by the clock maintainers.
Each of these have their macro defines coming with them, split
off as separate patches.

A post-rc1 patch will be sumbitted for switching the numerical
values to the defined macros in line with the ARM SoC DT header
merge strategy.

* tag 'gemini-v4.13-dts-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik:
  ARM: dts: Add clocks to the Gemini SoC
  ARM: dts: Add the Gemini reset controller
  dt-bindings: Augment Gemini for clocks, resets

Signed-off-by: Olof Johansson <olof@lixom.net>
This commit is contained in:
Olof Johansson 2017-06-01 17:26:06 -07:00
commit b90b24f589
2 changed files with 49 additions and 4 deletions

View File

@ -24,6 +24,19 @@ Required nodes:
global control registers, with the compatible string
"cortina,gemini-syscon", "syscon";
Required properties on the syscon:
- reg: syscon register location and size.
- #clock-cells: should be set to <1> - the system controller is also a
clock provider.
- #reset-cells: should be set to <1> - the system controller is also a
reset line provider.
The clock sources have shorthand defines in the include file:
<dt-bindings/clock/cortina,gemini-clock.h>
The reset lines have shorthand defines in the include file:
<dt-bindings/reset/cortina,gemini-reset.h>
- timer: the soc bus node must have a timer node pointing to the SoC timer
block, with the compatible string "cortina,gemini-timer"
See: clocksource/cortina,gemini-timer.txt
@ -56,12 +69,15 @@ Example:
syscon: syscon@40000000 {
compatible = "cortina,gemini-syscon", "syscon";
reg = <0x40000000 0x1000>;
#clock-cells = <1>;
#reset-cells = <1>;
};
uart0: serial@42000000 {
compatible = "ns16550a";
reg = <0x42000000 0x100>;
clock-frequency = <48000000>;
resets = <&syscon GEMINI_RESET_UART>;
clocks = <&syscon GEMINI_CLK_UART>;
interrupts = <18 IRQ_TYPE_LEVEL_HIGH>;
reg-shift = <2>;
};
@ -73,12 +89,18 @@ Example:
interrupts = <14 IRQ_TYPE_EDGE_FALLING>, /* Timer 1 */
<15 IRQ_TYPE_EDGE_FALLING>, /* Timer 2 */
<16 IRQ_TYPE_EDGE_FALLING>; /* Timer 3 */
resets = <&syscon GEMINI_RESET_TIMER>;
/* APB clock or RTC clock */
clocks = <&syscon GEMINI_CLK_APB>,
<&syscon GEMINI_CLK_RTC>;
clock-names = "PCLK", "EXTCLK";
syscon = <&syscon>;
};
intcon: interrupt-controller@48000000 {
compatible = "cortina,gemini-interrupt-controller";
reg = <0x48000000 0x1000>;
resets = <&syscon GEMINI_RESET_INTCON0>;
interrupt-controller;
#interrupt-cells = <2>;
};

View File

@ -25,8 +25,11 @@
};
syscon: syscon@40000000 {
compatible = "cortina,gemini-syscon", "syscon", "simple-mfd";
compatible = "cortina,gemini-syscon",
"syscon", "simple-mfd";
reg = <0x40000000 0x1000>;
#clock-cells = <1>;
#reset-cells = <1>;
syscon-reboot {
compatible = "syscon-reboot";
@ -42,23 +45,30 @@
compatible = "cortina,gemini-watchdog";
reg = <0x41000000 0x1000>;
interrupts = <3 IRQ_TYPE_LEVEL_HIGH>;
resets = <&syscon 23>;
clocks = <&syscon 2>;
};
uart0: serial@42000000 {
compatible = "ns16550a";
reg = <0x42000000 0x100>;
clock-frequency = <48000000>;
resets = <&syscon 18>;
clocks = <&syscon 6>;
interrupts = <18 IRQ_TYPE_LEVEL_HIGH>;
reg-shift = <2>;
};
timer@43000000 {
compatible = "cortina,gemini-timer";
compatible = "faraday,fttmr010";
reg = <0x43000000 0x1000>;
interrupt-parent = <&intcon>;
interrupts = <14 IRQ_TYPE_EDGE_FALLING>, /* Timer 1 */
<15 IRQ_TYPE_EDGE_FALLING>, /* Timer 2 */
<16 IRQ_TYPE_EDGE_FALLING>; /* Timer 3 */
resets = <&syscon 17>;
/* APB clock or RTC clock */
clocks = <&syscon 2>, <&syscon 0>;
clock-names = "PCLK", "EXTCLK";
syscon = <&syscon>;
};
@ -66,11 +76,15 @@
compatible = "cortina,gemini-rtc";
reg = <0x45000000 0x100>;
interrupts = <17 IRQ_TYPE_LEVEL_HIGH>;
resets = <&syscon 16>;
clocks = <&syscon 2>, <&syscon 0>;
clock-names = "PCLK", "EXTCLK";
};
intcon: interrupt-controller@48000000 {
compatible = "faraday,ftintc010";
reg = <0x48000000 0x1000>;
resets = <&syscon 14>;
interrupt-controller;
#interrupt-cells = <2>;
};
@ -85,6 +99,8 @@
compatible = "cortina,gemini-gpio", "faraday,ftgpio010";
reg = <0x4d000000 0x100>;
interrupts = <22 IRQ_TYPE_LEVEL_HIGH>;
resets = <&syscon 20>;
clocks = <&syscon 2>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
@ -95,6 +111,8 @@
compatible = "cortina,gemini-gpio", "faraday,ftgpio010";
reg = <0x4e000000 0x100>;
interrupts = <23 IRQ_TYPE_LEVEL_HIGH>;
resets = <&syscon 21>;
clocks = <&syscon 2>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
@ -105,6 +123,8 @@
compatible = "cortina,gemini-gpio", "faraday,ftgpio010";
reg = <0x4f000000 0x100>;
interrupts = <24 IRQ_TYPE_LEVEL_HIGH>;
resets = <&syscon 22>;
clocks = <&syscon 2>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
@ -118,6 +138,9 @@
* to configure the host bridge.
*/
reg = <0x50000000 0x100>;
resets = <&syscon 7>;
clocks = <&syscon 15>, <&syscon 4>;
clock-names = "PCLK", "PCICLK";
#address-cells = <3>;
#size-cells = <2>;
#interrupt-cells = <1>;