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

Commit cf899680 authored by Rafael J. Wysocki's avatar Rafael J. Wysocki
Browse files

Merge branch 'pm-shmobile'

* pm-shmobile:
  ARM: shmobile: Add A4S cpuidle state on sh7372
  ARM: shmobile: Make sh7372 cpuidle handling more straightforward
  ARM: shmobile: Move definition of shmobile_init_late() to header
  ARM: shmobile: Remove the console check from sh7372_enter_suspend()
  ARM: shmobile: Rework adding devices to PM domains on AP4EVB
  ARM: shmobile: Rework adding devices to PM domains on Mackerel
  ARM: shmobile: Specify device latencies for Mackerel devices directly
  ARM: shmobile: Specify device latencies for SH7372 devices directly
  ARM: shmobile: Allow device latencies to be specified directly
  ARM: shmobile: Set PM domain on/off latencies directly
  ARM: shmobile: Make rmobile_init_pm_domain() static
  ARM: shmobile: Move r8a7779's PM domain objects to a table
  ARM: shmobile: Move r8a7740's PM domain objects to a table
  ARM: shmobile: Move sh7372's PM domain objects to a table
  ARM: shmobile: Do not access sh7372 A4S domain internals directly
  ARM: shmobile: Add routine for automatic PM domains initialization
  ARM: shmobile: Use domain names when adding subdomains to power domains
  ARM: shmobile: Drop r8a7779_add_device_to_domain()
  ARM: shmobile: Use names of power domains for adding devices to them
parents d6a56ae7 caaca999
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -3,7 +3,7 @@
#

# Common objects
obj-y				:= timer.o console.o clock.o common.o
obj-y				:= timer.o console.o clock.o

