From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f176.google.com (mail-pl1-f176.google.com [209.85.214.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 22DB63806DD for ; Tue, 7 Jul 2026 03:14:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.176 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783394050; cv=none; b=utHQKeN8ew5WMAEqAjFjjoh1dIpgKrzVJQoHJg9aZxpCitjsaB6VDTgUIzCbP6YPwua7+K8yb0Kq5DTf+8qEngR81xXLH/nV1QUXPfq311FRD43Ma0NZq3Ko0jFhge+RTBIcySNRkNDtjmL2x4u6k3GACkEVYvEqyjIFc6HKsAo= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783394050; c=relaxed/simple; bh=htYOVpebTX0RCUzuTTIdoToW26XugbTANpRTT0kaVWw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=nGqMsuuM6IECbqwNxIqo+lJm5XBoO0w3k0gTCtdb/ok+05tmJpFn+m6G8IuKhosoTNPofOM4qe1TSpQBIoPvaKLGrwFpU6jjiPGg+XMYi3lN8U7fFaQAaaJENSebmFfw5kVdvjNTYUy4NGGQllt99NZ9j8O/rzpznyOHGiHI8xY= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=p84IeR1l; arc=none smtp.client-ip=209.85.214.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="p84IeR1l" Received: by mail-pl1-f176.google.com with SMTP id d9443c01a7336-2cabc0a1ab6so40525645ad.0 for ; Mon, 06 Jul 2026 20:14:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1783394048; x=1783998848; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=oYtf60a9vKyBgN3UPVLnsPxCyGwr8zfAeFMSG9lOvrg=; b=p84IeR1loawgqr3v68xt2UPQllosu+JW8uBNSO8N4zdoOTS/A5OFiUEcVX6e7+3ltL KQAQt0Edf+jpqp4VBLdQ/+MIkvvhKtUF1eoz29OJarW0U5kiVYL1jK7lL7MSwTRWcz8D WIAd8h7QVn1yxzIr+cx0DjQtUOKss6yE3Y3oVX3UscWox4WrsdB++jVNLFIB5SsumfMj yyJvO2ilsxcTwku8srnWPh/7y07w3DnsCziM6QQQRwx//0oFSFMZzl6Y0ZAJofwQeTQ/ AxBPJznYkKNpjcnqq44AZ4NOXIOlSoSORPxLBYD9qY+ZI5Fhogxfe9Md74E27Ujy0t+B XeHw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783394048; x=1783998848; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=oYtf60a9vKyBgN3UPVLnsPxCyGwr8zfAeFMSG9lOvrg=; b=BT0cadkCgdDlx42Ary/bGsmOq5k3eIGvVvNlIbveyZdWiqlqzc41gG6mlLI59tzpBq 4yUaQJXX+Mv331Ug4mfwFvSoKvjXwjKvJUFyOxMykJT0oA6v4+8t9ib4jDjFuP5985gK tYdXri5P7vVsD/d6PMq1Kr5a/iTvRLh7u9AtDSkdjaAvHNMT4vkYpHIZfuPuRdNgzZPj Fs/wjfKVqii4hoU+oavU7YQ2egNUZY4PkUBWFh1pE5nxfKygj98eUOSCsb8S7I9KUNk7 gKJ6UR06reZRSZkR7OmzKheO2ji2pVs5F8ehQpZ2OyROhDX93mxyid19FZmyPoSJ6Hp4 8o4Q== X-Forwarded-Encrypted: i=1; AHgh+RrREl94UnDs3FoMzDjieyzeeEUd3VKLS8RUUk8Sx01qamBQE0/pa6ZirVi4l0ehhhUUNyTgW3WKC+9NXzw=@vger.kernel.org X-Gm-Message-State: AOJu0Yy+QRvWDFUrXcGaE6/b+ifLSYoo1P2/6vHL7aDzrgURsBCjHXEu icICLLgUsfBGcGLz4lRAZguRxMV4UWsrTfkMXakUgUuf0borsquVG5Zs X-Gm-Gg: AfdE7ckNeFFwGueiTwaP4EVwCv7Yr9re8lLA10UQhXQiD/mQ5+hSs2yMqqPvwE8NVBo juKg4V+oYApE0jDCMpae/D7hevcwN0HpOB9awGO/DrSExcpMjrCFvPB6GgwF9ifMIDxZQa2TUE0 LpO4cvHJWIMzmi1Wt7l271M78OgeZrP0aN6y+pfOn/THF6Egqk7RH0fdumt/sTGQ5p++QSbKVvS SmE5VSJ/G9P8kjwlLziROTQ1BkIRciDXuOXxeBiVKwekBX8kc0Op6dsI0kY92g1IxukjNOIKrxJ 3sIZFk0xV0/uV/4vvW4KoPNMwQ1ZyM3LyGWPG8DIYtd3bxWlnU33zFD+DuXF5fmqcSK74G4gHEJ 0fY8zhYsHvv1oRVdA46pFEV06Dt8tHZ2RYQdp3RHGStVp0cbDfBB+6zKREDP//B7xzk4p7eLhLj AGmL+mRX5k6QfaEpxKtvYcgHenZvbhMEY+eRMGKTfZl0VivOpKPdxJXYUQ0iUGbKyUhMikpWFKE HTL X-Received: by 2002:a05:6a20:1615:b0:3bf:6c05:ad with SMTP id adf61e73a8af0-3c08f020a10mr4089430637.60.1783394048343; Mon, 06 Jul 2026 20:14:08 -0700 (PDT) Received: from dtor-ws.sjc.corp.google.com ([2a00:79e0:2ebe:8:d89b:1fdd:a8f2:dbeb]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-13b659666e7sm3339905c88.7.2026.07.06.20.14.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Jul 2026 20:14:07 -0700 (PDT) From: Dmitry Torokhov Date: Mon, 06 Jul 2026 20:14:01 -0700 Subject: [PATCH 2/4] ARM: sa1100: assabet: convert gpio-keys to use software nodes Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20260706-sa1100-swnode-v1-2-332759bbd930@gmail.com> References: <20260706-sa1100-swnode-v1-0-332759bbd930@gmail.com> In-Reply-To: <20260706-sa1100-swnode-v1-0-332759bbd930@gmail.com> To: Arnd Bergmann , Russell King , Linus Walleij , Bartosz Golaszewski , soc@lists.linux.dev Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org X-Mailer: b4 0.16-dev-b242f Convert the legacy gpio-keys platform device on the StrongARM SA-1100 Assabet evaluation board to use software nodes and device properties. This allows describing the buttons and their GPIO bindings via software nodes so that platform data support can eventually be removed from the gpio-keys driver. Define static software nodes for the gpio-keys device and the two button child nodes at file scope, referencing the SA-1100 GPIO controller node directly. In assabet_init(), register the software node group and use platform_device_register_full() to register the gpio-keys device. Assisted-by: Antigravity:gemini-3.5-flash Signed-off-by: Dmitry Torokhov --- arch/arm/mach-sa1100/assabet.c | 75 ++++++++++++++++++++++++++++-------------- 1 file changed, 50 insertions(+), 25 deletions(-) diff --git a/arch/arm/mach-sa1100/assabet.c b/arch/arm/mach-sa1100/assabet.c index 2b833aa0212b..b001f0b6a3fa 100644 --- a/arch/arm/mach-sa1100/assabet.c +++ b/arch/arm/mach-sa1100/assabet.c @@ -13,8 +13,10 @@ #include #include #include -#include +#include +#include #include +#include #include #include #include @@ -467,28 +469,53 @@ static const struct gpio_led_platform_data assabet_leds_pdata __initconst = { .leds = assabet_leds, }; -static struct gpio_keys_button assabet_keys_buttons[] = { - { - .gpio = 0, - .irq = IRQ_GPIO0, - .desc = "gpio0", - .wakeup = 1, - .can_disable = 1, - .debounce_interval = 5, - }, { - .gpio = 1, - .irq = IRQ_GPIO1, - .desc = "gpio1", - .wakeup = 1, - .can_disable = 1, - .debounce_interval = 5, - }, +static const struct software_node assabet_gpio_keys_node = { + .name = "assabet-gpio-keys", +}; + +static const struct property_entry assabet_key0_props[] = { + PROPERTY_ENTRY_U32("linux,code", KEY_RESERVED), + PROPERTY_ENTRY_GPIO("gpios", &sa1100_gpiochip_node, + 0, GPIO_ACTIVE_HIGH), + PROPERTY_ENTRY_STRING("label", "gpio0"), + PROPERTY_ENTRY_BOOL("wakeup-source"), + PROPERTY_ENTRY_BOOL("linux,can-disable"), + PROPERTY_ENTRY_U32("debounce-interval", 5), + { } +}; + +static const struct software_node assabet_key0_node = { + .parent = &assabet_gpio_keys_node, + .properties = assabet_key0_props, +}; + +static const struct property_entry assabet_key1_props[] = { + PROPERTY_ENTRY_U32("linux,code", KEY_RESERVED), + PROPERTY_ENTRY_GPIO("gpios", &sa1100_gpiochip_node, + 1, GPIO_ACTIVE_HIGH), + PROPERTY_ENTRY_STRING("label", "gpio1"), + PROPERTY_ENTRY_BOOL("wakeup-source"), + PROPERTY_ENTRY_BOOL("linux,can-disable"), + PROPERTY_ENTRY_U32("debounce-interval", 5), + { } +}; + +static const struct software_node assabet_key1_node = { + .parent = &assabet_gpio_keys_node, + .properties = assabet_key1_props, +}; + +static const struct software_node * const assabet_gpio_keys_swnodes[] __initconst = { + &assabet_gpio_keys_node, + &assabet_key0_node, + &assabet_key1_node, + NULL }; -static const struct gpio_keys_platform_data assabet_keys_pdata = { - .buttons = assabet_keys_buttons, - .nbuttons = ARRAY_SIZE(assabet_keys_buttons), - .rep = 0, +static const struct platform_device_info assabet_gpio_keys_dev_info __initconst = { + .name = "gpio-keys", + .id = PLATFORM_DEVID_NONE, + .swnode = &assabet_gpio_keys_node, }; static struct gpiod_lookup_table assabet_uart1_gpio_table = { @@ -571,10 +598,8 @@ static void __init assabet_init(void) } - platform_device_register_resndata(NULL, "gpio-keys", 0, - NULL, 0, - &assabet_keys_pdata, - sizeof(assabet_keys_pdata)); + software_node_register_node_group(assabet_gpio_keys_swnodes); + platform_device_register_full(&assabet_gpio_keys_dev_info); gpiod_add_lookup_table(&assabet_leds_gpio_table); gpio_led_register_device(-1, &assabet_leds_pdata); -- 2.55.0.rc2.803.g1fd1e6609c-goog