Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c0222ac0 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull MIPS updates from Ralf Baechle:
 "This is an unusually large pull request for MIPS - in parts because
  lots of patches missed the 3.18 deadline but primarily because some
  folks opened the flood gates.

   - Retire the MIPS-specific phys_t with the generic phys_addr_t.
   - Improvments for the backtrace code used by oprofile.
   - Better backtraces on SMP systems.
   - Cleanups for the Octeon platform code.
   - Cleanups and fixes for the Loongson platform code.
   - Cleanups and fixes to the firmware library.
   - Switch ATH79 platform to use the firmware library.
   - Grand overhault to the SEAD3 and Malta interrupt code.
   - Move the GIC interrupt code to drivers/irqchip
   - Lots of GIC cleanups and updates to the GIC code to use modern IRQ
     infrastructures and features of the kernel.
   - OF documentation updates for the GIC bindings
   - Move GIC clocksource driver to drivers/clocksource
   - Merge GIC clocksource driver with clockevent driver.
   - Further updates to bring the GIC clocksource driver up to date.
   - R3000 TLB code cleanups
   - Improvments to the Loongson 3 platform code.
   - Convert pr_warning to pr_warn.
   - Merge a bunch of small lantiq and ralink fixes that have been
     staged/lingering inside the openwrt tree for a while.
   - Update archhelp for IP22/IP32
   - Fix a number of issues for Loongson 1B.
   - New clocksource and clockevent driver for Loongson 1B.
   - Further work on clk handling for Loongson 1B.
   - Platform work for Broadcom BMIPS.
   - Error handling cleanups for TurboChannel.
   - Fixes and optimization to the microMIPS support.
   - Option to disable the FTLB.
   - Dump more relevant information on machine check exception
   - Change binfmt to allow arch to examine PT_*PROC headers
   - Support for new style FPU register model in O32
   - VDSO randomization.
   - BCM47xx cleanups
   - BCM47xx reimplement the way the kernel accesses NVRAM information.
   - Random cleanups
   - Add support for ATH25 platforms
   - Remove pointless locking code in some PCI platforms.
   - Some improvments to EVA support
   - Minor Alchemy cleanup"

