forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge tag 'drivers-3.15' of git://git.kernel.org/pub/scm/linux/kernel…
…/git/arm/arm-soc Pull ARM SoC driver changes from Arnd Bergmann: "These changes are mostly for ARM specific device drivers that either don't have an upstream maintainer, or that had the maintainer ask us to pick up the changes to avoid conflicts. A large chunk of this are clock drivers (bcm281xx, exynos, versatile, shmobile), aside from that, reset controllers for STi as well as a large rework of the Marvell Orion/EBU watchdog driver are notable" * tag 'drivers-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (99 commits) Revert "dts: socfpga: Add DTS entry for adding the stmmac glue layer for stmmac." Revert "net: stmmac: Add SOCFPGA glue driver" ARM: shmobile: r8a7791: Fix SCIFA3-5 clocks ARM: STi: Add reset controller support to mach-sti Kconfig drivers: reset: stih416: add softreset controller drivers: reset: stih415: add softreset controller drivers: reset: Reset controller driver for STiH416 drivers: reset: Reset controller driver for STiH415 drivers: reset: STi SoC system configuration reset controller support dts: socfpga: Add sysmgr node so the gmac can use to reference dts: socfpga: Add support for SD/MMC on the SOCFPGA platform reset: Add optional resets and stubs ARM: shmobile: r7s72100: fix bus clock calculation Power: Reset: Generalize qnap-poweroff to work on Synology devices. dts: socfpga: Update clock entry to support multiple parents ARM: socfpga: Update socfpga_defconfig dts: socfpga: Add DTS entry for adding the stmmac glue layer for stmmac. net: stmmac: Add SOCFPGA glue driver watchdog: orion_wdt: Use %pa to print 'phys_addr_t' drivers: cci: Export CCI PMU revision ...
- Loading branch information
Showing
107 changed files
with
5,490 additions
and
699 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
Some socs have a large number of interrupts requests to service | ||
the needs of its many peripherals and subsystems. All of the | ||
interrupt lines from the subsystems are not needed at the same | ||
time, so they have to be muxed to the irq-controller appropriately. | ||
In such places a interrupt controllers are preceded by an CROSSBAR | ||
that provides flexibility in muxing the device requests to the controller | ||
inputs. | ||
|
||
Required properties: | ||
- compatible : Should be "ti,irq-crossbar" | ||
- reg: Base address and the size of the crossbar registers. | ||
- ti,max-irqs: Total number of irqs available at the interrupt controller. | ||
- ti,reg-size: Size of a individual register in bytes. Every individual | ||
register is assumed to be of same size. Valid sizes are 1, 2, 4. | ||
- ti,irqs-reserved: List of the reserved irq lines that are not muxed using | ||
crossbar. These interrupt lines are reserved in the soc, | ||
so crossbar bar driver should not consider them as free | ||
lines. | ||
|
||
Examples: | ||
crossbar_mpu: @4a020000 { | ||
compatible = "ti,irq-crossbar"; | ||
reg = <0x4a002a48 0x130>; | ||
ti,max-irqs = <160>; | ||
ti,reg-size = <2>; | ||
ti,irqs-reserved = <0 1 2 3 5 6 131 132 139 140>; | ||
}; |
34 changes: 34 additions & 0 deletions
34
Documentation/devicetree/bindings/clock/arm-integrator.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
Clock bindings for ARM Integrator Core Module clocks | ||
|
||
Auxilary Oscillator Clock | ||
|
||
This is a configurable clock fed from a 24 MHz chrystal, | ||
used for generating e.g. video clocks. It is located on the | ||
core module and there is only one of these. | ||
|
||
This clock node *must* be a subnode of the core module, since | ||
it obtains the base address for it's address range from its | ||
parent node. | ||
|
||
|
||
Required properties: | ||
- compatible: must be "arm,integrator-cm-auxosc" | ||
- #clock-cells: must be <0> | ||
|
||
Optional properties: | ||
- clocks: parent clock(s) | ||
|
||
Example: | ||
|
||
core-module@10000000 { | ||
xtal24mhz: xtal24mhz@24M { | ||
#clock-cells = <0>; | ||
compatible = "fixed-clock"; | ||
clock-frequency = <24000000>; | ||
}; | ||
auxosc: cm_aux_osc@25M { | ||
#clock-cells = <0>; | ||
compatible = "arm,integrator-cm-auxosc"; | ||
clocks = <&xtal24mhz>; | ||
}; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
* Altera SOCFPGA specific extensions to the Synopsys Designware Mobile | ||
Storage Host Controller | ||
|
||
The Synopsys designware mobile storage host controller is used to interface | ||
a SoC with storage medium such as eMMC or SD/MMC cards. This file documents | ||
differences between the core Synopsys dw mshc controller properties described | ||
by synopsys-dw-mshc.txt and the properties used by the Altera SOCFPGA specific | ||
extensions to the Synopsys Designware Mobile Storage Host Controller. | ||
|
||
Required Properties: | ||
|
||
* compatible: should be | ||
- "altr,socfpga-dw-mshc": for Altera's SOCFPGA platform | ||
|
||
Example: | ||
|
||
mmc: dwmmc0@ff704000 { | ||
compatible = "altr,socfpga-dw-mshc"; | ||
reg = <0xff704000 0x1000>; | ||
interrupts = <0 129 4>; | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -18,6 +18,28 @@ | |
bootargs = "root=/dev/ram0 console=ttyAM0,38400n8 earlyprintk"; | ||
}; | ||
|
||
/* 24 MHz chrystal on the core module */ | ||
xtal24mhz: xtal24mhz@24M { | ||
#clock-cells = <0>; | ||
compatible = "fixed-clock"; | ||
clock-frequency = <24000000>; | ||
}; | ||
|
||
pclk: pclk@0 { | ||
#clock-cells = <0>; | ||
compatible = "fixed-factor-clock"; | ||
clock-div = <1>; | ||
clock-mult = <1>; | ||
clocks = <&xtal24mhz>; | ||
}; | ||
|
||
/* The UART clock is 14.74 MHz divided by an ICS525 */ | ||
uartclk: [email protected] { | ||
#clock-cells = <0>; | ||
compatible = "fixed-clock"; | ||
clock-frequency = <14745600>; | ||
}; | ||
|
||
syscon { | ||
compatible = "arm,integrator-ap-syscon"; | ||
reg = <0x11000000 0x100>; | ||
|
@@ -28,14 +50,17 @@ | |
|
||
timer0: timer@13000000 { | ||
compatible = "arm,integrator-timer"; | ||
clocks = <&xtal24mhz>; | ||
}; | ||
|
||
timer1: timer@13000100 { | ||
compatible = "arm,integrator-timer"; | ||
clocks = <&xtal24mhz>; | ||
}; | ||
|
||
timer2: timer@13000200 { | ||
compatible = "arm,integrator-timer"; | ||
clocks = <&xtal24mhz>; | ||
}; | ||
|
||
pic: pic@14000000 { | ||
|
@@ -92,26 +117,36 @@ | |
rtc: rtc@15000000 { | ||
compatible = "arm,pl030", "arm,primecell"; | ||
arm,primecell-periphid = <0x00041030>; | ||
clocks = <&pclk>; | ||
clock-names = "apb_pclk"; | ||
}; | ||
|
||
uart0: uart@16000000 { | ||
compatible = "arm,pl010", "arm,primecell"; | ||
arm,primecell-periphid = <0x00041010>; | ||
clocks = <&uartclk>, <&pclk>; | ||
clock-names = "uartclk", "apb_pclk"; | ||
}; | ||
|
||
uart1: uart@17000000 { | ||
compatible = "arm,pl010", "arm,primecell"; | ||
arm,primecell-periphid = <0x00041010>; | ||
clocks = <&uartclk>, <&pclk>; | ||
clock-names = "uartclk", "apb_pclk"; | ||
}; | ||
|
||
kmi0: kmi@18000000 { | ||
compatible = "arm,pl050", "arm,primecell"; | ||
arm,primecell-periphid = <0x00041050>; | ||
clocks = <&xtal24mhz>, <&pclk>; | ||
clock-names = "KMIREFCLK", "apb_pclk"; | ||
}; | ||
|
||
kmi1: kmi@19000000 { | ||
compatible = "arm,pl050", "arm,primecell"; | ||
arm,primecell-periphid = <0x00041050>; | ||
clocks = <&xtal24mhz>, <&pclk>; | ||
clock-names = "KMIREFCLK", "apb_pclk"; | ||
}; | ||
}; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -13,25 +13,107 @@ | |
bootargs = "root=/dev/ram0 console=ttyAMA0,38400n8 earlyprintk"; | ||
}; | ||
|
||
/* | ||
* The Integrator/CP overall clocking architecture can be found in | ||
* ARM DUI 0184B page 7-28 "Integrator/CP922T system clocks" which | ||
* appear to illustrate the layout used in most configurations. | ||
*/ | ||
|
||
/* The codec chrystal operates at 24.576 MHz */ | ||
xtal_codec: [email protected] { | ||
#clock-cells = <0>; | ||
compatible = "fixed-clock"; | ||
clock-frequency = <24576000>; | ||
}; | ||
|
||
/* The chrystal is divided by 2 by the codec for the AACI bit clock */ | ||
aaci_bitclk: [email protected] { | ||
#clock-cells = <0>; | ||
compatible = "fixed-factor-clock"; | ||
clock-div = <2>; | ||
clock-mult = <1>; | ||
clocks = <&xtal_codec>; | ||
}; | ||
|
||
/* This is a 25MHz chrystal on the base board */ | ||
xtal25mhz: xtal25mhz@25M { | ||
#clock-cells = <0>; | ||
compatible = "fixed-clock"; | ||
clock-frequency = <25000000>; | ||
}; | ||
|
||
/* The UART clock is 14.74 MHz divided from 25MHz by an ICS525 */ | ||
uartclk: [email protected] { | ||
#clock-cells = <0>; | ||
compatible = "fixed-clock"; | ||
clock-frequency = <14745600>; | ||
}; | ||
|
||
/* Actually sysclk I think */ | ||
pclk: pclk@0 { | ||
#clock-cells = <0>; | ||
compatible = "fixed-clock"; | ||
clock-frequency = <0>; | ||
}; | ||
|
||
core-module@10000000 { | ||
/* 24 MHz chrystal on the core module */ | ||
xtal24mhz: xtal24mhz@24M { | ||
#clock-cells = <0>; | ||
compatible = "fixed-clock"; | ||
clock-frequency = <24000000>; | ||
}; | ||
|
||
/* | ||
* External oscillator on the core module, usually used | ||
* to drive video circuitry. Driven from the 24MHz clock. | ||
*/ | ||
auxosc: cm_aux_osc@25M { | ||
#clock-cells = <0>; | ||
compatible = "arm,integrator-cm-auxosc"; | ||
clocks = <&xtal24mhz>; | ||
}; | ||
|
||
/* The KMI clock is the 24 MHz oscillator divided to 8MHz */ | ||
kmiclk: kmiclk@1M { | ||
#clock-cells = <0>; | ||
compatible = "fixed-factor-clock"; | ||
clock-div = <3>; | ||
clock-mult = <1>; | ||
clocks = <&xtal24mhz>; | ||
}; | ||
|
||
/* The timer clock is the 24 MHz oscillator divided to 1MHz */ | ||
timclk: timclk@1M { | ||
#clock-cells = <0>; | ||
compatible = "fixed-factor-clock"; | ||
clock-div = <24>; | ||
clock-mult = <1>; | ||
clocks = <&xtal24mhz>; | ||
}; | ||
}; | ||
|
||
syscon { | ||
compatible = "arm,integrator-cp-syscon"; | ||
reg = <0xcb000000 0x100>; | ||
}; | ||
|
||
timer0: timer@13000000 { | ||
/* TIMER0 runs @ 25MHz */ | ||
/* TIMER0 runs directly on the 25MHz chrystal */ | ||
compatible = "arm,integrator-cp-timer"; | ||
status = "disabled"; | ||
clocks = <&xtal25mhz>; | ||
}; | ||
|
||
timer1: timer@13000100 { | ||
/* TIMER1 runs @ 1MHz */ | ||
compatible = "arm,integrator-cp-timer"; | ||
clocks = <&timclk>; | ||
}; | ||
|
||
timer2: timer@13000200 { | ||
/* TIMER2 runs @ 1MHz */ | ||
compatible = "arm,integrator-cp-timer"; | ||
clocks = <&timclk>; | ||
}; | ||
|
||
pic: pic@14000000 { | ||
|
@@ -74,22 +156,32 @@ | |
*/ | ||
rtc@15000000 { | ||
compatible = "arm,pl031", "arm,primecell"; | ||
clocks = <&pclk>; | ||
clock-names = "apb_pclk"; | ||
}; | ||
|
||
uart@16000000 { | ||
compatible = "arm,pl011", "arm,primecell"; | ||
clocks = <&uartclk>, <&pclk>; | ||
clock-names = "uartclk", "apb_pclk"; | ||
}; | ||
|
||
uart@17000000 { | ||
compatible = "arm,pl011", "arm,primecell"; | ||
clocks = <&uartclk>, <&pclk>; | ||
clock-names = "uartclk", "apb_pclk"; | ||
}; | ||
|
||
kmi@18000000 { | ||
compatible = "arm,pl050", "arm,primecell"; | ||
clocks = <&kmiclk>, <&pclk>; | ||
clock-names = "KMIREFCLK", "apb_pclk"; | ||
}; | ||
|
||
kmi@19000000 { | ||
compatible = "arm,pl050", "arm,primecell"; | ||
clocks = <&kmiclk>, <&pclk>; | ||
clock-names = "KMIREFCLK", "apb_pclk"; | ||
}; | ||
|
||
/* | ||
|
@@ -100,18 +192,24 @@ | |
reg = <0x1c000000 0x1000>; | ||
interrupts = <23 24>; | ||
max-frequency = <515633>; | ||
clocks = <&uartclk>, <&pclk>; | ||
clock-names = "mclk", "apb_pclk"; | ||
}; | ||
|
||
aaci@1d000000 { | ||
compatible = "arm,pl041", "arm,primecell"; | ||
reg = <0x1d000000 0x1000>; | ||
interrupts = <25>; | ||
clocks = <&pclk>; | ||
clock-names = "apb_pclk"; | ||
}; | ||
|
||
clcd@c0000000 { | ||
compatible = "arm,pl110", "arm,primecell"; | ||
reg = <0xC0000000 0x1000>; | ||
interrupts = <22>; | ||
clocks = <&auxosc>, <&pclk>; | ||
clock-names = "clcd", "apb_pclk"; | ||
}; | ||
}; | ||
}; |
Oops, something went wrong.