Merge tag 'soc-arm-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
Pull SoC ARM platform updates from Arnd Bergmann: "Most of these updates are for removing dead code on the Samsung S3C, NXP i.MX, TI OMAP and TI DaVinci platforms, though this appears to be a coincidence. There are also cleanups for the Marvell Orion family and the Arm integrator series and a Kconfig change for Broadcom" * tag 'soc-arm-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: ARM: dove: Drop a write-only variable ARM: orion5x: Switch to new sys-off handler API ARM: mvebu: Warn about memory chunks too small for DDR training ARM: imx: Annotate imx7d_enet_init() as __init ARM: OMAP1: Remove unused declarations in arch/arm/mach-omap1/pm.h ARM: s3c: remove unused s3c2410_cpu_suspend() declaration ARM: s3c: remove unused declarations for s3c6400 ARM: s3c: Remove unused s3c_init_uart_irqs() declaration ARM: davinci: remove unused cpuidle code ARM: davinci: remove unused davinci_init_ide() declaration ARM: davinci: remove unused davinci_cfg_reg_list() declaration ARM: mach-imx: imx6sx: Remove Ethernet refclock setting MAINTAINERS: Add entry for Samsung Exynos850 SoC ARM: bcm: Select ARM_GIC_V3 for ARCH_BRCMSTB ARM: omap2: Switch to use kmemdup_array() ARM: omap1: Remove unused struct 'dma_link_info' ARM: s3c: Drop explicit initialization of struct i2c_device_id::driver_data to 0
This commit is contained in:
+10
@@ -20243,6 +20243,16 @@ B: mailto:linux-samsung-soc@vger.kernel.org
|
|||||||
F: Documentation/devicetree/bindings/sound/samsung*
|
F: Documentation/devicetree/bindings/sound/samsung*
|
||||||
F: sound/soc/samsung/
|
F: sound/soc/samsung/
|
||||||
|
|
||||||
|
SAMSUNG EXYNOS850 SoC SUPPORT
|
||||||
|
M: Sam Protsenko <semen.protsenko@linaro.org>
|
||||||
|
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||||
|
L: linux-samsung-soc@vger.kernel.org
|
||||||
|
S: Maintained
|
||||||
|
F: Documentation/devicetree/bindings/clock/samsung,exynos850-clock.yaml
|
||||||
|
F: arch/arm64/boot/dts/exynos/exynos850*
|
||||||
|
F: drivers/clk/samsung/clk-exynos850.c
|
||||||
|
F: include/dt-bindings/clock/exynos850.h
|
||||||
|
|
||||||
SAMSUNG EXYNOS PSEUDO RANDOM NUMBER GENERATOR (RNG) DRIVER
|
SAMSUNG EXYNOS PSEUDO RANDOM NUMBER GENERATOR (RNG) DRIVER
|
||||||
M: Krzysztof Kozlowski <krzk@kernel.org>
|
M: Krzysztof Kozlowski <krzk@kernel.org>
|
||||||
L: linux-crypto@vger.kernel.org
|
L: linux-crypto@vger.kernel.org
|
||||||
|
|||||||
@@ -185,6 +185,7 @@ config ARCH_BRCMSTB
|
|||||||
select ARCH_HAS_RESET_CONTROLLER
|
select ARCH_HAS_RESET_CONTROLLER
|
||||||
select ARM_AMBA
|
select ARM_AMBA
|
||||||
select ARM_GIC
|
select ARM_GIC
|
||||||
|
select ARM_GIC_V3
|
||||||
select ARM_ERRATA_798181 if SMP
|
select ARM_ERRATA_798181 if SMP
|
||||||
select HAVE_ARM_ARCH_TIMER
|
select HAVE_ARM_ARCH_TIMER
|
||||||
select ZONE_DMA if ARM_LPAE
|
select ZONE_DMA if ARM_LPAE
|
||||||
|
|||||||
@@ -16,7 +16,6 @@ obj-$(CONFIG_ARCH_DAVINCI_DA850) += da850.o pdata-quirks.o
|
|||||||
obj-y += da8xx-dt.o
|
obj-y += da8xx-dt.o
|
||||||
|
|
||||||
# Power Management
|
# Power Management
|
||||||
obj-$(CONFIG_CPU_IDLE) += cpuidle.o
|
|
||||||
obj-$(CONFIG_HAVE_CLK) += pm_domain.o
|
obj-$(CONFIG_HAVE_CLK) += pm_domain.o
|
||||||
ifeq ($(CONFIG_SUSPEND),y)
|
ifeq ($(CONFIG_SUSPEND),y)
|
||||||
obj-$(CONFIG_ARCH_DAVINCI_DA850) += pm.o sleep.o
|
obj-$(CONFIG_ARCH_DAVINCI_DA850) += pm.o sleep.o
|
||||||
|
|||||||
@@ -52,7 +52,6 @@ struct davinci_soc_info {
|
|||||||
extern struct davinci_soc_info davinci_soc_info;
|
extern struct davinci_soc_info davinci_soc_info;
|
||||||
|
|
||||||
extern void davinci_common_init(const struct davinci_soc_info *soc_info);
|
extern void davinci_common_init(const struct davinci_soc_info *soc_info);
|
||||||
extern void davinci_init_ide(void);
|
|
||||||
void davinci_init_late(void);
|
void davinci_init_late(void);
|
||||||
|
|
||||||
#ifdef CONFIG_SUSPEND
|
#ifdef CONFIG_SUSPEND
|
||||||
|
|||||||
@@ -1,99 +0,0 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0-only
|
|
||||||
/*
|
|
||||||
* CPU idle for DaVinci SoCs
|
|
||||||
*
|
|
||||||
* Copyright (C) 2009 Texas Instruments Incorporated. https://www.ti.com/
|
|
||||||
*
|
|
||||||
* Derived from Marvell Kirkwood CPU idle code
|
|
||||||
* (arch/arm/mach-kirkwood/cpuidle.c)
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <linux/kernel.h>
|
|
||||||
#include <linux/init.h>
|
|
||||||
#include <linux/platform_device.h>
|
|
||||||
#include <linux/cpuidle.h>
|
|
||||||
#include <linux/io.h>
|
|
||||||
#include <linux/export.h>
|
|
||||||
#include <asm/cpuidle.h>
|
|
||||||
|
|
||||||
#include "cpuidle.h"
|
|
||||||
#include "ddr2.h"
|
|
||||||
|
|
||||||
#define DAVINCI_CPUIDLE_MAX_STATES 2
|
|
||||||
|
|
||||||
static void __iomem *ddr2_reg_base;
|
|
||||||
static bool ddr2_pdown;
|
|
||||||
|
|
||||||
static void davinci_save_ddr_power(int enter, bool pdown)
|
|
||||||
{
|
|
||||||
u32 val;
|
|
||||||
|
|
||||||
val = __raw_readl(ddr2_reg_base + DDR2_SDRCR_OFFSET);
|
|
||||||
|
|
||||||
if (enter) {
|
|
||||||
if (pdown)
|
|
||||||
val |= DDR2_SRPD_BIT;
|
|
||||||
else
|
|
||||||
val &= ~DDR2_SRPD_BIT;
|
|
||||||
val |= DDR2_LPMODEN_BIT;
|
|
||||||
} else {
|
|
||||||
val &= ~(DDR2_SRPD_BIT | DDR2_LPMODEN_BIT);
|
|
||||||
}
|
|
||||||
|
|
||||||
__raw_writel(val, ddr2_reg_base + DDR2_SDRCR_OFFSET);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Actual code that puts the SoC in different idle states */
|
|
||||||
static __cpuidle int davinci_enter_idle(struct cpuidle_device *dev,
|
|
||||||
struct cpuidle_driver *drv, int index)
|
|
||||||
{
|
|
||||||
davinci_save_ddr_power(1, ddr2_pdown);
|
|
||||||
cpu_do_idle();
|
|
||||||
davinci_save_ddr_power(0, ddr2_pdown);
|
|
||||||
|
|
||||||
return index;
|
|
||||||
}
|
|
||||||
|
|
||||||
static struct cpuidle_driver davinci_idle_driver = {
|
|
||||||
.name = "cpuidle-davinci",
|
|
||||||
.owner = THIS_MODULE,
|
|
||||||
.states[0] = ARM_CPUIDLE_WFI_STATE,
|
|
||||||
.states[1] = {
|
|
||||||
.enter = davinci_enter_idle,
|
|
||||||
.exit_latency = 10,
|
|
||||||
.target_residency = 10000,
|
|
||||||
.name = "DDR SR",
|
|
||||||
.desc = "WFI and DDR Self Refresh",
|
|
||||||
},
|
|
||||||
.state_count = DAVINCI_CPUIDLE_MAX_STATES,
|
|
||||||
};
|
|
||||||
|
|
||||||
static int __init davinci_cpuidle_probe(struct platform_device *pdev)
|
|
||||||
{
|
|
||||||
struct davinci_cpuidle_config *pdata = pdev->dev.platform_data;
|
|
||||||
|
|
||||||
if (!pdata) {
|
|
||||||
dev_err(&pdev->dev, "cannot get platform data\n");
|
|
||||||
return -ENOENT;
|
|
||||||
}
|
|
||||||
|
|
||||||
ddr2_reg_base = pdata->ddr2_ctlr_base;
|
|
||||||
|
|
||||||
ddr2_pdown = pdata->ddr2_pdown;
|
|
||||||
|
|
||||||
return cpuidle_register(&davinci_idle_driver, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
static struct platform_driver davinci_cpuidle_driver = {
|
|
||||||
.driver = {
|
|
||||||
.name = "cpuidle-davinci",
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
static int __init davinci_cpuidle_init(void)
|
|
||||||
{
|
|
||||||
return platform_driver_probe(&davinci_cpuidle_driver,
|
|
||||||
davinci_cpuidle_probe);
|
|
||||||
}
|
|
||||||
device_initcall(davinci_cpuidle_init);
|
|
||||||
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
||||||
/*
|
|
||||||
* TI DaVinci cpuidle platform support
|
|
||||||
*
|
|
||||||
* 2009 (C) Texas Instruments, Inc. https://www.ti.com/
|
|
||||||
*/
|
|
||||||
#ifndef _MACH_DAVINCI_CPUIDLE_H
|
|
||||||
#define _MACH_DAVINCI_CPUIDLE_H
|
|
||||||
|
|
||||||
struct davinci_cpuidle_config {
|
|
||||||
u32 ddr2_pdown;
|
|
||||||
void __iomem *ddr2_ctlr_base;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -21,7 +21,6 @@
|
|||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "cputype.h"
|
#include "cputype.h"
|
||||||
#include "da8xx.h"
|
#include "da8xx.h"
|
||||||
#include "cpuidle.h"
|
|
||||||
#include "irqs.h"
|
#include "irqs.h"
|
||||||
#include "sram.h"
|
#include "sram.h"
|
||||||
|
|
||||||
|
|||||||
@@ -654,14 +654,9 @@ enum davinci_da850_index {
|
|||||||
#ifdef CONFIG_DAVINCI_MUX
|
#ifdef CONFIG_DAVINCI_MUX
|
||||||
/* setup pin muxing */
|
/* setup pin muxing */
|
||||||
extern int davinci_cfg_reg(unsigned long reg_cfg);
|
extern int davinci_cfg_reg(unsigned long reg_cfg);
|
||||||
extern int davinci_cfg_reg_list(const short pins[]);
|
|
||||||
#else
|
#else
|
||||||
/* boot loader does it all (no warnings from CONFIG_DAVINCI_MUX_WARNINGS) */
|
/* boot loader does it all (no warnings from CONFIG_DAVINCI_MUX_WARNINGS) */
|
||||||
static inline int davinci_cfg_reg(unsigned long reg_cfg) { return 0; }
|
static inline int davinci_cfg_reg(unsigned long reg_cfg) { return 0; }
|
||||||
static inline int davinci_cfg_reg_list(const short pins[])
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ static void __init dove_clk_init(void)
|
|||||||
{
|
{
|
||||||
struct clk *usb0, *usb1, *sata, *pex0, *pex1, *sdio0, *sdio1;
|
struct clk *usb0, *usb1, *sata, *pex0, *pex1, *sdio0, *sdio1;
|
||||||
struct clk *nand, *camera, *i2s0, *i2s1, *crypto, *ac97, *pdma;
|
struct clk *nand, *camera, *i2s0, *i2s1, *crypto, *ac97, *pdma;
|
||||||
struct clk *xor0, *xor1, *ge, *gephy;
|
struct clk *xor0, *xor1, *ge;
|
||||||
|
|
||||||
tclk = clk_register_fixed_rate(NULL, "tclk", NULL, 0, dove_tclk);
|
tclk = clk_register_fixed_rate(NULL, "tclk", NULL, 0, dove_tclk);
|
||||||
|
|
||||||
@@ -102,7 +102,7 @@ static void __init dove_clk_init(void)
|
|||||||
pdma = dove_register_gate("pdma", "tclk", CLOCK_GATING_BIT_PDMA);
|
pdma = dove_register_gate("pdma", "tclk", CLOCK_GATING_BIT_PDMA);
|
||||||
xor0 = dove_register_gate("xor0", "tclk", CLOCK_GATING_BIT_XOR0);
|
xor0 = dove_register_gate("xor0", "tclk", CLOCK_GATING_BIT_XOR0);
|
||||||
xor1 = dove_register_gate("xor1", "tclk", CLOCK_GATING_BIT_XOR1);
|
xor1 = dove_register_gate("xor1", "tclk", CLOCK_GATING_BIT_XOR1);
|
||||||
gephy = dove_register_gate("gephy", "tclk", CLOCK_GATING_BIT_GIGA_PHY);
|
dove_register_gate("gephy", "tclk", CLOCK_GATING_BIT_GIGA_PHY);
|
||||||
ge = dove_register_gate("ge", "gephy", CLOCK_GATING_BIT_GBE);
|
ge = dove_register_gate("ge", "gephy", CLOCK_GATING_BIT_GBE);
|
||||||
|
|
||||||
orion_clkdev_add(NULL, "orion_spi.0", tclk);
|
orion_clkdev_add(NULL, "orion_spi.0", tclk);
|
||||||
|
|||||||
@@ -7,37 +7,15 @@
|
|||||||
#include <linux/of_platform.h>
|
#include <linux/of_platform.h>
|
||||||
#include <linux/regmap.h>
|
#include <linux/regmap.h>
|
||||||
#include <linux/mfd/syscon.h>
|
#include <linux/mfd/syscon.h>
|
||||||
#include <linux/mfd/syscon/imx6q-iomuxc-gpr.h>
|
|
||||||
#include <asm/mach/arch.h>
|
#include <asm/mach/arch.h>
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "cpuidle.h"
|
#include "cpuidle.h"
|
||||||
|
|
||||||
static void __init imx6sx_enet_clk_sel(void)
|
|
||||||
{
|
|
||||||
struct regmap *gpr;
|
|
||||||
|
|
||||||
gpr = syscon_regmap_lookup_by_compatible("fsl,imx6sx-iomuxc-gpr");
|
|
||||||
if (!IS_ERR(gpr)) {
|
|
||||||
regmap_update_bits(gpr, IOMUXC_GPR1,
|
|
||||||
IMX6SX_GPR1_FEC_CLOCK_MUX_SEL_MASK, 0);
|
|
||||||
regmap_update_bits(gpr, IOMUXC_GPR1,
|
|
||||||
IMX6SX_GPR1_FEC_CLOCK_PAD_DIR_MASK, 0);
|
|
||||||
} else {
|
|
||||||
pr_err("failed to find fsl,imx6sx-iomux-gpr regmap\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void imx6sx_enet_init(void)
|
|
||||||
{
|
|
||||||
imx6sx_enet_clk_sel();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void __init imx6sx_init_machine(void)
|
static void __init imx6sx_init_machine(void)
|
||||||
{
|
{
|
||||||
of_platform_default_populate(NULL, NULL, NULL);
|
of_platform_default_populate(NULL, NULL, NULL);
|
||||||
|
|
||||||
imx6sx_enet_init();
|
|
||||||
imx_anatop_init();
|
imx_anatop_init();
|
||||||
imx6sx_pm_init();
|
imx6sx_pm_init();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ static void __init imx7d_enet_clk_sel(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void imx7d_enet_init(void)
|
static void __init imx7d_enet_init(void)
|
||||||
{
|
{
|
||||||
imx7d_enet_phy_init();
|
imx7d_enet_phy_init();
|
||||||
imx7d_enet_clk_sel();
|
imx7d_enet_clk_sel();
|
||||||
|
|||||||
@@ -86,6 +86,9 @@ static int __init mvebu_scan_mem(unsigned long node, const char *uname,
|
|||||||
base = dt_mem_next_cell(dt_root_addr_cells, ®);
|
base = dt_mem_next_cell(dt_root_addr_cells, ®);
|
||||||
size = dt_mem_next_cell(dt_root_size_cells, ®);
|
size = dt_mem_next_cell(dt_root_size_cells, ®);
|
||||||
|
|
||||||
|
if (size < MVEBU_DDR_TRAINING_AREA_SZ)
|
||||||
|
pr_warn("Too little memory to reserve for DDR training\n");
|
||||||
|
|
||||||
memblock_reserve(base, MVEBU_DDR_TRAINING_AREA_SZ);
|
memblock_reserve(base, MVEBU_DDR_TRAINING_AREA_SZ);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -59,19 +59,6 @@ static struct omap_dma_dev_attr *d;
|
|||||||
static int enable_1510_mode;
|
static int enable_1510_mode;
|
||||||
static u32 errata;
|
static u32 errata;
|
||||||
|
|
||||||
struct dma_link_info {
|
|
||||||
int *linked_dmach_q;
|
|
||||||
int no_of_lchs_linked;
|
|
||||||
|
|
||||||
int q_count;
|
|
||||||
int q_tail;
|
|
||||||
int q_head;
|
|
||||||
|
|
||||||
int chain_state;
|
|
||||||
int chain_mode;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
static int dma_lch_count;
|
static int dma_lch_count;
|
||||||
static int dma_chan_count;
|
static int dma_chan_count;
|
||||||
static int omap_dma_reserve_channels;
|
static int omap_dma_reserve_channels;
|
||||||
|
|||||||
@@ -114,13 +114,9 @@ extern void omap1_pm_suspend(void);
|
|||||||
|
|
||||||
extern void omap1510_cpu_suspend(unsigned long, unsigned long);
|
extern void omap1510_cpu_suspend(unsigned long, unsigned long);
|
||||||
extern void omap1610_cpu_suspend(unsigned long, unsigned long);
|
extern void omap1610_cpu_suspend(unsigned long, unsigned long);
|
||||||
extern void omap1510_idle_loop_suspend(void);
|
|
||||||
extern void omap1610_idle_loop_suspend(void);
|
|
||||||
|
|
||||||
extern unsigned int omap1510_cpu_suspend_sz;
|
extern unsigned int omap1510_cpu_suspend_sz;
|
||||||
extern unsigned int omap1610_cpu_suspend_sz;
|
extern unsigned int omap1610_cpu_suspend_sz;
|
||||||
extern unsigned int omap1510_idle_loop_suspend_sz;
|
|
||||||
extern unsigned int omap1610_idle_loop_suspend_sz;
|
|
||||||
|
|
||||||
#ifdef CONFIG_OMAP_SERIAL_WAKE
|
#ifdef CONFIG_OMAP_SERIAL_WAKE
|
||||||
extern void omap_serial_wake_trigger(int enable);
|
extern void omap_serial_wake_trigger(int enable);
|
||||||
|
|||||||
@@ -315,7 +315,7 @@ static struct omap_device *omap_device_alloc(struct platform_device *pdev,
|
|||||||
|
|
||||||
od->hwmods_cnt = oh_cnt;
|
od->hwmods_cnt = oh_cnt;
|
||||||
|
|
||||||
hwmods = kmemdup(ohs, sizeof(struct omap_hwmod *) * oh_cnt, GFP_KERNEL);
|
hwmods = kmemdup_array(ohs, oh_cnt, sizeof(*hwmods), GFP_KERNEL);
|
||||||
if (!hwmods)
|
if (!hwmods)
|
||||||
goto oda_exit2;
|
goto oda_exit2;
|
||||||
|
|
||||||
|
|||||||
@@ -82,5 +82,5 @@ static void mss2_power_off(void)
|
|||||||
void __init mss2_init(void)
|
void __init mss2_init(void)
|
||||||
{
|
{
|
||||||
/* register mss2 specific power-off method */
|
/* register mss2 specific power-off method */
|
||||||
pm_power_off = mss2_power_off;
|
register_platform_power_off(mss2_power_off);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -700,7 +700,7 @@ static void __init dns323_init(void)
|
|||||||
if (gpio_request(DNS323_GPIO_POWER_OFF, "POWEROFF") != 0 ||
|
if (gpio_request(DNS323_GPIO_POWER_OFF, "POWEROFF") != 0 ||
|
||||||
gpio_direction_output(DNS323_GPIO_POWER_OFF, 0) != 0)
|
gpio_direction_output(DNS323_GPIO_POWER_OFF, 0) != 0)
|
||||||
pr_err("DNS-323: failed to setup power-off GPIO\n");
|
pr_err("DNS-323: failed to setup power-off GPIO\n");
|
||||||
pm_power_off = dns323a_power_off;
|
register_platform_power_off(dns323a_power_off);
|
||||||
break;
|
break;
|
||||||
case DNS323_REV_B1:
|
case DNS323_REV_B1:
|
||||||
/* 5182 built-in SATA init */
|
/* 5182 built-in SATA init */
|
||||||
@@ -717,7 +717,7 @@ static void __init dns323_init(void)
|
|||||||
if (gpio_request(DNS323_GPIO_POWER_OFF, "POWEROFF") != 0 ||
|
if (gpio_request(DNS323_GPIO_POWER_OFF, "POWEROFF") != 0 ||
|
||||||
gpio_direction_output(DNS323_GPIO_POWER_OFF, 0) != 0)
|
gpio_direction_output(DNS323_GPIO_POWER_OFF, 0) != 0)
|
||||||
pr_err("DNS-323: failed to setup power-off GPIO\n");
|
pr_err("DNS-323: failed to setup power-off GPIO\n");
|
||||||
pm_power_off = dns323b_power_off;
|
register_platform_power_off(dns323b_power_off);
|
||||||
break;
|
break;
|
||||||
case DNS323_REV_C1:
|
case DNS323_REV_C1:
|
||||||
/* 5182 built-in SATA init */
|
/* 5182 built-in SATA init */
|
||||||
@@ -727,7 +727,7 @@ static void __init dns323_init(void)
|
|||||||
if (gpio_request(DNS323C_GPIO_POWER_OFF, "POWEROFF") != 0 ||
|
if (gpio_request(DNS323C_GPIO_POWER_OFF, "POWEROFF") != 0 ||
|
||||||
gpio_direction_output(DNS323C_GPIO_POWER_OFF, 0) != 0)
|
gpio_direction_output(DNS323C_GPIO_POWER_OFF, 0) != 0)
|
||||||
pr_err("DNS-323: failed to setup power-off GPIO\n");
|
pr_err("DNS-323: failed to setup power-off GPIO\n");
|
||||||
pm_power_off = dns323c_power_off;
|
register_platform_power_off(dns323c_power_off);
|
||||||
|
|
||||||
/* Now, -this- should theoretically be done by the sata_mv driver
|
/* Now, -this- should theoretically be done by the sata_mv driver
|
||||||
* once I figure out what's going on there. Maybe the behaviour
|
* once I figure out what's going on there. Maybe the behaviour
|
||||||
|
|||||||
@@ -373,7 +373,7 @@ static void __init kurobox_pro_init(void)
|
|||||||
i2c_register_board_info(0, &kurobox_pro_i2c_rtc, 1);
|
i2c_register_board_info(0, &kurobox_pro_i2c_rtc, 1);
|
||||||
|
|
||||||
/* register Kurobox Pro specific power-off method */
|
/* register Kurobox Pro specific power-off method */
|
||||||
pm_power_off = kurobox_pro_power_off;
|
register_platform_power_off(kurobox_pro_power_off);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_MACH_KUROBOX_PRO
|
#ifdef CONFIG_MACH_KUROBOX_PRO
|
||||||
|
|||||||
@@ -238,7 +238,7 @@ static void __init mv2120_init(void)
|
|||||||
if (gpio_request(MV2120_GPIO_POWER_OFF, "POWEROFF") != 0 ||
|
if (gpio_request(MV2120_GPIO_POWER_OFF, "POWEROFF") != 0 ||
|
||||||
gpio_direction_output(MV2120_GPIO_POWER_OFF, 1) != 0)
|
gpio_direction_output(MV2120_GPIO_POWER_OFF, 1) != 0)
|
||||||
pr_err("mv2120: failed to setup power-off GPIO\n");
|
pr_err("mv2120: failed to setup power-off GPIO\n");
|
||||||
pm_power_off = mv2120_power_off;
|
register_platform_power_off(mv2120_power_off);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Warning: HP uses a wrong mach-type (=526) in their bootloader */
|
/* Warning: HP uses a wrong mach-type (=526) in their bootloader */
|
||||||
|
|||||||
@@ -423,7 +423,7 @@ static void __init net2big_init(void)
|
|||||||
|
|
||||||
if (gpio_request(NET2BIG_GPIO_POWER_OFF, "power-off") == 0 &&
|
if (gpio_request(NET2BIG_GPIO_POWER_OFF, "power-off") == 0 &&
|
||||||
gpio_direction_output(NET2BIG_GPIO_POWER_OFF, 0) == 0)
|
gpio_direction_output(NET2BIG_GPIO_POWER_OFF, 0) == 0)
|
||||||
pm_power_off = net2big_power_off;
|
register_platform_power_off(net2big_power_off);
|
||||||
else
|
else
|
||||||
pr_err("net2big: failed to configure power-off GPIO\n");
|
pr_err("net2big: failed to configure power-off GPIO\n");
|
||||||
|
|
||||||
|
|||||||
@@ -349,7 +349,7 @@ static void __init tsp2_init(void)
|
|||||||
i2c_register_board_info(0, &tsp2_i2c_rtc, 1);
|
i2c_register_board_info(0, &tsp2_i2c_rtc, 1);
|
||||||
|
|
||||||
/* register Terastation Pro II specific power-off method */
|
/* register Terastation Pro II specific power-off method */
|
||||||
pm_power_off = tsp2_power_off;
|
register_platform_power_off(tsp2_power_off);
|
||||||
}
|
}
|
||||||
|
|
||||||
MACHINE_START(TERASTATION_PRO2, "Buffalo Terastation Pro II/Live")
|
MACHINE_START(TERASTATION_PRO2, "Buffalo Terastation Pro II/Live")
|
||||||
|
|||||||
@@ -314,7 +314,7 @@ static void __init qnap_ts209_init(void)
|
|||||||
i2c_register_board_info(0, &qnap_ts209_i2c_rtc, 1);
|
i2c_register_board_info(0, &qnap_ts209_i2c_rtc, 1);
|
||||||
|
|
||||||
/* register tsx09 specific power-off method */
|
/* register tsx09 specific power-off method */
|
||||||
pm_power_off = qnap_tsx09_power_off;
|
register_platform_power_off(qnap_tsx09_power_off);
|
||||||
}
|
}
|
||||||
|
|
||||||
MACHINE_START(TS209, "QNAP TS-109/TS-209")
|
MACHINE_START(TS209, "QNAP TS-109/TS-209")
|
||||||
|
|||||||
@@ -312,7 +312,7 @@ static void __init qnap_ts409_init(void)
|
|||||||
platform_device_register(&ts409_leds);
|
platform_device_register(&ts409_leds);
|
||||||
|
|
||||||
/* register tsx09 specific power-off method */
|
/* register tsx09 specific power-off method */
|
||||||
pm_power_off = qnap_tsx09_power_off;
|
register_platform_power_off(qnap_tsx09_power_off);
|
||||||
}
|
}
|
||||||
|
|
||||||
MACHINE_START(TS409, "QNAP TS-409")
|
MACHINE_START(TS409, "QNAP TS-409")
|
||||||
|
|||||||
@@ -12,5 +12,3 @@ struct s3c_uart_irq {
|
|||||||
unsigned int parent_irq;
|
unsigned int parent_irq;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern void s3c_init_uart_irqs(struct s3c_uart_irq *irq, unsigned int nr_irqs);
|
|
||||||
|
|
||||||
|
|||||||
@@ -446,7 +446,7 @@ static int wlf_gf_module_probe(struct i2c_client *i2c)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static const struct i2c_device_id wlf_gf_module_id[] = {
|
static const struct i2c_device_id wlf_gf_module_id[] = {
|
||||||
{ "wlf-gf-module", 0 },
|
{ "wlf-gf-module" },
|
||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -48,8 +48,6 @@ extern unsigned long s3c_pm_flags;
|
|||||||
|
|
||||||
/* from sleep.S */
|
/* from sleep.S */
|
||||||
|
|
||||||
extern int s3c2410_cpu_suspend(unsigned long);
|
|
||||||
|
|
||||||
#ifdef CONFIG_PM_SLEEP
|
#ifdef CONFIG_PM_SLEEP
|
||||||
extern int s3c_irq_wake(struct irq_data *data, unsigned int state);
|
extern int s3c_irq_wake(struct irq_data *data, unsigned int state);
|
||||||
extern void s3c_cpu_resume(void);
|
extern void s3c_cpu_resume(void);
|
||||||
|
|||||||
@@ -23,17 +23,6 @@ struct device_node;
|
|||||||
void s3c64xx_set_xtal_freq(unsigned long freq);
|
void s3c64xx_set_xtal_freq(unsigned long freq);
|
||||||
void s3c64xx_set_xusbxti_freq(unsigned long freq);
|
void s3c64xx_set_xusbxti_freq(unsigned long freq);
|
||||||
|
|
||||||
#ifdef CONFIG_CPU_S3C6400
|
|
||||||
|
|
||||||
extern int s3c6400_init(void);
|
|
||||||
extern void s3c6400_init_irq(void);
|
|
||||||
extern void s3c6400_map_io(void);
|
|
||||||
|
|
||||||
#else
|
|
||||||
#define s3c6400_map_io NULL
|
|
||||||
#define s3c6400_init NULL
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CONFIG_CPU_S3C6410
|
#ifdef CONFIG_CPU_S3C6410
|
||||||
|
|
||||||
extern int s3c6410_init(void);
|
extern int s3c6410_init(void);
|
||||||
|
|||||||
Reference in New Issue
Block a user