Commit 0c221292 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull ARM SoC code changes from Arnd Bergmann:
 "The code changes are fairly minimal, there is a bit of conversion of
  the old orion5x platform to modern gpio descriptors, the Kconfig entry
  for the added EN7581 platform and a sysfs change for the i.MX PMU
  device"

* tag 'soc-arm-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc:
  arm64: add Airoha EN7581 platform
  ARM: orion5x: Convert TS409 board to GPIO descriptors for LEDs
  ARM: orion5x: Convert Net2big board to GPIO descriptors for LEDs
  ARM: orion5x: Convert MV2120 board to GPIO descriptors for LEDs
  ARM: orion5x: Convert DNS323 board to GPIO descriptors for LEDs
  ARM: orion5x: Convert D2Net board to GPIO descriptors for LEDs
  ARM: imx: Assign parents for mmdc event_source devices
parents 14a60290 428ae88e
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -437,6 +437,7 @@ static int mmdc_pmu_init(struct mmdc_pmu *pmu_mmdc,
{
	*pmu_mmdc = (struct mmdc_pmu) {
		.pmu = (struct pmu) {
			.parent		= dev,
			.task_ctx_nr    = perf_invalid_context,
			.attr_groups    = attr_groups,
			.event_init     = mmdc_pmu_event_init,
+13 −3
Original line number Diff line number Diff line
@@ -14,6 +14,7 @@
#include <linux/irq.h>
#include <linux/leds.h>
#include <linux/gpio.h>
#include <linux/gpio/machine.h>
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
#include <asm/mach/pci.h>
@@ -55,12 +56,9 @@ static struct gpio_led d2net_leds[] = {
	{
		.name = "d2net:blue:sata",
		.default_trigger = "default-on",
		.gpio = D2NET_GPIO_BLUE_LED_OFF,
		.active_low = 1,
	},
	{
		.name = "d2net:red:fail",
		.gpio = D2NET_GPIO_RED_LED,
	},
};

@@ -77,6 +75,17 @@ static struct platform_device d2net_gpio_leds = {
	},
};

static struct gpiod_lookup_table d2net_leds_gpio_table = {
	.dev_id = "leds-gpio",
	.table = {
		GPIO_LOOKUP_IDX("orion_gpio0", D2NET_GPIO_BLUE_LED_OFF, NULL,
				0, GPIO_ACTIVE_LOW),
		GPIO_LOOKUP_IDX("orion_gpio0", D2NET_GPIO_RED_LED, NULL,
				1, GPIO_ACTIVE_HIGH),
		{ },
	},
};

static void __init d2net_gpio_leds_init(void)
{
	int err;
@@ -91,6 +100,7 @@ static void __init d2net_gpio_leds_init(void)
	if (err)
		pr_err("d2net: failed to configure blue LED blink GPIO\n");

	gpiod_add_lookup_table(&d2net_leds_gpio_table);
	platform_device_register(&d2net_gpio_leds);
}

+48 −15
Original line number Diff line number Diff line
@@ -14,6 +14,7 @@
 *
 */
#include <linux/gpio.h>
#include <linux/gpio/machine.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/delay.h>
@@ -254,37 +255,64 @@ static int __init dns323_read_mac_addr(void)
static struct gpio_led dns323ab_leds[] = {
	{
		.name = "power:blue",
		.gpio = DNS323_GPIO_LED_POWER2,
		.default_trigger = "default-on",
	}, {
		.name = "right:amber",
		.gpio = DNS323_GPIO_LED_RIGHT_AMBER,
		.active_low = 1,
	}, {
		.name = "left:amber",
		.gpio = DNS323_GPIO_LED_LEFT_AMBER,
		.active_low = 1,
	},
};

static struct gpiod_lookup_table dns323a1_leds_gpio_table = {
	.dev_id = "leds-gpio",
	.table = {
		GPIO_LOOKUP_IDX("orion_gpio0", DNS323_GPIO_LED_POWER2, NULL,
				0, GPIO_ACTIVE_LOW),
		GPIO_LOOKUP_IDX("orion_gpio0", DNS323_GPIO_LED_RIGHT_AMBER, NULL,
				1, GPIO_ACTIVE_LOW),
		GPIO_LOOKUP_IDX("orion_gpio0", DNS323_GPIO_LED_LEFT_AMBER, NULL,
				2, GPIO_ACTIVE_LOW),
		{ },
	},
};

/* B1 is the same but power LED is active high */
static struct gpiod_lookup_table dns323b1_leds_gpio_table = {
	.dev_id = "leds-gpio",
	.table = {
		GPIO_LOOKUP_IDX("orion_gpio0", DNS323_GPIO_LED_POWER2, NULL,
				0, GPIO_ACTIVE_HIGH),
		GPIO_LOOKUP_IDX("orion_gpio0", DNS323_GPIO_LED_RIGHT_AMBER, NULL,
				1, GPIO_ACTIVE_LOW),
		GPIO_LOOKUP_IDX("orion_gpio0", DNS323_GPIO_LED_LEFT_AMBER, NULL,
				2, GPIO_ACTIVE_LOW),
		{ },
	},
};

static struct gpio_led dns323c_leds[] = {
	{
		.name = "power:blue",
		.gpio = DNS323C_GPIO_LED_POWER,
		.default_trigger = "timer",
		.active_low = 1,
	}, {
		.name = "right:amber",
		.gpio = DNS323C_GPIO_LED_RIGHT_AMBER,
		.active_low = 1,
	}, {
		.name = "left:amber",
		.gpio = DNS323C_GPIO_LED_LEFT_AMBER,
		.active_low = 1,
	},
};

static struct gpiod_lookup_table dns323c_leds_gpio_table = {
	.dev_id = "leds-gpio",
	.table = {
		GPIO_LOOKUP_IDX("orion_gpio0", DNS323C_GPIO_LED_POWER, NULL,
				0, GPIO_ACTIVE_LOW),
		GPIO_LOOKUP_IDX("orion_gpio0", DNS323C_GPIO_LED_RIGHT_AMBER, NULL,
				1, GPIO_ACTIVE_LOW),
		GPIO_LOOKUP_IDX("orion_gpio0", DNS323C_GPIO_LED_LEFT_AMBER, NULL,
				2, GPIO_ACTIVE_LOW),
		{ },
	},
};

static struct gpio_led_platform_data dns323ab_led_data = {
	.num_leds	= ARRAY_SIZE(dns323ab_leds),
@@ -621,16 +649,21 @@ static void __init dns323_init(void)
		/* The 5181 power LED is active low and requires
		 * DNS323_GPIO_LED_POWER1 to also be low.
		 */
		 dns323ab_leds[0].active_low = 1;
		gpiod_add_lookup_table(&dns323a1_leds_gpio_table);
		gpio_request(DNS323_GPIO_LED_POWER1, "Power Led Enable");
		gpio_direction_output(DNS323_GPIO_LED_POWER1, 0);
		fallthrough;
		i2c_register_board_info(0, dns323ab_i2c_devices,
					ARRAY_SIZE(dns323ab_i2c_devices));

		break;
	case DNS323_REV_B1:
		gpiod_add_lookup_table(&dns323b1_leds_gpio_table);
		i2c_register_board_info(0, dns323ab_i2c_devices,
				ARRAY_SIZE(dns323ab_i2c_devices));
		break;
	case DNS323_REV_C1:
		/* Hookup LEDs & Buttons */
		gpiod_add_lookup_table(&dns323c_leds_gpio_table);
		dns323_gpio_leds.dev.platform_data = &dns323c_led_data;
		dns323_button_device.dev.platform_data = &dns323c_button_data;

+21 −8
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@
 * License, or (at your option) any later version.
 */
#include <linux/gpio.h>
#include <linux/gpio/machine.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/platform_device.h>
@@ -139,34 +140,45 @@ static struct i2c_board_info __initdata mv2120_i2c_rtc = {
static struct gpio_led mv2120_led_pins[] = {
	{
		.name			= "mv2120:blue:health",
		.gpio			= 0,
	},
	{
		.name			= "mv2120:red:health",
		.gpio			= 1,
	},
	{
		.name			= "mv2120:led:bright",
		.gpio			= 4,
		.default_trigger	= "default-on",
	},
	{
		.name			= "mv2120:led:dimmed",
		.gpio			= 5,
	},
	{
		.name			= "mv2120:red:sata0",
		.gpio			= 8,
		.active_low		= 1,
	},
	{
		.name			= "mv2120:red:sata1",
		.gpio			= 9,
		.active_low		= 1,
	},

};

static struct gpiod_lookup_table mv2120_leds_gpio_table = {
	.dev_id = "leds-gpio",
	.table = {
		GPIO_LOOKUP_IDX("orion_gpio0", 0, NULL,
				0, GPIO_ACTIVE_HIGH),
		GPIO_LOOKUP_IDX("orion_gpio0", 1, NULL,
				1, GPIO_ACTIVE_HIGH),
		GPIO_LOOKUP_IDX("orion_gpio0", 4, NULL,
				2, GPIO_ACTIVE_HIGH),
		GPIO_LOOKUP_IDX("orion_gpio0", 5, NULL,
				3, GPIO_ACTIVE_HIGH),
		GPIO_LOOKUP_IDX("orion_gpio0", 8, NULL,
				4, GPIO_ACTIVE_LOW),
		GPIO_LOOKUP_IDX("orion_gpio0", 9, NULL,
				5, GPIO_ACTIVE_LOW),
		{ },
	},
};

static struct gpio_led_platform_data mv2120_led_data = {
	.leds		= mv2120_led_pins,
	.num_leds	= ARRAY_SIZE(mv2120_led_pins),
@@ -219,6 +231,7 @@ static void __init mv2120_init(void)
			gpio_free(MV2120_GPIO_RTC_IRQ);
	}
	i2c_register_board_info(0, &mv2120_i2c_rtc, 1);
	gpiod_add_lookup_table(&mv2120_leds_gpio_table);
	platform_device_register(&mv2120_leds);

	/* register mv2120 specific power-off method */
+17 −4
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@
#include <linux/i2c.h>
#include <linux/ata_platform.h>
#include <linux/gpio.h>
#include <linux/gpio/machine.h>
#include <linux/delay.h>
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
@@ -214,19 +215,30 @@ static void __init net2big_sata_power_init(void)
static struct gpio_led net2big_leds[] = {
	{
		.name = "net2big:red:power",
		.gpio = NET2BIG_GPIO_PWR_RED_LED,
	},
	{
		.name = "net2big:blue:power",
		.gpio = NET2BIG_GPIO_PWR_BLUE_LED,
	},
	{
		.name = "net2big:red:sata0",
		.gpio = NET2BIG_GPIO_SATA0_RED_LED,
	},
	{
		.name = "net2big:red:sata1",
		.gpio = NET2BIG_GPIO_SATA1_RED_LED,
	},
};

static struct gpiod_lookup_table net2big_leds_gpio_table = {
	.dev_id = "leds-gpio",
	.table = {
		GPIO_LOOKUP_IDX("orion_gpio0", NET2BIG_GPIO_PWR_RED_LED, NULL,
				0, GPIO_ACTIVE_HIGH),
		GPIO_LOOKUP_IDX("orion_gpio0", NET2BIG_GPIO_PWR_BLUE_LED, NULL,
				1, GPIO_ACTIVE_HIGH),
		GPIO_LOOKUP_IDX("orion_gpio0", NET2BIG_GPIO_SATA0_RED_LED, NULL,
				2, GPIO_ACTIVE_HIGH),
		GPIO_LOOKUP_IDX("orion_gpio0", NET2BIG_GPIO_SATA1_RED_LED, NULL,
				3, GPIO_ACTIVE_HIGH),
		{ },
	},
};

@@ -282,6 +294,7 @@ static void __init net2big_gpio_leds_init(void)
	if (err)
		pr_err("net2big: failed to setup SATA1 blue LED GPIO\n");

	gpiod_add_lookup_table(&net2big_leds_gpio_table);
	platform_device_register(&net2big_gpio_leds);
}

Loading