mirror of
https://github.com/torvalds/linux.git
synced 2024-09-20 06:53:04 +00:00
soc: arm platform updates for 6.12
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. -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmboJ24ACgkQYKtH/8kJ Uieakg/+IW7ihBfb7MzlZhTGGm8mLyT4t8fi8B0j9V6dNJ9FLx+Bf19aty96jGbC b/fqYdciWXpTl0EkDVJV0Dxl8zQvYYnKy+IcdhtXUp/9uDLtvpQV8N+VIuTykMU9 XoVhUGmndyTjQOC9+qai67oN0Z4zUcLsutbytBaqif1FKGiwCJqpc4Q80PjUjdl+ 2fLVzVUVQIbyWAwarPQ3TZXRuVkR5ANnQVTNdjIcttfffM5KaLTuZaX5J2IXT28l bxQFTwExjZMToNXrOw8RwsTqFkv0WXqSxThKm7656L+giIAD7Ul3o3uD+bLZQ6n5 ygLQikmulv2ATxu0KHpEJSIup7bZnDtDqg/THYT6obFiLEXVIMqZDq+w4ugg3TUg WeMW5/LZn9jeMKQmgOY2sOsgfcn//acnEn1UZ1vU96kUCjfrT6uultY3+3/GGyYD FKtK5bCIv67732uiviJG49MJ3/sEhcAfai3Ij27tvOWHYQ0qwtt3mtuZvfohaxRu potVEHoK5qMGtC7uUKu7ubz3KwDmvP7ZEoh17JRZhIN9Rx8N64ltY8fFZnUaCj91 2XRY65hV9a/rpdzpR2oxZm6SAKb1vyYvfFH2DeHQSsEODV94+nVAbssRGyR8/09H oxL1ntT9Ldp2hjNB656clMJxKBU4iG4y0FrasSnJGqAQvzm3M6k= =3AQ6 -----END PGP SIGNATURE----- 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:
commit
a940d9a43e
10
MAINTAINERS
10
MAINTAINERS
|
@ -20243,6 +20243,16 @@ B: mailto:linux-samsung-soc@vger.kernel.org
|
|||
F: Documentation/devicetree/bindings/sound/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
|
||||
M: Krzysztof Kozlowski <krzk@kernel.org>
|
||||
L: linux-crypto@vger.kernel.org
|
||||
|
|
|
@ -185,6 +185,7 @@ config ARCH_BRCMSTB
|
|||
select ARCH_HAS_RESET_CONTROLLER
|
||||
select ARM_AMBA
|
||||
select ARM_GIC
|
||||
select ARM_GIC_V3
|
||||
select ARM_ERRATA_798181 if SMP
|
||||
select HAVE_ARM_ARCH_TIMER
|
||||
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
|
||||
|
||||
# Power Management
|
||||
obj-$(CONFIG_CPU_IDLE) += cpuidle.o
|
||||
obj-$(CONFIG_HAVE_CLK) += pm_domain.o
|
||||
ifeq ($(CONFIG_SUSPEND),y)
|
||||
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 void davinci_common_init(const struct davinci_soc_info *soc_info);
|
||||
extern void davinci_init_ide(void);
|
||||
void davinci_init_late(void);
|
||||
|
||||
#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 "cputype.h"
|
||||
#include "da8xx.h"
|
||||
#include "cpuidle.h"
|
||||
#include "irqs.h"
|
||||
#include "sram.h"
|
||||
|
||||
|
|
|
@ -654,14 +654,9 @@ enum davinci_da850_index {
|
|||
#ifdef CONFIG_DAVINCI_MUX
|
||||
/* setup pin muxing */
|
||||
extern int davinci_cfg_reg(unsigned long reg_cfg);
|
||||
extern int davinci_cfg_reg_list(const short pins[]);
|
||||
#else
|
||||
/* 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_list(const short pins[])
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
|
|
@ -82,7 +82,7 @@ static void __init dove_clk_init(void)
|
|||
{
|
||||
struct clk *usb0, *usb1, *sata, *pex0, *pex1, *sdio0, *sdio1;
|
||||
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);
|
||||
|
||||
|
@ -102,7 +102,7 @@ static void __init dove_clk_init(void)
|
|||
pdma = dove_register_gate("pdma", "tclk", CLOCK_GATING_BIT_PDMA);
|
||||
xor0 = dove_register_gate("xor0", "tclk", CLOCK_GATING_BIT_XOR0);
|
||||
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);
|
||||
|
||||
orion_clkdev_add(NULL, "orion_spi.0", tclk);
|
||||
|
|
|
@ -7,37 +7,15 @@
|
|||
#include <linux/of_platform.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/mfd/syscon.h>
|
||||
#include <linux/mfd/syscon/imx6q-iomuxc-gpr.h>
|
||||
#include <asm/mach/arch.h>
|
||||
|
||||
#include "common.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)
|
||||
{
|
||||
of_platform_default_populate(NULL, NULL, NULL);
|
||||
|
||||
imx6sx_enet_init();
|
||||
imx_anatop_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_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, ®);
|
||||
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);
|
||||
}
|
||||
|
||||
|
|
|
@ -59,19 +59,6 @@ static struct omap_dma_dev_attr *d;
|
|||
static int enable_1510_mode;
|
||||
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_chan_count;
|
||||
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 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 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
|
||||
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;
|
||||
|
||||
hwmods = kmemdup(ohs, sizeof(struct omap_hwmod *) * oh_cnt, GFP_KERNEL);
|
||||
hwmods = kmemdup_array(ohs, oh_cnt, sizeof(*hwmods), GFP_KERNEL);
|
||||
if (!hwmods)
|
||||
goto oda_exit2;
|
||||
|
||||
|
|
|
@ -82,5 +82,5 @@ static void mss2_power_off(void)
|
|||
void __init mss2_init(void)
|
||||
{
|
||||
/* 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 ||
|
||||
gpio_direction_output(DNS323_GPIO_POWER_OFF, 0) != 0)
|
||||
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;
|
||||
case DNS323_REV_B1:
|
||||
/* 5182 built-in SATA init */
|
||||
|
@ -717,7 +717,7 @@ static void __init dns323_init(void)
|
|||
if (gpio_request(DNS323_GPIO_POWER_OFF, "POWEROFF") != 0 ||
|
||||
gpio_direction_output(DNS323_GPIO_POWER_OFF, 0) != 0)
|
||||
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;
|
||||
case DNS323_REV_C1:
|
||||
/* 5182 built-in SATA init */
|
||||
|
@ -727,7 +727,7 @@ static void __init dns323_init(void)
|
|||
if (gpio_request(DNS323C_GPIO_POWER_OFF, "POWEROFF") != 0 ||
|
||||
gpio_direction_output(DNS323C_GPIO_POWER_OFF, 0) != 0)
|
||||
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
|
||||
* 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);
|
||||
|
||||
/* 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
|
||||
|
|
|
@ -238,7 +238,7 @@ static void __init mv2120_init(void)
|
|||
if (gpio_request(MV2120_GPIO_POWER_OFF, "POWEROFF") != 0 ||
|
||||
gpio_direction_output(MV2120_GPIO_POWER_OFF, 1) != 0)
|
||||
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 */
|
||||
|
|
|
@ -423,7 +423,7 @@ static void __init net2big_init(void)
|
|||
|
||||
if (gpio_request(NET2BIG_GPIO_POWER_OFF, "power-off") == 0 &&
|
||||
gpio_direction_output(NET2BIG_GPIO_POWER_OFF, 0) == 0)
|
||||
pm_power_off = net2big_power_off;
|
||||
register_platform_power_off(net2big_power_off);
|
||||
else
|
||||
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);
|
||||
|
||||
/* 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")
|
||||
|
|
|
@ -314,7 +314,7 @@ static void __init qnap_ts209_init(void)
|
|||
i2c_register_board_info(0, &qnap_ts209_i2c_rtc, 1);
|
||||
|
||||
/* 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")
|
||||
|
|
|
@ -312,7 +312,7 @@ static void __init qnap_ts409_init(void)
|
|||
platform_device_register(&ts409_leds);
|
||||
|
||||
/* 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")
|
||||
|
|
|
@ -12,5 +12,3 @@ struct s3c_uart_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[] = {
|
||||
{ "wlf-gf-module", 0 },
|
||||
{ "wlf-gf-module" },
|
||||
{ }
|
||||
};
|
||||
|
||||
|
|
|
@ -48,8 +48,6 @@ extern unsigned long s3c_pm_flags;
|
|||
|
||||
/* from sleep.S */
|
||||
|
||||
extern int s3c2410_cpu_suspend(unsigned long);
|
||||
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
extern int s3c_irq_wake(struct irq_data *data, unsigned int state);
|
||||
extern void s3c_cpu_resume(void);
|
||||
|
|
|
@ -23,17 +23,6 @@ struct device_node;
|
|||
void s3c64xx_set_xtal_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
|
||||
|
||||
extern int s3c6410_init(void);
|
||||
|
|
Loading…
Reference in New Issue
Block a user