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

Commit 682e3efa authored by Arnd Bergmann's avatar Arnd Bergmann
Browse files

Merge tag 'amlogic-soc' of...

Merge tag 'amlogic-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic into next/soc

Pull "Amlogic SoC updates for v4.15" from Kevin Hilman:

- add SMP support to Meson8/8b

* tag 'amlogic-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic:
  ARM: meson: enable MESON_IRQ_GPIO in Kconfig for meson8b
  ARM: meson: Add SMP bringup code for Meson8 and Meson8b
  ARM: smp_scu: allow the platform code to read the SCU CPU status
  ARM: smp_scu: add a helper for powering on a specific CPU
  dt-bindings: Amlogic: Add Meson8 and Meson8b SMP related documentation
parents 16511ee2 dea54268
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
Amlogic Meson8 and Meson8b power-management-unit:
-------------------------------------------------

The pmu is used to turn off and on different power domains of the SoCs
This includes the power to the CPU cores.

Required node properties:
- compatible value : depending on the SoC this should be one of:
			"amlogic,meson8-pmu"
			"amlogic,meson8b-pmu"
- reg : physical base address and the size of the registers window

Example:

	pmu@c81000e4 {
		compatible = "amlogic,meson8b-pmu", "syscon";
		reg = <0xc81000e0 0x18>;
	};
+32 −0
Original line number Diff line number Diff line
Amlogic Meson8 and Meson8b SRAM for smp bringup:
------------------------------------------------

Amlogic's SMP-capable SoCs use part of the sram for the bringup of the cores.
Once the core gets powered up it executes the code that is residing at a
specific location.

Therefore a reserved section sub-node has to be added to the mmio-sram
declaration.

Required sub-node properties:
- compatible : depending on the SoC this should be one of:
		"amlogic,meson8-smp-sram"
		"amlogic,meson8b-smp-sram"

The rest of the properties should follow the generic mmio-sram discription
found in ../../misc/sram.txt

Example:

	sram: sram@d9000000 {
		compatible = "mmio-sram";
		reg = <0xd9000000 0x20000>;
		#address-cells = <1>;
		#size-cells = <1>;
		ranges = <0 0xd9000000 0x20000>;

		smp-sram@1ff80 {
			compatible = "amlogic,meson8b-smp-sram";
			reg = <0x1ff80 0x8>;
		};
	};
+2 −0
Original line number Diff line number Diff line
@@ -197,6 +197,8 @@ described below.
			    "actions,s500-smp"
			    "allwinner,sun6i-a31"
			    "allwinner,sun8i-a23"
			    "amlogic,meson8-smp"
			    "amlogic,meson8b-smp"
			    "arm,realview-smp"
			    "brcm,bcm11351-cpu-method"
			    "brcm,bcm23550"
+1 −0
Original line number Diff line number Diff line
@@ -147,6 +147,7 @@ textofs-$(CONFIG_SA1111) := 0x00208000
endif
textofs-$(CONFIG_ARCH_MSM8X60) := 0x00208000
textofs-$(CONFIG_ARCH_MSM8960) := 0x00208000
textofs-$(CONFIG_ARCH_MESON) := 0x00208000
textofs-$(CONFIG_ARCH_AXXIA) := 0x00308000

# Machine directory name.  This list is sorted alphanumerically
+12 −0
Original line number Diff line number Diff line
@@ -27,6 +27,8 @@ static inline unsigned long scu_a9_get_base(void)
#ifdef CONFIG_HAVE_ARM_SCU
unsigned int scu_get_core_count(void __iomem *);
int scu_power_mode(void __iomem *, unsigned int);
int scu_cpu_power_enable(void __iomem *, unsigned int);
int scu_get_cpu_power_mode(void __iomem *scu_base, unsigned int logical_cpu);
#else
static inline unsigned int scu_get_core_count(void __iomem *scu_base)
{
@@ -36,6 +38,16 @@ static inline int scu_power_mode(void __iomem *scu_base, unsigned int mode)
{
	return -EINVAL;
}
static inline int scu_cpu_power_enable(void __iomem *scu_base,
				       unsigned int mode)
{
	return -EINVAL;
}
static inline int scu_get_cpu_power_mode(void __iomem *scu_base,
					 unsigned int logical_cpu)
{
	return -EINVAL;
}
#endif

#if defined(CONFIG_SMP) && defined(CONFIG_HAVE_ARM_SCU)
Loading