Commit 4f7a4028 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'x86_platform_for_v5.12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull x86 platform updates from Borislav Petkov:

 - Convert geode drivers to look up the LED controls from a GPIO machine
   descriptor table.

 - Remove arch/x86/platform/goldfish as it is not used by the android
   emulator anymore.

* tag 'x86_platform_for_v5.12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/platform/geode: Convert alix LED to GPIO machine descriptor
  x86/platform/geode: Convert geode LED to GPIO machine descriptor
  x86/platform/geode: Convert net5501 LED to GPIO machine descriptor
  x86/platform: Retire arch/x86/platform/goldfish
  x86/platform/intel-mid: Convert comma to semicolon
parents b9cdab68 60430301
...@@ -4,7 +4,6 @@ obj-y += atom/ ...@@ -4,7 +4,6 @@ obj-y += atom/
obj-y += ce4100/ obj-y += ce4100/
obj-y += efi/ obj-y += efi/
obj-y += geode/ obj-y += geode/
obj-y += goldfish/
obj-y += iris/ obj-y += iris/
obj-y += intel/ obj-y += intel/
obj-y += intel-mid/ obj-y += intel-mid/
......
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/input.h> #include <linux/input.h>
#include <linux/gpio_keys.h> #include <linux/gpio_keys.h>
#include <linux/gpio/machine.h>
#include <linux/dmi.h> #include <linux/dmi.h>
#include <asm/geode.h> #include <asm/geode.h>
...@@ -69,21 +70,15 @@ static struct platform_device alix_buttons_dev = { ...@@ -69,21 +70,15 @@ static struct platform_device alix_buttons_dev = {
static struct gpio_led alix_leds[] = { static struct gpio_led alix_leds[] = {
{ {
.name = "alix:1", .name = "alix:1",
.gpio = 6,
.default_trigger = "default-on", .default_trigger = "default-on",
.active_low = 1,
}, },
{ {
.name = "alix:2", .name = "alix:2",
.gpio = 25,
.default_trigger = "default-off", .default_trigger = "default-off",
.active_low = 1,
}, },
{ {
.name = "alix:3", .name = "alix:3",
.gpio = 27,
.default_trigger = "default-off", .default_trigger = "default-off",
.active_low = 1,
}, },
}; };
...@@ -92,6 +87,17 @@ static struct gpio_led_platform_data alix_leds_data = { ...@@ -92,6 +87,17 @@ static struct gpio_led_platform_data alix_leds_data = {
.leds = alix_leds, .leds = alix_leds,
}; };
static struct gpiod_lookup_table alix_leds_gpio_table = {
.dev_id = "leds-gpio",
.table = {
/* The Geode GPIOs should be on the CS5535 companion chip */
GPIO_LOOKUP_IDX("cs5535-gpio", 6, NULL, 0, GPIO_ACTIVE_LOW),
GPIO_LOOKUP_IDX("cs5535-gpio", 25, NULL, 1, GPIO_ACTIVE_LOW),
GPIO_LOOKUP_IDX("cs5535-gpio", 27, NULL, 2, GPIO_ACTIVE_LOW),
{ }
},
};
static struct platform_device alix_leds_dev = { static struct platform_device alix_leds_dev = {
.name = "leds-gpio", .name = "leds-gpio",
.id = -1, .id = -1,
...@@ -106,6 +112,7 @@ static struct platform_device *alix_devs[] __initdata = { ...@@ -106,6 +112,7 @@ static struct platform_device *alix_devs[] __initdata = {
static void __init register_alix(void) static void __init register_alix(void)
{ {
/* Setup LED control through leds-gpio driver */ /* Setup LED control through leds-gpio driver */
gpiod_add_lookup_table(&alix_leds_gpio_table);
platform_add_devices(alix_devs, ARRAY_SIZE(alix_devs)); platform_add_devices(alix_devs, ARRAY_SIZE(alix_devs));
} }
......
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/input.h> #include <linux/input.h>
#include <linux/gpio_keys.h> #include <linux/gpio_keys.h>
#include <linux/gpio/machine.h>
#include <linux/dmi.h> #include <linux/dmi.h>
#include <asm/geode.h> #include <asm/geode.h>
...@@ -53,21 +54,15 @@ static struct platform_device geos_buttons_dev = { ...@@ -53,21 +54,15 @@ static struct platform_device geos_buttons_dev = {
static struct gpio_led geos_leds[] = { static struct gpio_led geos_leds[] = {
{ {
.name = "geos:1", .name = "geos:1",
.gpio = 6,
.default_trigger = "default-on", .default_trigger = "default-on",
.active_low = 1,
}, },
{ {
.name = "geos:2", .name = "geos:2",
.gpio = 25,
.default_trigger = "default-off", .default_trigger = "default-off",
.active_low = 1,
}, },
{ {
.name = "geos:3", .name = "geos:3",
.gpio = 27,
.default_trigger = "default-off", .default_trigger = "default-off",
.active_low = 1,
}, },
}; };
...@@ -76,6 +71,17 @@ static struct gpio_led_platform_data geos_leds_data = { ...@@ -76,6 +71,17 @@ static struct gpio_led_platform_data geos_leds_data = {
.leds = geos_leds, .leds = geos_leds,
}; };
static struct gpiod_lookup_table geos_leds_gpio_table = {
.dev_id = "leds-gpio",
.table = {
/* The Geode GPIOs should be on the CS5535 companion chip */
GPIO_LOOKUP_IDX("cs5535-gpio", 6, NULL, 0, GPIO_ACTIVE_LOW),
GPIO_LOOKUP_IDX("cs5535-gpio", 25, NULL, 1, GPIO_ACTIVE_LOW),
GPIO_LOOKUP_IDX("cs5535-gpio", 27, NULL, 2, GPIO_ACTIVE_LOW),
{ }
},
};
static struct platform_device geos_leds_dev = { static struct platform_device geos_leds_dev = {
.name = "leds-gpio", .name = "leds-gpio",
.id = -1, .id = -1,
...@@ -90,6 +96,7 @@ static struct platform_device *geos_devs[] __initdata = { ...@@ -90,6 +96,7 @@ static struct platform_device *geos_devs[] __initdata = {
static void __init register_geos(void) static void __init register_geos(void)
{ {
/* Setup LED control through leds-gpio driver */ /* Setup LED control through leds-gpio driver */
gpiod_add_lookup_table(&geos_leds_gpio_table);
platform_add_devices(geos_devs, ARRAY_SIZE(geos_devs)); platform_add_devices(geos_devs, ARRAY_SIZE(geos_devs));
} }
......
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/input.h> #include <linux/input.h>
#include <linux/gpio_keys.h> #include <linux/gpio_keys.h>
#include <linux/gpio/machine.h>
#include <asm/geode.h> #include <asm/geode.h>
...@@ -55,9 +56,7 @@ static struct platform_device net5501_buttons_dev = { ...@@ -55,9 +56,7 @@ static struct platform_device net5501_buttons_dev = {
static struct gpio_led net5501_leds[] = { static struct gpio_led net5501_leds[] = {
{ {
.name = "net5501:1", .name = "net5501:1",
.gpio = 6,
.default_trigger = "default-on", .default_trigger = "default-on",
.active_low = 0,
}, },
}; };
...@@ -66,6 +65,15 @@ static struct gpio_led_platform_data net5501_leds_data = { ...@@ -66,6 +65,15 @@ static struct gpio_led_platform_data net5501_leds_data = {
.leds = net5501_leds, .leds = net5501_leds,
}; };
static struct gpiod_lookup_table net5501_leds_gpio_table = {
.dev_id = "leds-gpio",
.table = {
/* The Geode GPIOs should be on the CS5535 companion chip */
GPIO_LOOKUP_IDX("cs5535-gpio", 6, NULL, 0, GPIO_ACTIVE_HIGH),
{ }
},
};
static struct platform_device net5501_leds_dev = { static struct platform_device net5501_leds_dev = {
.name = "leds-gpio", .name = "leds-gpio",
.id = -1, .id = -1,
...@@ -80,6 +88,7 @@ static struct platform_device *net5501_devs[] __initdata = { ...@@ -80,6 +88,7 @@ static struct platform_device *net5501_devs[] __initdata = {
static void __init register_net5501(void) static void __init register_net5501(void)
{ {
/* Setup LED control through leds-gpio driver */ /* Setup LED control through leds-gpio driver */
gpiod_add_lookup_table(&net5501_leds_gpio_table);
platform_add_devices(net5501_devs, ARRAY_SIZE(net5501_devs)); platform_add_devices(net5501_devs, ARRAY_SIZE(net5501_devs));
} }
......
# SPDX-License-Identifier: GPL-2.0-only
obj-$(CONFIG_GOLDFISH) += goldfish.o
// SPDX-License-Identifier: GPL-2.0-only
/*
* Copyright (C) 2007 Google, Inc.
* Copyright (C) 2011 Intel, Inc.
* Copyright (C) 2013 Intel, Inc.
*/
#include <linux/kernel.h>
#include <linux/irq.h>
#include <linux/platform_device.h>
/*
* Where in virtual device memory the IO devices (timers, system controllers
* and so on)
*/
#define GOLDFISH_PDEV_BUS_BASE (0xff001000)
#define GOLDFISH_PDEV_BUS_END (0xff7fffff)
#define GOLDFISH_PDEV_BUS_IRQ (4)
#define GOLDFISH_TTY_BASE (0x2000)
static struct resource goldfish_pdev_bus_resources[] = {
{
.start = GOLDFISH_PDEV_BUS_BASE,
.end = GOLDFISH_PDEV_BUS_END,
.flags = IORESOURCE_MEM,
},
{
.start = GOLDFISH_PDEV_BUS_IRQ,
.end = GOLDFISH_PDEV_BUS_IRQ,
.flags = IORESOURCE_IRQ,
}
};
static bool goldfish_enable __initdata;
static int __init goldfish_setup(char *str)
{
goldfish_enable = true;
return 0;
}
__setup("goldfish", goldfish_setup);
static int __init goldfish_init(void)
{
if (!goldfish_enable)
return -ENODEV;
platform_device_register_simple("goldfish_pdev_bus", -1,
goldfish_pdev_bus_resources, 2);
return 0;
}
device_initcall(goldfish_init);
...@@ -88,8 +88,8 @@ static int __init bt_sfi_init(void) ...@@ -88,8 +88,8 @@ static int __init bt_sfi_init(void)
memset(&info, 0, sizeof(info)); memset(&info, 0, sizeof(info));
info.fwnode = ddata->dev->fwnode; info.fwnode = ddata->dev->fwnode;
info.parent = ddata->dev; info.parent = ddata->dev;
info.name = ddata->name, info.name = ddata->name;
info.id = PLATFORM_DEVID_NONE, info.id = PLATFORM_DEVID_NONE;
pdev = platform_device_register_full(&info); pdev = platform_device_register_full(&info);
if (IS_ERR(pdev)) if (IS_ERR(pdev))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment