Skip to content
This repository was archived by the owner on Oct 5, 2018. It is now read-only.

Commit c8a160c

Browse files
committed
Merge pull request #106 from Leo-Yan/hikey_enable_mcu_lpm_4.0_0805
Hikey: Upgrade new mcu and lpm for 4.1rc4 (0805)
2 parents 13b2999 + 0c2d92e commit c8a160c

65 files changed

Lines changed: 2114 additions & 1428 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Documentation/devicetree/bindings/arm/psci.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,10 @@ Main node required properties:
3131
support, but are permitted to be present for compatibility with
3232
existing software when "arm,psci" is later in the compatible list.
3333

34+
* "arm,psci-1.0" : for implementations complying to PSCI 1.0. PSCI 1.0 is
35+
backward compatible with PSCI 0.2 with minor specification updates,
36+
as defined in the PSCI specification[2].
37+
3438
- method : The method of calling the PSCI firmware. Permitted
3539
values are:
3640

@@ -100,3 +104,5 @@ Case 3: PSCI v0.2 and PSCI v0.1.
100104

101105
[1] Kernel documentation - ARM idle states bindings
102106
Documentation/devicetree/bindings/arm/idle-states.txt
107+
[2] Power State Coordination Interface (PSCI) specification
108+
http://infocenter.arm.com/help/topic/com.arm.doc.den0022c/DEN0022C_Power_State_Coordination_Interface.pdf
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
Hisilicon Mailbox Driver
2+
========================
3+
4+
The Hisilicon mailbox supports up to 32 channels. Each channel
5+
is unidirectional with a maximum message size of 8 words. I/O is
6+
performed using register access (there is no DMA) and the cell
7+
raises an interrupt when messages are received.
8+
9+
Mailbox Device Node:
10+
====================
11+
12+
Required properties:
13+
--------------------
14+
- compatible: Shall be "hisilicon,hi6220-mbox"
15+
- reg: Contains the mailbox register address range (base
16+
address and length); the first item is for IPC
17+
registers, the second item is shared buffer for
18+
slots.
19+
- #mbox-cells Common mailbox binding property to identify the number
20+
of cells required for the mailbox specifier. Should be 1.
21+
- interrupts: Contains the interrupt information for the mailbox
22+
device. The format is dependent on which interrupt
23+
controller the SoCs use.
24+
25+
Example:
26+
--------
27+
28+
mailbox: mailbox@F7510000 {
29+
#mbox-cells = <1>;
30+
compatible = "hisilicon,hi6220-mbox";
31+
reg = <0x0 0xF7510000 0x0 0x1000>, /* IPC_S */
32+
<0x0 0x06DFF800 0x0 0x0800>; /* Mailbox */
33+
interrupt-parent = <&gic>;
34+
interrupts = <0 94 4>;
35+
};
36+
37+
38+
Mailbox client
39+
===============
40+
41+
"mboxes" and the optional "mbox-names" (please see
42+
Documentation/devicetree/bindings/mailbox/mailbox.txt for details). Each value
43+
of the mboxes property should contain a phandle to the mailbox controller
44+
device node and second argument is the channel index. It must be 0 (hardware
45+
support only one channel). The equivalent "mbox-names" property value can be
46+
used to give a name to the communication channel to be used by the client user.
47+
48+
Example:
49+
--------
50+
51+
stub_clock: stub_clock {
52+
compatible = "hisilicon,hi6220-stub-clk";
53+
hisilicon,hi6220-clk-sram = <&sram>;
54+
#clock-cells = <1>;
55+
mbox-names = "mbox-tx";
56+
mboxes = <&mailbox 1>;
57+
};

MAINTAINERS

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7789,6 +7789,15 @@ S: Maintained
77897789
F: include/linux/power_supply.h
77907790
F: drivers/power/
77917791

7792+
POWER STATE COORDINATION INTERFACE (PSCI)
7793+
M: Mark Rutland <mark.rutland@arm.com>
7794+
M: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
7795+
L: linux-arm-kernel@lists.infradead.org
7796+
S: Maintained
7797+
F: drivers/firmware/psci.c
7798+
F: include/linux/psci.h
7799+
F: include/uapi/linux/psci.h
7800+
77927801
PNP SUPPORT
77937802
M: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
77947803
S: Maintained

arch/arm/Kconfig

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -975,11 +975,6 @@ config PLAT_PXA
975975
config PLAT_VERSATILE
976976
bool
977977

978-
config ARM_TIMER_SP804
979-
bool
980-
select CLKSRC_MMIO
981-
select CLKSRC_OF if OF
982-
983978
source "arch/arm/firmware/Kconfig"
984979

985980
source arch/arm/mm/Kconfig
@@ -1465,6 +1460,7 @@ config HOTPLUG_CPU
14651460
config ARM_PSCI
14661461
bool "Support for the ARM Power State Coordination Interface (PSCI)"
14671462
depends on CPU_V7
1463+
select ARM_PSCI_FW
14681464
help
14691465
Say Y here if you want Linux to communicate with system firmware
14701466
implementing the PSCI specification for CPU-centric power

arch/arm/common/Makefile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ obj-$(CONFIG_SHARP_LOCOMO) += locomo.o
1111
obj-$(CONFIG_SHARP_PARAM) += sharpsl_param.o
1212
obj-$(CONFIG_SHARP_SCOOP) += scoop.o
1313
obj-$(CONFIG_PCI_HOST_ITE8152) += it8152.o
14-
obj-$(CONFIG_ARM_TIMER_SP804) += timer-sp.o
1514
obj-$(CONFIG_MCPM) += mcpm_head.o mcpm_entry.o mcpm_platsmp.o vlock.o
1615
CFLAGS_REMOVE_mcpm_entry.o = -pg
1716
AFLAGS_mcpm_head.o := -march=armv7-a

arch/arm/include/asm/psci.h

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -14,34 +14,11 @@
1414
#ifndef __ASM_ARM_PSCI_H
1515
#define __ASM_ARM_PSCI_H
1616

17-
#define PSCI_POWER_STATE_TYPE_STANDBY 0
18-
#define PSCI_POWER_STATE_TYPE_POWER_DOWN 1
19-
20-
struct psci_power_state {
21-
u16 id;
22-
u8 type;
23-
u8 affinity_level;
24-
};
25-
26-
struct psci_operations {
27-
int (*cpu_suspend)(struct psci_power_state state,
28-
unsigned long entry_point);
29-
int (*cpu_off)(struct psci_power_state state);
30-
int (*cpu_on)(unsigned long cpuid, unsigned long entry_point);
31-
int (*migrate)(unsigned long cpuid);
32-
int (*affinity_info)(unsigned long target_affinity,
33-
unsigned long lowest_affinity_level);
34-
int (*migrate_info_type)(void);
35-
};
36-
37-
extern struct psci_operations psci_ops;
3817
extern struct smp_operations psci_smp_ops;
3918

4019
#ifdef CONFIG_ARM_PSCI
41-
int psci_init(void);
4220
bool psci_smp_available(void);
4321
#else
44-
static inline int psci_init(void) { return 0; }
4522
static inline bool psci_smp_available(void) { return false; }
4623
#endif
4724

arch/arm/kernel/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
8686

8787
obj-$(CONFIG_ARM_VIRT_EXT) += hyp-stub.o
8888
ifeq ($(CONFIG_ARM_PSCI),y)
89-
obj-y += psci.o psci-call.o
89+
obj-y += psci-call.o
9090
obj-$(CONFIG_SMP) += psci_smp.o
9191
endif
9292

0 commit comments

Comments
 (0)