forked from torvalds/linux
-
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 branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upst…
…ream-linus Pull MIPS updates from Ralf Baechle: "This is the main pull request for MIPS for Linux 4.1. Most noteworthy: - Add more Octeon-optimized crypto functions - Octeon crypto preemption and locking fixes - Little endian support for Octeon - Use correct CSR to soft reset Octeons - Support LEDs on the Octeon-based DSR-1000N - Fix PCI interrupt mapping for the Octeon-based DSR-1000N - Mark prom_free_prom_memory() as __init for a number of systems - Support for Imagination's Pistachio SOC. This includes arch and CLK bits. I'd like to merge pinctrl bits later - Improve parallelism of csum_partial for certain pipelines - Organize DTB files in subdirs like other architectures - Implement read_sched_clock for all MIPS platforms other than Octeon - Massive series of 38 fixes and cleanups for the FPU emulator / kernel - Further FPU remulator work to support new features. This sits on a separate branch which also has been pulled into the 4.1 KVM branch - Clean up and fixes for the SEAD3 eval board; remove unused file - Various updates for Netlogic platforms - A number of small updates for Loongson 3 platforms - Increase the memory limit for ATH79 platforms to 256MB - A fair number of fixes and updates for BCM47xx platforms - Finish the implementation of XPA support - MIPS FDC support. No, not floppy controller but Fast Debug Channel :) - Detect the R16000 used in SGI legacy platforms - Fix Kconfig dependencies for the SSB bus support" * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (265 commits) MIPS: Makefile: Fix MIPS ASE detection code MIPS: asm: elf: Set O32 default FPU flags MIPS: BCM47XX: Fix detecting Microsoft MN-700 & Asus WL500G MIPS: Kconfig: Disable SMP/CPS for 64-bit MIPS: Hibernate: flush TLB entries earlier MIPS: smp-cps: cpu_set FPU mask if FPU present MIPS: lose_fpu(): Disable FPU when MSA enabled MIPS: ralink: add missing symbol for RALINK_ILL_ACC MIPS: ralink: Fix bad config symbol in PCI makefile. SSB: fix Kconfig dependencies MIPS: Malta: Detect and fix bad memsize values Revert "MIPS: Avoid pipeline stalls on some MIPS32R2 cores." MIPS: Octeon: Delete override of cpu_has_mips_r2_exec_hazard. MIPS: Fix cpu_has_mips_r2_exec_hazard. MIPS: kernel: entry.S: Set correct ISA level for mips_ihb MIPS: asm: spinlock: Fix addiu instruction for R10000_LLSC_WAR case MIPS: r4kcache: Use correct base register for MIPS R6 cache flushes MIPS: Kconfig: Fix typo for the r2-to-r6 emulator kernel parameter MIPS: unaligned: Fix regular load/store instruction emulation for EVA MIPS: unaligned: Surround load/store macros in do {} while statements ...
- Loading branch information
Showing
352 changed files
with
12,448 additions
and
3,891 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
123 changes: 123 additions & 0 deletions
123
Documentation/devicetree/bindings/clock/pistachio-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,123 @@ | ||
Imagination Technologies Pistachio SoC clock controllers | ||
======================================================== | ||
|
||
Pistachio has four clock controllers (core clock, peripheral clock, peripheral | ||
general control, and top general control) which are instantiated individually | ||
from the device-tree. | ||
|
||
External clocks: | ||
---------------- | ||
|
||
There are three external inputs to the clock controllers which should be | ||
defined with the following clock-output-names: | ||
- "xtal": External 52Mhz oscillator (required) | ||
- "audio_clk_in": Alternate audio reference clock (optional) | ||
- "enet_clk_in": Alternate ethernet PHY clock (optional) | ||
|
||
Core clock controller: | ||
---------------------- | ||
|
||
The core clock controller generates clocks for the CPU, RPU (WiFi + BT | ||
co-processor), audio, and several peripherals. | ||
|
||
Required properties: | ||
- compatible: Must be "img,pistachio-clk". | ||
- reg: Must contain the base address and length of the core clock controller. | ||
- #clock-cells: Must be 1. The single cell is the clock identifier. | ||
See dt-bindings/clock/pistachio-clk.h for the list of valid identifiers. | ||
- clocks: Must contain an entry for each clock in clock-names. | ||
- clock-names: Must include "xtal" (see "External clocks") and | ||
"audio_clk_in_gate", "enet_clk_in_gate" which are generated by the | ||
top-level general control. | ||
|
||
Example: | ||
clk_core: clock-controller@18144000 { | ||
compatible = "img,pistachio-clk"; | ||
reg = <0x18144000 0x800>; | ||
clocks = <&xtal>, <&cr_top EXT_CLK_AUDIO_IN>, | ||
<&cr_top EXT_CLK_ENET_IN>; | ||
clock-names = "xtal", "audio_clk_in_gate", "enet_clk_in_gate"; | ||
|
||
#clock-cells = <1>; | ||
}; | ||
|
||
Peripheral clock controller: | ||
---------------------------- | ||
|
||
The peripheral clock controller generates clocks for the DDR, ROM, and other | ||
peripherals. The peripheral system clock ("periph_sys") generated by the core | ||
clock controller is the input clock to the peripheral clock controller. | ||
|
||
Required properties: | ||
- compatible: Must be "img,pistachio-periph-clk". | ||
- reg: Must contain the base address and length of the peripheral clock | ||
controller. | ||
- #clock-cells: Must be 1. The single cell is the clock identifier. | ||
See dt-bindings/clock/pistachio-clk.h for the list of valid identifiers. | ||
- clocks: Must contain an entry for each clock in clock-names. | ||
- clock-names: Must include "periph_sys", the peripheral system clock generated | ||
by the core clock controller. | ||
|
||
Example: | ||
clk_periph: clock-controller@18144800 { | ||
compatible = "img,pistachio-clk-periph"; | ||
reg = <0x18144800 0x800>; | ||
clocks = <&clk_core CLK_PERIPH_SYS>; | ||
clock-names = "periph_sys"; | ||
|
||
#clock-cells = <1>; | ||
}; | ||
|
||
Peripheral general control: | ||
--------------------------- | ||
|
||
The peripheral general control block generates system interface clocks and | ||
resets for various peripherals. It also contains miscellaneous peripheral | ||
control registers. The system clock ("sys") generated by the peripheral clock | ||
controller is the input clock to the system clock controller. | ||
|
||
Required properties: | ||
- compatible: Must include "img,pistachio-periph-cr" and "syscon". | ||
- reg: Must contain the base address and length of the peripheral general | ||
control registers. | ||
- #clock-cells: Must be 1. The single cell is the clock identifier. | ||
See dt-bindings/clock/pistachio-clk.h for the list of valid identifiers. | ||
- clocks: Must contain an entry for each clock in clock-names. | ||
- clock-names: Must include "sys", the system clock generated by the peripheral | ||
clock controller. | ||
|
||
Example: | ||
cr_periph: syscon@18144800 { | ||
compatible = "img,pistachio-cr-periph", "syscon"; | ||
reg = <0x18148000 0x1000>; | ||
clocks = <&clock_periph PERIPH_CLK_PERIPH_SYS>; | ||
clock-names = "sys"; | ||
|
||
#clock-cells = <1>; | ||
}; | ||
|
||
Top-level general control: | ||
-------------------------- | ||
|
||
The top-level general control block contains miscellaneous control registers and | ||
gates for the external clocks "audio_clk_in" and "enet_clk_in". | ||
|
||
Required properties: | ||
- compatible: Must include "img,pistachio-cr-top" and "syscon". | ||
- reg: Must contain the base address and length of the top-level | ||
control registers. | ||
- clocks: Must contain an entry for each clock in clock-names. | ||
- clock-names: Two optional clocks, "audio_clk_in" and "enet_clk_in" (see | ||
"External clocks"). | ||
- #clock-cells: Must be 1. The single cell is the clock identifier. | ||
See dt-bindings/clock/pistachio-clk.h for the list of valid identifiers. | ||
|
||
Example: | ||
cr_top: syscon@18144800 { | ||
compatible = "img,pistachio-cr-top", "syscon"; | ||
reg = <0x18149000 0x200>; | ||
clocks = <&audio_refclk>, <&ext_enet_in>; | ||
clock-names = "audio_clk_in", "enet_clk_in"; | ||
|
||
#clock-cells = <1>; | ||
}; |
41 changes: 41 additions & 0 deletions
41
Documentation/devicetree/bindings/interrupt-controller/brcm,bcm3380-l2-intc.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,41 @@ | ||
Broadcom BCM3380-style Level 1 / Level 2 interrupt controller | ||
|
||
This interrupt controller shows up in various forms on many BCM338x/BCM63xx | ||
chipsets. It has the following properties: | ||
|
||
- outputs a single interrupt signal to its interrupt controller parent | ||
|
||
- contains one or more enable/status word pairs, which often appear at | ||
different offsets in different blocks | ||
|
||
- no atomic set/clear operations | ||
|
||
Required properties: | ||
|
||
- compatible: should be "brcm,bcm3380-l2-intc" | ||
- reg: specifies one or more enable/status pairs, in the following format: | ||
<enable_reg 0x4 status_reg 0x4>... | ||
- interrupt-controller: identifies the node as an interrupt controller | ||
- #interrupt-cells: specifies the number of cells needed to encode an interrupt | ||
source, should be 1. | ||
- interrupt-parent: specifies the phandle to the parent interrupt controller | ||
this one is cascaded from | ||
- interrupts: specifies the interrupt line in the interrupt-parent controller | ||
node, valid values depend on the type of parent interrupt controller | ||
|
||
Optional properties: | ||
|
||
- brcm,irq-can-wake: if present, this means the L2 controller can be used as a | ||
wakeup source for system suspend/resume. | ||
|
||
Example: | ||
|
||
irq0_intc: interrupt-controller@10000020 { | ||
compatible = "brcm,bcm3380-l2-intc"; | ||
reg = <0x10000024 0x4 0x1000002c 0x4>, | ||
<0x10000020 0x4 0x10000028 0x4>; | ||
interrupt-controller; | ||
#interrupt-cells = <1>; | ||
interrupt-parent = <&cpu_intc>; | ||
interrupts = <2>; | ||
}; |
52 changes: 52 additions & 0 deletions
52
Documentation/devicetree/bindings/interrupt-controller/brcm,bcm7038-l1-intc.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,52 @@ | ||
Broadcom BCM7038-style Level 1 interrupt controller | ||
|
||
This block is a first level interrupt controller that is typically connected | ||
directly to one of the HW INT lines on each CPU. Every BCM7xxx set-top chip | ||
since BCM7038 has contained this hardware. | ||
|
||
Key elements of the hardware design include: | ||
|
||
- 64, 96, 128, or 160 incoming level IRQ lines | ||
|
||
- Most onchip peripherals are wired directly to an L1 input | ||
|
||
- A separate instance of the register set for each CPU, allowing individual | ||
peripheral IRQs to be routed to any CPU | ||
|
||
- Atomic mask/unmask operations | ||
|
||
- No polarity/level/edge settings | ||
|
||
- No FIFO or priority encoder logic; software is expected to read all | ||
2-5 status words to determine which IRQs are pending | ||
|
||
Required properties: | ||
|
||
- compatible: should be "brcm,bcm7038-l1-intc" | ||
- reg: specifies the base physical address and size of the registers; | ||
the number of supported IRQs is inferred from the size argument | ||
- interrupt-controller: identifies the node as an interrupt controller | ||
- #interrupt-cells: specifies the number of cells needed to encode an interrupt | ||
source, should be 1. | ||
- interrupt-parent: specifies the phandle to the parent interrupt controller(s) | ||
this one is cascaded from | ||
- interrupts: specifies the interrupt line(s) in the interrupt-parent controller | ||
node; valid values depend on the type of parent interrupt controller | ||
|
||
If multiple reg ranges and interrupt-parent entries are present on an SMP | ||
system, the driver will allow IRQ SMP affinity to be set up through the | ||
/proc/irq/ interface. In the simplest possible configuration, only one | ||
reg range and one interrupt-parent is needed. | ||
|
||
Example: | ||
|
||
periph_intc: periph_intc@1041a400 { | ||
compatible = "brcm,bcm7038-l1-intc"; | ||
reg = <0x1041a400 0x30 0x1041a600 0x30>; | ||
|
||
interrupt-controller; | ||
#interrupt-cells = <1>; | ||
|
||
interrupt-parent = <&cpu_intc>; | ||
interrupts = <2>, <3>; | ||
}; |
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
37 changes: 0 additions & 37 deletions
37
Documentation/devicetree/bindings/mips/brcm/bcm3384-intc.txt
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
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,12 @@ | ||
* Broadcom cable/DSL/settop platforms | ||
|
||
Required properties: | ||
|
||
- compatible: "brcm,bcm3384", "brcm,bcm33843" | ||
"brcm,bcm3384-viper", "brcm,bcm33843-viper" | ||
"brcm,bcm6328", "brcm,bcm6368", | ||
"brcm,bcm7125", "brcm,bcm7346", "brcm,bcm7358", "brcm,bcm7360", | ||
"brcm,bcm7362", "brcm,bcm7420", "brcm,bcm7425" | ||
|
||
The experimental -viper variants are for running Linux on the 3384's | ||
BMIPS4355 cable modem CPU instead of the BMIPS5000 application processor. |
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,42 @@ | ||
Imagination Pistachio SoC | ||
========================= | ||
|
||
Required properties: | ||
-------------------- | ||
- compatible: Must include "img,pistachio". | ||
|
||
CPU nodes: | ||
---------- | ||
A "cpus" node is required. Required properties: | ||
- #address-cells: Must be 1. | ||
- #size-cells: Must be 0. | ||
A CPU sub-node is also required for at least CPU 0. Since the topology may | ||
be probed via CPS, it is not necessary to specify secondary CPUs. Required | ||
propertis: | ||
- device_type: Must be "cpu". | ||
- compatible: Must be "mti,interaptiv". | ||
- reg: CPU number. | ||
- clocks: Must include the CPU clock. See ../../clock/clock-bindings.txt for | ||
details on clock bindings. | ||
Example: | ||
cpus { | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
|
||
cpu0: cpu@0 { | ||
device_type = "cpu"; | ||
compatible = "mti,interaptiv"; | ||
reg = <0>; | ||
clocks = <&clk_core CLK_MIPS>; | ||
}; | ||
}; | ||
|
||
|
||
Boot protocol: | ||
-------------- | ||
In accordance with the MIPS UHI specification[1], the bootloader must pass the | ||
following arguments to the kernel: | ||
- $a0: -2. | ||
- $a1: KSEG0 address of the flattened device-tree blob. | ||
|
||
[1] http://prplfoundation.org/wiki/MIPS_documentation |
Oops, something went wrong.