# CPU objects
obj-$(CONFIG_ARCH_SH7367)	+= setup-sh7367.o clock-sh7367.o intc-sh7367.o
+12 −9
Original line number Diff line number Diff line
@@ -1229,6 +1229,15 @@ static struct i2c_board_info i2c1_devices[] = {
#define USCCR1		0xE6058144
static void __init ap4evb_init(void)
{
	struct pm_domain_device domain_devices[] = {
		{ "A4LC", &lcdc1_device, },
		{ "A4LC", &lcdc_device, },
		{ "A4MP", &fsi_device, },
		{ "A3SP", &sh_mmcif_device, },
		{ "A3SP", &sdhi0_device, },
		{ "A3SP", &sdhi1_device, },
		{ "A4R", &ceu_device, },
	};
	u32 srcr4;
	struct clk *clk;

@@ -1461,14 +1470,8 @@ static void __init ap4evb_init(void)

	platform_add_devices(ap4evb_devices, ARRAY_SIZE(ap4evb_devices));

	rmobile_add_device_to_domain(&sh7372_pd_a4lc, &lcdc1_device);
	rmobile_add_device_to_domain(&sh7372_pd_a4lc, &lcdc_device);
	rmobile_add_device_to_domain(&sh7372_pd_a4mp, &fsi_device);

	rmobile_add_device_to_domain(&sh7372_pd_a3sp, &sh_mmcif_device);
	rmobile_add_device_to_domain(&sh7372_pd_a3sp, &sdhi0_device);
	rmobile_add_device_to_domain(&sh7372_pd_a3sp, &sdhi1_device);
	rmobile_add_device_to_domain(&sh7372_pd_a4r, &ceu_device);
	rmobile_add_devices_to_domains(domain_devices,
				       ARRAY_SIZE(domain_devices));

	hdmi_init_pm_clock();
	fsi_init_pm_clock();
@@ -1483,6 +1486,6 @@ MACHINE_START(AP4EVB, "ap4evb")
	.init_irq	= sh7372_init_irq,
	.handle_irq	= shmobile_handle_irq_intc,
	.init_machine	= ap4evb_init,
	.init_late	= shmobile_init_late,
	.init_late	= sh7372_pm_init_late,
	.timer		= &shmobile_timer,
MACHINE_END
+3 −3
Original line number Diff line number Diff line
@@ -1182,10 +1182,10 @@ static void __init eva_init(void)

	eva_clock_init();

	rmobile_add_device_to_domain(&r8a7740_pd_a4lc, &lcdc0_device);
	rmobile_add_device_to_domain(&r8a7740_pd_a4lc, &hdmi_lcdc_device);
	rmobile_add_device_to_domain("A4LC", &lcdc0_device);
	rmobile_add_device_to_domain("A4LC", &hdmi_lcdc_device);
	if (usb)
		rmobile_add_device_to_domain(&r8a7740_pd_a3sp, usb);
		rmobile_add_device_to_domain("A3SP", usb);
}

static void __init eva_earlytimer_init(void)
+19 −15
Original line number Diff line number Diff line
@@ -1410,6 +1410,22 @@ static struct i2c_board_info i2c1_devices[] = {
#define USCCR1		0xE6058144
static void __init mackerel_init(void)
{
	struct pm_domain_device domain_devices[] = {
		{ "A4LC", &lcdc_device, },
		{ "A4LC", &hdmi_lcdc_device, },
		{ "A4LC", &meram_device, },
		{ "A4MP", &fsi_device, },
		{ "A3SP", &usbhs0_device, },
		{ "A3SP", &usbhs1_device, },
		{ "A3SP", &nand_flash_device, },
		{ "A3SP", &sh_mmcif_device, },
		{ "A3SP", &sdhi0_device, },
#if !defined(CONFIG_MMC_SH_MMCIF) && !defined(CONFIG_MMC_SH_MMCIF_MODULE)
		{ "A3SP", &sdhi1_device, },
#endif
		{ "A3SP", &sdhi2_device, },
		{ "A4R", &ceu_device, },
	};
	u32 srcr4;
	struct clk *clk;

@@ -1624,20 +1640,8 @@ static void __init mackerel_init(void)

	platform_add_devices(mackerel_devices, ARRAY_SIZE(mackerel_devices));

	rmobile_add_device_to_domain(&sh7372_pd_a4lc, &lcdc_device);
	rmobile_add_device_to_domain(&sh7372_pd_a4lc, &hdmi_lcdc_device);
	rmobile_add_device_to_domain(&sh7372_pd_a4lc, &meram_device);
	rmobile_add_device_to_domain(&sh7372_pd_a4mp, &fsi_device);
	rmobile_add_device_to_domain(&sh7372_pd_a3sp, &usbhs0_device);
	rmobile_add_device_to_domain(&sh7372_pd_a3sp, &usbhs1_device);
	rmobile_add_device_to_domain(&sh7372_pd_a3sp, &nand_flash_device);
	rmobile_add_device_to_domain(&sh7372_pd_a3sp, &sh_mmcif_device);
	rmobile_add_device_to_domain(&sh7372_pd_a3sp, &sdhi0_device);
#if !defined(CONFIG_MMC_SH_MMCIF) && !defined(CONFIG_MMC_SH_MMCIF_MODULE)
	rmobile_add_device_to_domain(&sh7372_pd_a3sp, &sdhi1_device);
#endif
	rmobile_add_device_to_domain(&sh7372_pd_a3sp, &sdhi2_device);
	rmobile_add_device_to_domain(&sh7372_pd_a4r, &ceu_device);
	rmobile_add_devices_to_domains(domain_devices,
				       ARRAY_SIZE(domain_devices));

	hdmi_init_pm_clock();
	sh7372_pm_init();
@@ -1651,6 +1655,6 @@ MACHINE_START(MACKEREL, "mackerel")
	.init_irq	= sh7372_init_irq,
	.handle_irq	= shmobile_handle_irq_intc,
	.init_machine	= mackerel_init,
	.init_late	= shmobile_init_late,
	.init_late	= sh7372_pm_init_late,
	.timer		= &shmobile_timer,
MACHINE_END

arch/arm/mach-shmobile/common.c

deleted100644 → 0
+0 −24
Original line number Diff line number Diff line
/*
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; version 2 of the License.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 *
 */
#include <linux/kernel.h>
#include <linux/init.h>
#include <mach/common.h>

void __init shmobile_init_late(void)
{
	shmobile_suspend_init();
	shmobile_cpuidle_init();
}
Loading