* 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (185 commits)
  MIPS: Add MFHC0 and MTHC0 instructions to uasm.
  MIPS: Cosmetic cleanups of page table headers.
  MIPS: Add CP0 macros for extended EntryLo registers
  MIPS: Remove now unused definition of phys_t.
  MIPS: Replace use of phys_t with phys_addr_t.
  MIPS: Replace MIPS-specific 64BIT_PHYS_ADDR with generic PHYS_ADDR_T_64BIT
  PCMCIA: Alchemy Don't select 64BIT_PHYS_ADDR in Kconfig.
  MIPS: lib: memset: Clean up some MIPS{EL,EB} ifdefery
  MIPS: iomap: Use __mem_{read,write}{b,w,l} for MMIO
  MIPS: <asm/types.h> fix indentation.
  MAINTAINERS: Add entry for BMIPS multiplatform kernel
  MIPS: Enable VDSO randomization
  MIPS: Remove a temporary hack for debugging cache flushes in SMTC configuration
  MIPS: Remove declaration of obsolete arch_init_clk_ops()
  MIPS: atomic.h: Reformat to fit in 79 columns
  MIPS: Apply `.insn' to fixup labels throughout
  MIPS: Fix microMIPS LL/SC immediate offsets
  MIPS: Kconfig: Only allow 32-bit microMIPS builds
  MIPS: signal.c: Fix an invalid cast in ISA mode bit handling
  MIPS: mm: Only build one microassembler that is suitable
  ...
parents 140cd7fb e2965cd0
Loading
Loading
Loading
Loading
+55 −0
Original line number Diff line number Diff line
MIPS Global Interrupt Controller (GIC)

The MIPS GIC routes external interrupts to individual VPEs and IRQ pins.
It also supports local (per-processor) interrupts and software-generated
interrupts which can be used as IPIs.  The GIC also includes a free-running
global timer, per-CPU count/compare timers, and a watchdog.

Required properties:
- compatible : Should be "mti,gic".
- interrupt-controller : Identifies the node as an interrupt controller
- #interrupt-cells : Specifies the number of cells needed to encode an
  interrupt specifier.  Should be 3.
  - The first cell is the type of interrupt, local or shared.
    See <include/dt-bindings/interrupt-controller/mips-gic.h>.
  - The second cell is the GIC interrupt number.
  - The third cell encodes the interrupt flags.
    See <include/dt-bindings/interrupt-controller/irq.h> for a list of valid
    flags.

Optional properties:
- reg : Base address and length of the GIC registers.  If not present,
  the base address reported by the hardware GCR_GIC_BASE will be used.
- mti,reserved-cpu-vectors : Specifies the list of CPU interrupt vectors
  to which the GIC may not route interrupts.  Valid values are 2 - 7.
  This property is ignored if the CPU is started in EIC mode.

Required properties for timer sub-node:
- compatible : Should be "mti,gic-timer".
- interrupts : Interrupt for the GIC local timer.
- clock-frequency : Clock frequency at which the GIC timers operate.

Example:

	gic: interrupt-controller@1bdc0000 {
		compatible = "mti,gic";
		reg = <0x1bdc0000 0x20000>;

		interrupt-controller;
		#interrupt-cells = <3>;

		mti,reserved-cpu-vectors = <7>;

		timer {
			compatible = "mti,gic-timer";
			interrupts = <GIC_LOCAL 1 IRQ_TYPE_NONE>;
			clock-frequency = <50000000>;
		};
	};

	uart@18101400 {
		...
		interrupt-parent = <&gic>;
		interrupts = <GIC_SHARED 24 IRQ_TYPE_LEVEL_HIGH>;
		...
	};
+37 −0
Original line number Diff line number Diff line
* Interrupt Controller

Properties:
- compatible: "brcm,bcm3384-intc"

  Compatibility with BCM3384 and possibly other BCM33xx/BCM63xx SoCs.

- reg: Address/length pairs for each mask/status register set.  Length must
  be 8.  If multiple register sets are specified, the first set will
  handle IRQ offsets 0..31, the second set 32..63, and so on.

- interrupt-controller: This is an interrupt controller.

- #interrupt-cells: Must be <1>.  Just a simple IRQ offset; no level/edge
  or polarity configuration is possible with this controller.

- interrupt-parent: This controller is cascaded from a MIPS CPU HW IRQ, or
  from another INTC.

- interrupts: The IRQ on the parent controller.

Example:
	periph_intc: periph_intc@14e00038 {
		compatible = "brcm,bcm3384-intc";

		/*
		 * IRQs 0..31:  mask reg 0x14e00038, status reg 0x14e0003c
		 * IRQs 32..63: mask reg 0x14e00340, status reg 0x14e00344
		 */
		reg = <0x14e00038 0x8 0x14e00340 0x8>;

		interrupt-controller;
		#interrupt-cells = <1>;

		interrupt-parent = <&cpu_intc>;
		interrupts = <4>;
	};
+8 −0
Original line number Diff line number Diff line
* Broadcom MIPS (BMIPS) CPUs

Required properties:
- compatible: "brcm,bmips3300", "brcm,bmips4350", "brcm,bmips4380",
  "brcm,bmips5000"

- mips-hpt-frequency: This is common to all CPUs in the system so it lives
  under the "cpus" node.
+11 −0
Original line number Diff line number Diff line
* Broadcom cable/DSL platforms

SoCs:

Required properties:
- compatible: "brcm,bcm3384", "brcm,bcm33843"

Boards:

Required properties:
- compatible: "brcm,bcm93384wvg"
+11 −0
Original line number Diff line number Diff line
* Broadcom USB controllers

Required properties:
- compatible: "brcm,bcm3384-ohci", "brcm,bcm3384-ehci"

  These currently use the generic-ohci and generic-ehci drivers.  On some
  systems, special handling may be needed in the following cases:

  - Restoring state after systemwide power save modes
  - Sharing PHYs with the USBD (UDC) hardware
  - Figuring out which controllers are disabled on ASIC bondout variants
Loading