From nobody Thu Jun 11 11:41:48 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 14055370AF6 for ; Thu, 11 Jun 2026 07:59:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781164779; cv=none; b=llcbZlAO5OAvwoBiTkh2wfCNEkYUuBQzB8pR/jN1ti47wuUrq3AcuIDSirtgewjhJ7h2/wbeTIL0PU10MhIzlgWmyFNaZ0LF/iN7J8Bb4YozvWlX0IVT3MRSMLaaPG2Zh8tYOcogK9CeV2qeMdTcml0igwDNirZw0XlCoOpXsfQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781164779; c=relaxed/simple; bh=TQtFKCOmoqHVRilmemMhgy7z806/olBoFfaicpx6Ac8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:Cc; b=KGMuRKBQwo842DDvIMqS+OwfG1QuCY22LVq+CYNh3O1hArzGCJLzyOwmue3vkAfNPpY9k7Ds0cpckFtfscwOqaYrLI1WbmNS0TnXAE4PGXSTLfxOKQ/3UoMu6g4VhqHCMP7nazVsz7iYDzQ2mVmMCtHliqtqvyl9Z5Me3DPTsyc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=CW8t0u6W; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=UkPpg7/a; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="CW8t0u6W"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="UkPpg7/a" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65B5GQ413835154 for ; Thu, 11 Jun 2026 07:59:37 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:message-id :mime-version:subject:to; s=qcppdkim1; bh=mFWFlMQo5EUhKmmTD/ETco TsOttNYYuuP7ZOAXtIQQI=; b=CW8t0u6W4lszNHrVyRFMngg4t7nV/fzNIxkWhz QwSHgJDZ89nMFzcVXAOu7JPgaxSqeXSeluvp5WXHoUpYWCuBCUpHKgOQ3cSuizUm QHkW4WelfnuWoHFqhRuJrPt2m2njLJXiRNP84LzHWH3yEnj5FYy7KRPUD7GJ4QWB EMSO2LKoOkczje3P4nwON3F/lYI20bjYyPMpBDcg2AyxTCM2tWjgpuM9QzpWNxJw fRocAnbCrL8AVuppD34pohZ+nExvVj3kczdS93eJYR4z1H5Krb0j0Z/V81z83VJv A9Kr0GQL6/W49zdiGBRXPTM1pVtdiurJOdQotH+uDeo7RxSQ== Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4eqe6tjbqd-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 11 Jun 2026 07:59:37 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-5174a23afcbso95252761cf.3 for ; Thu, 11 Jun 2026 00:59:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781164776; x=1781769576; darn=vger.kernel.org; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:from:to:cc:subject:date:message-id:reply-to; bh=mFWFlMQo5EUhKmmTD/ETcoTsOttNYYuuP7ZOAXtIQQI=; b=UkPpg7/aWK2907WJO4ed1waJi6UynKFl94eMln9Jn12I7pldf0HWCQQFEv4NwKe4bw x2Dujpn565MC4E/ZwtSFODzkOEm2Kbkv3YXi5YdaePgoo7NYaZENxBUec4Zwkt8+aDGi hUUmnhGm8OUn5GaBswjWslsjYu6O3MpxKrgJkJm6a0VcgfvCsno+WtZZNpR+7qcYYu5j sz+HYqSnwJNBCyZqcncK+SNrcoWhn7lJBP9hCVNyFzTPGIGMP2J0BF4qpicnUSdnaF8U zmgy92uIxdzo8j40ZGDIfv3Pzuh56Dl6DRetKJ43v/hwTAx3Z+WjRuTfDh1KjUoAY6/j HUQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781164776; x=1781769576; h=cc:to: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=mFWFlMQo5EUhKmmTD/ETcoTsOttNYYuuP7ZOAXtIQQI=; b=abo9IAJmAUJTImis/weh9P2eyb0+nbyNfwS35r89Ndbv7r4N56AVyNcYqX0E1qZEp+ CykvGM7iTscWHle8ylAy6XHcCgKCqw0cKuWSoFMIvJOmChCaTVgPfkGvhL9CAv4Al2jS dMUDxP/+396mrE6JGnPqy7Jg5OmxCkyLrcKujiDN+iRZ7VClFocBin9VPtqhk5CEyuLl hCH3s01psq7VOoKxll56YfoBQjB14b/wulClofYeMnXwC5LN9ao9Prh4W2nhVlo8x7BV qz3uHNBEo7nAUjNdgSrZTV2Z78yIMQwk0SDSJgCnkt2BMrUlVUZk4Q/7khq9/U3hBx3o Ccpw== X-Forwarded-Encrypted: i=1; AFNElJ+mO1BPTw29Iaw0HgIVk+skXWbOCm1sqNZrPHQ8jzrQfmVKRYlJrZA7JjETCWAQ5nv1KVICXhZRPJTL0mQ=@vger.kernel.org X-Gm-Message-State: AOJu0YysEioTbx0W6Ys/7/HeQQcv2it7ymvkjckGKKMwV0ZNNHVgxMPv KSC49hSqJizpZu+v139DDll9zLcltA4wk6Xe+Pbpb6u1ekvbGos7oAArA81RQiBJyDGZOprPYSY on4t5jm8ddL8PWuZuVCY/FGfWwy3+DRQ22YjHeEuGi/XfFlrUHc7zIKxWVrLK1nHhe70= X-Gm-Gg: Acq92OHs0FTSFNx+7jPAyhqawRkaeTE3VCZPxHLkqdF6rFtfFQls8s0Dw5a7/pPBbhP POX53gddWAHdgeqMwzqVZy+fQiPWl4KIx8IqKij/f9tR37mypDZ+sOs2lOXr015ZSFoByuJGQ4p UgtzUYZGM4bdXSfOG1YR1PAJwmfcuEqsjPo/Kf+r2uPnZUnKFIK6qg+ZUkg0MwCA0dlEnHH7cXd Bnwb92mPzkWZMdKhgFmfKuzy2Gsp1M4c7wsO5Yntr9eD04DOjPMa2BLgsHAGf1wsmW6H/VDraGL /rb1bvJlmYHRN+2XlpJWWelR4a6NIr8YiCHOf+RwH2SiFYhjtJPsrvQ8/ZQdDEjvDUzPz7BLUp/ 0YvRObe9fo6cXFOM2le9z/04o98Xfuu3TZDwlBaO0QS7cCgPKIL8GnC3qWdfYNA== X-Received: by 2002:a05:622a:1c1b:b0:517:9206:10fd with SMTP id d75a77b69052e-517ede2c5ebmr26802681cf.16.1781164776263; Thu, 11 Jun 2026 00:59:36 -0700 (PDT) X-Received: by 2002:a05:622a:1c1b:b0:517:9206:10fd with SMTP id d75a77b69052e-517ede2c5ebmr26802391cf.16.1781164775804; Thu, 11 Jun 2026 00:59:35 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:27a4:5f8b:adef:25f4]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-4601f351d69sm137486102f8f.29.2026.06.11.00.59.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Jun 2026 00:59:35 -0700 (PDT) From: Bartosz Golaszewski Date: Thu, 11 Jun 2026 09:59:27 +0200 Subject: [PATCH v3] x86/platform/geode: reference the real node of the cs5535 GPIO controller 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: quoted-printable Message-Id: <20260611-cs5535-swnode-v3-1-2b0c517c0c03@oss.qualcomm.com> X-B4-Tracking: v=1; b=H4sIAN5qKmoC/3XMTQrCMBCG4atI1qYk06Y/rryHuGiSqQ3YRjMal dK7m3YjiG4G3oHvmRhhcEhst5lYwOjI+TFFvt0w07fjCbmzqRkIKEUBDTekVK44PUZvkYuuyqU FrVEKljaXgJ17rt7hmLp3dPPhtfJRLt9/UpRccNBGoaysNV2z90TZ9d6ejR+GLB22gBE+iAL4R oAnptag27Ko69L8QOZ5fgOFmk0T9gAAAA== X-Change-ID: 20260429-cs5535-swnode-0f731d2bbe10 To: Lee Jones , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, "H. Peter Anvin" , Dmitry Torokhov Cc: brgl@kernel.org, linux-kernel@vger.kernel.org, linux-geode@lists.infradead.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=5780; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=TQtFKCOmoqHVRilmemMhgy7z806/olBoFfaicpx6Ac8=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBqKmrh35yRpDBFmMzb546HJ9+qLbNv/VPaVG7mr CP5ZxCD7YKJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCaipq4QAKCRAFnS7L/zaE ww6XD/4215AyXG02A6fIwgJ417GDWZMnq0E8YcSXVc1bYZ3e4CyxCy5wUQ5w98vVjX7nwIpq06f UTg3fljwb8M3wbKJvh0+c0388uK7zrHNZg+9AdtQsFDC+RM+joJ4U7VjC+/8n3f6AY1PFIF+sxg P51Qit/opdgFzbNYqVsd2fk40U7OdU/CDhFGidn90yPFiQlbXRlfpM5kKPAQInJsaYaZ+FLkexm yVSiBx45I7WH73Proc3EpMp2fLX6jNxvdk5Ln3w+AsL4j571OUPFrSvOo/k4lQeajFEAZ5kpno2 3QlVtqJjlYgpXWULGuHN6zHVRcCfGJd/iRHdJexTLk2GW51qmKRj3z25quQKTkcdumYuZ6JNjMJ xQsLuHPbR4domo2Axs/nL9/1F17ZKwAzYxxtCNAYHYhxllwzQ6BgQ7PjlXM0bGFS9yUMhloeGO1 sWAZT1qKDpbi6OZtg/AuE1HxGNgdXzBy7KOmRa5fA2zINEvR5j/kg8o37NyICIQW5g6yFG6xzD3 LPVDv8bLOiye4ZhLcItPmCXBcdUTIK5aac/Y4FmxBdKdKk59LuHewtFRUiHVfYIizGURQcPiMO2 KvdR9wlBlkUuUd8Y92VlWZ3lMB81XaFZa6qj8d8pSRjpD2xw48oGn02g+K+HZb2Xj0gj6NDD5io Acigg14TMGUiYwg== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjExMDA3OCBTYWx0ZWRfX7+Huekl9AkJQ E5LLG/elIeabbmn0q+gzcmsL7xlGF5qhyX5LV94f1/10JDLQ9WQpfhArQ/xL2Pr7hMazTRAzIri JpiM6cBfshJGwRDVqBerk/IKbzd6O/NDK+K3RtvFnf9qzDsSbp/+YCp1q6UPesH+GZ0VMfxwRrU 488uvRy6eQOuPekHwzytzTJA23ND+STXPJ6J6kkPqzaW+jEekq+XtZ7pPTw9wG67g0a1p0cOxZr JL9h16++Jbi998pyTVaPY4uNzQCfuttu1T/rIdIlhZjHKwEXT+Yfu3Pu7F2bVnWpJjDzkI3YMz3 8oPknWTqv84Gwi00h/QpaKFvYTMv/D6xT7TWsCC1NyQXGdIwOPMEoREe+mW3zXd59lYuM6swmyv 6NR+MBShwLvHMUF7VRBxScKmFCJ+mDbhNynHDhzf/LURRIP/9PTWzbJei64d17VTaAaBGuy7ZZo ph0AAVAuu975iH/KjKg== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjExMDA3OCBTYWx0ZWRfX/z+6uBfU5dHx clIS1yz46gNkWXn7n0+BLpmI0W56DJdmiSOBS+ffgZsadp8XNEKMM1wbmYkLboesea4wPO8a/Cd ukV8RPF/KyNHNPPRBr7Fco8F2OcqrIA= X-Authority-Analysis: v=2.4 cv=AaiB2XXG c=1 sm=1 tr=0 ts=6a2a6ae9 cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=bC-a23v3AAAA:8 a=EUspDBNiAAAA:8 a=qz97_4m3nX-lOID07f4A:9 a=QEXdDO2ut3YA:10 a=uxP6HrT_eTzRwkO_Te1X:22 a=FO4_E8m0qiDe52t0p3_H:22 X-Proofpoint-ORIG-GUID: GySqGbHf4inXRGVo6lLCTheoFApk7f1O X-Proofpoint-GUID: GySqGbHf4inXRGVo6lLCTheoFApk7f1O X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-11_01,2026-06-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 phishscore=0 impostorscore=0 priorityscore=1501 bulkscore=0 clxscore=1015 adultscore=0 suspectscore=0 lowpriorityscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606040000 definitions=main-2606110078 GPIO software node lookup should rely exclusively on matching the addresses of the referenced firmware nodes. Commit e5d527be7e69 ("gpio: swnode: don't use the swnode's name as the key for GPIO lookup") tried to enforce this but had to be reverted: it broke existing users who abuse the software node mechanism by creating "dummy" software nodes named after the device they want to get GPIOs from, without ever attaching them to the actual GPIO devices. Those users rely on GPIOLIB matching the label of the GPIO controller against the name of the software node rather than on a real firmware node link. Un-reverting e5d527be7e69 therefore requires converting all such users to real firmware node lookup. The geode board setup is one of them: it references the cs5535 GPIO controller through a locally-defined dummy node named "cs5535-gpio". The cs5535 MFD driver now exports the software node associated with its GPIO controller cell as cs5535_gpio_swnode. Use it as the target of the GPIO software node references in geode-common.c instead of the dummy node, so the lookup resolves by firmware node address. As the referenced node must exist at lookup time, make the cs5535 driver built-in for all boards selecting GEODE_COMMON (depend on GPIO_CS5535=3Dy). The node is exported in the "CS5535" namespace, so import it in this module. Signed-off-by: Bartosz Golaszewski --- This is a follow-up to the MFD change that exposed the software node associated with the GPIO cell of the cs5535 MFD device. Merging strategy: it's probably too late for Lee to pick it up but with an Ack from the x86 maintainers, I'd still like to queue it through the GPIO tree for the v7.2 merge window after the MFD pull request goes upstream. --- Changes in v3: - Reworded the commit message as requested by Borislav - Link to v2: https://patch.msgid.link/20260522-cs5535-swnode-v2-1-08b2ba64= 886c@oss.qualcomm.com Changes in v2: - Drop the MFD patch that's already in linux-next - Rebase on top of current linux-next - Rephrase the commit message, mention the namespace import - Link to v1: https://patch.msgid.link/20260429-cs5535-swnode-v1-0-2bc5e17d= dcf9@oss.qualcomm.com --- arch/x86/Kconfig | 10 +++++----- arch/x86/platform/geode/geode-common.c | 12 +++++------- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index f24810015234e00a441645f61648ce9aa174a293..63c31b91341bd50f57626d44ad3= 4648a25233393 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -3028,7 +3028,7 @@ config GEODE_COMMON =20 config ALIX bool "PCEngines ALIX System Support (LED setup)" - select GPIOLIB + depends on GPIO_CS5535=3Dy select GEODE_COMMON help This option enables system support for the PCEngines ALIX. @@ -3036,21 +3036,21 @@ config ALIX ALIX2/3/6 boards. However, other system specific setup should get added here. =20 - Note: You must still enable the drivers for GPIO and LED support - (GPIO_CS5535 & LEDS_GPIO) to actually use the LEDs + Note: You must still enable the drivers for LED support (LEDS_GPIO) + to actually use the LEDs =20 Note: You have to set alix.force=3D1 for boards with Award BIOS. =20 config NET5501 bool "Soekris Engineering net5501 System Support (LEDS, GPIO, etc)" - select GPIOLIB + depends on GPIO_CS5535=3Dy select GEODE_COMMON help This option enables system support for the Soekris Engineering net5501. =20 config GEOS bool "Traverse Technologies GEOS System Support (LEDS, GPIO, etc)" - select GPIOLIB + depends on GPIO_CS5535=3Dy select GEODE_COMMON depends on DMI help diff --git a/arch/x86/platform/geode/geode-common.c b/arch/x86/platform/geo= de/geode-common.c index 1843ae385e2dc038fde6fb02f6de0b818e22d8dd..679b4b07b790db3ce1c06bd6639= bba7516ca3f71 100644 --- a/arch/x86/platform/geode/geode-common.c +++ b/arch/x86/platform/geode/geode-common.c @@ -9,15 +9,12 @@ #include #include #include +#include #include #include =20 #include "geode-common.h" =20 -static const struct software_node geode_gpiochip_node =3D { - .name =3D "cs5535-gpio", -}; - static const struct property_entry geode_gpio_keys_props[] =3D { PROPERTY_ENTRY_U32("poll-interval", 20), { } @@ -44,7 +41,6 @@ static const struct software_node geode_restart_key_node = =3D { }; =20 static const struct software_node *geode_gpio_keys_swnodes[] __initconst = =3D { - &geode_gpiochip_node, &geode_gpio_keys_node, &geode_restart_key_node, NULL @@ -66,7 +62,7 @@ int __init geode_create_restart_key(unsigned int pin) struct platform_device *pd; int err; =20 - geode_restart_gpio_ref =3D SOFTWARE_NODE_REFERENCE(&geode_gpiochip_node, + geode_restart_gpio_ref =3D SOFTWARE_NODE_REFERENCE(&cs5535_gpio_swnode, pin, GPIO_ACTIVE_LOW); =20 err =3D software_node_register_node_group(geode_gpio_keys_swnodes); @@ -143,7 +139,7 @@ int __init geode_create_leds(const char *label, const s= truct geode_led *leds, goto err_free_names; } =20 - gpio_refs[i] =3D SOFTWARE_NODE_REFERENCE(&geode_gpiochip_node, + gpio_refs[i] =3D SOFTWARE_NODE_REFERENCE(&cs5535_gpio_swnode, leds[i].pin, GPIO_ACTIVE_LOW); props[i * 3 + 0] =3D @@ -188,3 +184,5 @@ int __init geode_create_leds(const char *label, const s= truct geode_led *leds, kfree(swnodes); return err; } + +MODULE_IMPORT_NS("CS5535"); --- base-commit: 550604d6c9b9efc8d068aff94dc301694a7afdee change-id: 20260429-cs5535-swnode-0f731d2bbe10 Best regards, --=20 Bartosz Golaszewski