diff --git a/arch/arm/include/asm/mach/arch.h b/arch/arm/include/asm/mach/arch.h index 4e3a1dca8959f35aa1045ae484ea53b455725961..eec0c0bda7668f13c2ead9b05fd104463dc1e21b 100644 --- a/arch/arm/include/asm/mach/arch.h +++ b/arch/arm/include/asm/mach/arch.h @@ -60,7 +60,6 @@ struct machine_desc { void (*handle_irq)(struct pt_regs *); #endif void (*restart)(enum reboot_mode, const char *); - void (*pwroff)(void); }; /* diff --git a/arch/arm/include/asm/system_misc.h b/arch/arm/include/asm/system_misc.h index d1e450e00fd296bf4ac37cdb016b85b5ae1641f1..66f6a3ae68d273ba0f08e827b15f27c093cf8867 100644 --- a/arch/arm/include/asm/system_misc.h +++ b/arch/arm/include/asm/system_misc.h @@ -15,8 +15,6 @@ extern void cpu_init(void); void soft_restart(unsigned long); extern void (*arm_pm_restart)(enum reboot_mode reboot_mode, const char *cmd); extern void (*arm_pm_idle)(void); -extern void (*arm_pm_poweroff)(void); - #ifdef CONFIG_HARDEN_BRANCH_PREDICTOR typedef void (*harden_branch_predictor_fn_t)(void); diff --git a/arch/arm/kernel/reboot.c b/arch/arm/kernel/reboot.c index 241b9c4d6cabd444c43ef6be3941f51d089b2930..0ce388f15422646023f64f7e888db942f1ddb5b0 100644 --- a/arch/arm/kernel/reboot.c +++ b/arch/arm/kernel/reboot.c @@ -19,7 +19,6 @@ typedef void (*phys_reset_t)(unsigned long, bool); * Function pointers to optional machine specific functions */ void (*arm_pm_restart)(enum reboot_mode reboot_mode, const char *cmd); -void (*arm_pm_poweroff)(void); void (*pm_power_off)(void); EXPORT_SYMBOL(pm_power_off); @@ -105,10 +104,6 @@ void machine_halt(void) { local_irq_disable(); smp_send_stop(); - - if ( arm_pm_poweroff ) - arm_pm_poweroff (); - while (1); } diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c index c031ce3f9ff89d5e88fc2c72bc5e4ee3369697e8..b06602cea99c786bc478bdd6b23e835efa9885b2 100644 --- a/arch/arm/kernel/setup.c +++ b/arch/arm/kernel/setup.c @@ -1152,9 +1152,6 @@ void __init setup_arch(char **cmdline_p) if (mdesc->restart) arm_pm_restart = mdesc->restart; - if (mdesc->pwroff) - arm_pm_poweroff = mdesc->pwroff; - unflatten_device_tree(); arm_dt_init_cpu_maps(); diff --git a/arch/arm/mach-imx/mach-imx6q.c b/arch/arm/mach-imx/mach-imx6q.c index 0506ce51f550a7c35c94ce13bd8c16da26c9a6a7..5bdb65dcd67fb221a4a39584994fb444b195c73a 100644 --- a/arch/arm/mach-imx/mach-imx6q.c +++ b/arch/arm/mach-imx/mach-imx6q.c @@ -7,14 +7,12 @@ #include <linux/clk.h> #include <linux/irqchip.h> #include <linux/of_platform.h> -#include <linux/gpio.h> #include <linux/pci.h> #include <linux/phy.h> #include <linux/regmap.h> #include <linux/micrel_phy.h> #include <linux/mfd/syscon.h> #include <linux/mfd/syscon/imx6q-iomuxc-gpr.h> -#include <linux/of_gpio.h> #include <asm/mach/arch.h> #include <asm/mach/map.h> @@ -22,10 +20,6 @@ #include "cpuidle.h" #include "hardware.h" -static int power_gpio = -1; -static int power_gpio_pol = 0; -static int only_for_poweroff = 0; - /* For imx6q sabrelite board: set KSZ9021RN RGMII pad skew */ static int ksz9021rn_phy_fixup(struct phy_device *phydev) { @@ -330,45 +324,8 @@ static void __init imx6q_init_machine(void) imx6q_axi_init(); } -static void imx6q_poweroff (void) { - int ret; - - if ( power_gpio_pol ) - ret = gpio_request_one (power_gpio, GPIOF_OUT_INIT_HIGH, "power_gpio"); - else - ret = gpio_request_one (power_gpio, GPIOF_OUT_INIT_LOW, "power_gpio"); - - if ( ret < 0) - printk (KERN_ERR "(%d) Unable to get kill power GPIO (%d)\n", ret, power_gpio); -}; - - -void imx6q_restart (enum reboot_mode reboot_mode, const char *cmd) { - int ret = 0; - int ectrl_signed = 0; - - if ( !only_for_poweroff ) { - if ( power_gpio_pol ) - ret = gpio_request_one (power_gpio, GPIOF_OUT_INIT_HIGH, "power_gpio"); - else - ret = gpio_request_one (power_gpio, GPIOF_OUT_INIT_LOW, "power_gpio"); - - if ( ret < 0) - printk (KERN_ERR "Unable to get kill power GPIO\n"); - else { - ectrl_signed = 1; - } - } - - if ( !ectrl_signed ) - mxc_restart (reboot_mode, cmd); -} - - - static void __init imx6q_init_late(void) { - struct device_node *np; /* * WAIT mode is broken on imx6 Dual/Quad revision 1.0 and 1.1 so * there is no point to run cpuidle on them. @@ -381,19 +338,6 @@ static void __init imx6q_init_late(void) if (IS_ENABLED(CONFIG_ARM_IMX6Q_CPUFREQ)) platform_device_register_simple("imx6q-cpufreq", -1, NULL, 0); - np = of_find_node_by_path ("/power_signal"); - if ( np ) { - power_gpio = of_get_named_gpio (np, "power-gpio", 0); - if ( gpio_is_valid (power_gpio) ) { - pm_power_off = imx6q_poweroff; - printk (KERN_WARNING "kill power GPIO %d ok\n", power_gpio); - } - else - printk (KERN_WARNING "Unable to get kill power GPIO\n"); - power_gpio_pol = of_property_read_bool(np, "set_high"); - only_for_poweroff = of_property_read_bool(np, "only_for_poweroff"); - np = NULL; - } } static void __init imx6q_map_io(void) @@ -430,6 +374,4 @@ DT_MACHINE_START(IMX6Q, "Freescale i.MX6 Quad/DualLite (Device Tree)") .init_machine = imx6q_init_machine, .init_late = imx6q_init_late, .dt_compat = imx6q_dt_compat, - .restart = imx6q_restart, - .pwroff = imx6q_poweroff, MACHINE_END