forked from microsoft/WSL2-Linux-Kernel
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge tag 'soc-for-linus' of git://git.kernel.org/pub/scm/linux/kerne…
…l/git/arm/arm-soc Pull ARM SoC specific changes from Arnd Bergmann: "These changes are all to SoC-specific code, a total of 33 branches on 17 platforms were pulled into this. Like last time, Renesas sh-mobile is now the platform with the most changes, followed by OMAP and EXYNOS. Two new platforms, TI Keystone and Rockchips RK3xxx are added in this branch, both containing almost no platform specific code at all, since they are using generic subsystem interfaces for clocks, pinctrl, interrupts etc. The device drivers are getting merged through the respective subsystem maintainer trees. One more SoC (u300) is now multiplatform capable and several others (shmobile, exynos, msm, integrator, kirkwood, clps711x) are moving towards that goal with this series but need more work. Also noteworthy is the work on PCI here, which is traditionally part of the SoC specific code. With the changes done by Thomas Petazzoni, we can now more easily have PCI host controller drivers as loadable modules and keep them separate from the platform code in drivers/pci/host. This has already led to the discovery that three platforms (exynos, spear and imx) are actually using an identical PCIe host controller and will be able to share a driver once support for spear and imx is added." * tag 'soc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (480 commits) ARM: integrator: let pciv3 use mem/premem from device tree ARM: integrator: set local side PCI addresses right ARM: dts: Add pcie controller node for exynos5440-ssdk5440 ARM: dts: Add pcie controller node for Samsung EXYNOS5440 SoC ARM: EXYNOS: Enable PCIe support for Exynos5440 pci: Add PCIe driver for Samsung Exynos ARM: OMAP5: voltagedomain data: remove temporary OMAP4 voltage data ARM: keystone: Move CPU bringup code to dedicated asm file ARM: multiplatform: always pick one CPU type ARM: imx: select syscon for IMX6SL ARM: keystone: select ARM_ERRATA_798181 only for SMP ARM: imx: Synertronixx scb9328 needs to select SOC_IMX1 ARM: OMAP2+: AM43x: resolve SMP related build error dmaengine: edma: enable build for AM33XX ARM: edma: Add EDMA crossbar event mux support ARM: edma: Add DT and runtime PM support to the private EDMA API dmaengine: edma: Add TI EDMA device tree binding arm: add basic support for Rockchip RK3066a boards arm: add debug uarts for rockchip rk29xx and rk3xxx series arm: Add basic clocks for Rockchip rk3066a SoCs ...
- Loading branch information
Showing
482 changed files
with
34,844 additions
and
19,523 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,172 @@ | ||
======================================================= | ||
ARM CCI cache coherent interconnect binding description | ||
======================================================= | ||
|
||
ARM multi-cluster systems maintain intra-cluster coherency through a | ||
cache coherent interconnect (CCI) that is capable of monitoring bus | ||
transactions and manage coherency, TLB invalidations and memory barriers. | ||
|
||
It allows snooping and distributed virtual memory message broadcast across | ||
clusters, through memory mapped interface, with a global control register | ||
space and multiple sets of interface control registers, one per slave | ||
interface. | ||
|
||
Bindings for the CCI node follow the ePAPR standard, available from: | ||
|
||
www.power.org/documentation/epapr-version-1-1/ | ||
|
||
with the addition of the bindings described in this document which are | ||
specific to ARM. | ||
|
||
* CCI interconnect node | ||
|
||
Description: Describes a CCI cache coherent Interconnect component | ||
|
||
Node name must be "cci". | ||
Node's parent must be the root node /, and the address space visible | ||
through the CCI interconnect is the same as the one seen from the | ||
root node (ie from CPUs perspective as per DT standard). | ||
Every CCI node has to define the following properties: | ||
|
||
- compatible | ||
Usage: required | ||
Value type: <string> | ||
Definition: must be set to | ||
"arm,cci-400" | ||
|
||
- reg | ||
Usage: required | ||
Value type: <prop-encoded-array> | ||
Definition: A standard property. Specifies base physical | ||
address of CCI control registers common to all | ||
interfaces. | ||
|
||
- ranges: | ||
Usage: required | ||
Value type: <prop-encoded-array> | ||
Definition: A standard property. Follow rules in the ePAPR for | ||
hierarchical bus addressing. CCI interfaces | ||
addresses refer to the parent node addressing | ||
scheme to declare their register bases. | ||
|
||
CCI interconnect node can define the following child nodes: | ||
|
||
- CCI control interface nodes | ||
|
||
Node name must be "slave-if". | ||
Parent node must be CCI interconnect node. | ||
|
||
A CCI control interface node must contain the following | ||
properties: | ||
|
||
- compatible | ||
Usage: required | ||
Value type: <string> | ||
Definition: must be set to | ||
"arm,cci-400-ctrl-if" | ||
|
||
- interface-type: | ||
Usage: required | ||
Value type: <string> | ||
Definition: must be set to one of {"ace", "ace-lite"} | ||
depending on the interface type the node | ||
represents. | ||
|
||
- reg: | ||
Usage: required | ||
Value type: <prop-encoded-array> | ||
Definition: the base address and size of the | ||
corresponding interface programming | ||
registers. | ||
|
||
* CCI interconnect bus masters | ||
|
||
Description: masters in the device tree connected to a CCI port | ||
(inclusive of CPUs and their cpu nodes). | ||
|
||
A CCI interconnect bus master node must contain the following | ||
properties: | ||
|
||
- cci-control-port: | ||
Usage: required | ||
Value type: <phandle> | ||
Definition: a phandle containing the CCI control interface node | ||
the master is connected to. | ||
|
||
Example: | ||
|
||
cpus { | ||
#size-cells = <0>; | ||
#address-cells = <1>; | ||
|
||
CPU0: cpu@0 { | ||
device_type = "cpu"; | ||
compatible = "arm,cortex-a15"; | ||
cci-control-port = <&cci_control1>; | ||
reg = <0x0>; | ||
}; | ||
|
||
CPU1: cpu@1 { | ||
device_type = "cpu"; | ||
compatible = "arm,cortex-a15"; | ||
cci-control-port = <&cci_control1>; | ||
reg = <0x1>; | ||
}; | ||
|
||
CPU2: cpu@100 { | ||
device_type = "cpu"; | ||
compatible = "arm,cortex-a7"; | ||
cci-control-port = <&cci_control2>; | ||
reg = <0x100>; | ||
}; | ||
|
||
CPU3: cpu@101 { | ||
device_type = "cpu"; | ||
compatible = "arm,cortex-a7"; | ||
cci-control-port = <&cci_control2>; | ||
reg = <0x101>; | ||
}; | ||
|
||
}; | ||
|
||
dma0: dma@3000000 { | ||
compatible = "arm,pl330", "arm,primecell"; | ||
cci-control-port = <&cci_control0>; | ||
reg = <0x0 0x3000000 0x0 0x1000>; | ||
interrupts = <10>; | ||
#dma-cells = <1>; | ||
#dma-channels = <8>; | ||
#dma-requests = <32>; | ||
}; | ||
|
||
cci@2c090000 { | ||
compatible = "arm,cci-400"; | ||
#address-cells = <1>; | ||
#size-cells = <1>; | ||
reg = <0x0 0x2c090000 0 0x1000>; | ||
ranges = <0x0 0x0 0x2c090000 0x6000>; | ||
|
||
cci_control0: slave-if@1000 { | ||
compatible = "arm,cci-400-ctrl-if"; | ||
interface-type = "ace-lite"; | ||
reg = <0x1000 0x1000>; | ||
}; | ||
|
||
cci_control1: slave-if@4000 { | ||
compatible = "arm,cci-400-ctrl-if"; | ||
interface-type = "ace"; | ||
reg = <0x4000 0x1000>; | ||
}; | ||
|
||
cci_control2: slave-if@5000 { | ||
compatible = "arm,cci-400-ctrl-if"; | ||
interface-type = "ace"; | ||
reg = <0x5000 0x1000>; | ||
}; | ||
}; | ||
|
||
This CCI node corresponds to a CCI component whose control registers sits | ||
at address 0x000000002c090000. | ||
CCI slave interface @0x000000002c091000 is connected to dma controller dma0. | ||
CCI slave interface @0x000000002c094000 is connected to CPUs {CPU0, CPU1}; | ||
CCI slave interface @0x000000002c095000 is connected to CPUs {CPU2, CPU3}; |
10 changes: 10 additions & 0 deletions
10
Documentation/devicetree/bindings/arm/keystone/keystone.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,10 @@ | ||
TI Keystone Platforms Device Tree Bindings | ||
----------------------------------------------- | ||
|
||
Boards with Keystone2 based devices (TCI66xxK2H) SOC shall have the | ||
following properties. | ||
|
||
Required properties: | ||
- compatible: All TI specific devices present in Keystone SOC should be in | ||
the form "ti,keystone-*". Generic devices like gic, arch_timers, ns16550 | ||
type UART should use the specified compatible for those devices. |
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,19 @@ | ||
ARM Dual Cluster System Configuration Block | ||
------------------------------------------- | ||
|
||
The Dual Cluster System Configuration Block (DCSCB) provides basic | ||
functionality for controlling clocks, resets and configuration pins in | ||
the Dual Cluster System implemented by the Real-Time System Model (RTSM). | ||
|
||
Required properties: | ||
|
||
- compatible : should be "arm,rtsm,dcscb" | ||
|
||
- reg : physical base address and the size of the registers window | ||
|
||
Example: | ||
|
||
dcscb@60000000 { | ||
compatible = "arm,rtsm,dcscb"; | ||
reg = <0x60000000 0x1000>; | ||
}; |
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,46 @@ | ||
ST-Ericsson U300 Device Tree Bindings | ||
|
||
For various board the "board" node may contain specific properties | ||
that pertain to this particular board, such as board-specific GPIOs | ||
or board power regulator supplies. | ||
|
||
Required root node property: | ||
|
||
compatible="stericsson,u300"; | ||
|
||
Required node: syscon | ||
This contains the system controller. | ||
- compatible: must be "stericsson,u300-syscon". | ||
- reg: the base address and size of the system controller. | ||
|
||
Boards with the U300 SoC include: | ||
|
||
S365 "Small Board U365": | ||
|
||
Required node: s365 | ||
This contains the board-specific information. | ||
- compatible: must be "stericsson,s365". | ||
- vana15-supply: the regulator supplying the 1.5V to drive the | ||
board. | ||
- syscon: a pointer to the syscon node so we can acccess the | ||
syscon registers to set the board as self-powered. | ||
|
||
Example: | ||
|
||
/ { | ||
model = "ST-Ericsson U300"; | ||
compatible = "stericsson,u300"; | ||
#address-cells = <1>; | ||
#size-cells = <1>; | ||
|
||
s365 { | ||
compatible = "stericsson,s365"; | ||
vana15-supply = <&ab3100_ldo_d_reg>; | ||
syscon = <&syscon>; | ||
}; | ||
|
||
syscon: syscon@c0011000 { | ||
compatible = "stericsson,u300-syscon"; | ||
reg = <0xc0011000 0x1000>; | ||
}; | ||
}; |
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 |
---|---|---|
|
@@ -208,6 +208,7 @@ clocks and IDs. | |
pll4_post_div 193 | ||
pll5_post_div 194 | ||
pll5_video_div 195 | ||
eim_slow 196 | ||
|
||
Examples: | ||
|
||
|
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,10 @@ | ||
* Clock bindings for Freescale i.MX6 SoloLite | ||
|
||
Required properties: | ||
- compatible: Should be "fsl,imx6sl-ccm" | ||
- reg: Address and length of the register set | ||
- #clock-cells: Should be <1> | ||
|
||
The clock consumer should specify the desired clock by having the clock | ||
ID in its "clocks" phandle cell. See include/dt-bindings/clock/imx6sl-clock.h | ||
for the full list of i.MX6 SoloLite clock IDs. |
80 changes: 80 additions & 0 deletions
80
Documentation/devicetree/bindings/clock/ste-u300-syscon-clock.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,80 @@ | ||
Clock bindings for ST-Ericsson U300 System Controller Clocks | ||
|
||
Bindings for the gated system controller clocks: | ||
|
||
Required properties: | ||
- compatible: must be "stericsson,u300-syscon-clk" | ||
- #clock-cells: must be <0> | ||
- clock-type: specifies the type of clock: | ||
0 = slow clock | ||
1 = fast clock | ||
2 = rest/remaining clock | ||
- clock-id: specifies the clock in the type range | ||
|
||
Optional properties: | ||
- clocks: parent clock(s) | ||
|
||
The available clocks per type are as follows: | ||
|
||
Type: ID: Clock: | ||
------------------- | ||
0 0 Slow peripheral bridge clock | ||
0 1 UART0 clock | ||
0 4 GPIO clock | ||
0 6 RTC clock | ||
0 7 Application timer clock | ||
0 8 Access timer clock | ||
|
||
1 0 Fast peripheral bridge clock | ||
1 1 I2C bus 0 clock | ||
1 2 I2C bus 1 clock | ||
1 5 MMC interface peripheral (silicon) clock | ||
1 6 SPI clock | ||
|
||
2 3 CPU clock | ||
2 4 DMA controller clock | ||
2 5 External Memory Interface (EMIF) clock | ||
2 6 NAND flask interface clock | ||
2 8 XGAM graphics engine clock | ||
2 9 Shared External Memory Interface (SEMI) clock | ||
2 10 AHB Subsystem Bridge clock | ||
2 12 Interrupt controller clock | ||
|
||
Example: | ||
|
||
gpio_clk: gpio_clk@13M { | ||
#clock-cells = <0>; | ||
compatible = "stericsson,u300-syscon-clk"; | ||
clock-type = <0>; /* Slow */ | ||
clock-id = <4>; | ||
clocks = <&slow_clk>; | ||
}; | ||
|
||
gpio: gpio@c0016000 { | ||
compatible = "stericsson,gpio-coh901"; | ||
(...) | ||
clocks = <&gpio_clk>; | ||
}; | ||
|
||
|
||
Bindings for the MMC/SD card clock: | ||
|
||
Required properties: | ||
- compatible: must be "stericsson,u300-syscon-mclk" | ||
- #clock-cells: must be <0> | ||
|
||
Optional properties: | ||
- clocks: parent clock(s) | ||
|
||
mmc_mclk: mmc_mclk { | ||
#clock-cells = <0>; | ||
compatible = "stericsson,u300-syscon-mclk"; | ||
clocks = <&mmc_pclk>; | ||
}; | ||
|
||
mmcsd: mmcsd@c0001000 { | ||
compatible = "arm,pl18x", "arm,primecell"; | ||
clocks = <&mmc_pclk>, <&mmc_mclk>; | ||
clock-names = "apb_pclk", "mclk"; | ||
(...) | ||
}; |
Oops, something went wrong.