From nobody Thu Apr 2 20:53:06 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 E7E092F12DA for ; Wed, 18 Feb 2026 10:48:14 +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=1771411696; cv=none; b=Ue9inkryVEETxIaly13PwzdcAsmuEX4OFi4J1b9j+Xoz41a60aRsufe9wqJlazW9ByWNEkiWl17HHl+jwMIy4+bsU3twl6/97EBOkw6ZV6qEMphikUz/WfHIA4JewQEr3CEPcoJT7Ks5yWHDzQz3zK14aAxPCKBuGpnEq6BJQjE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771411696; c=relaxed/simple; bh=p4I6eLgGRPjOxVMeO7n0rnhs9k1EdCulGiDJHuM75Po=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=PG4uAEvrUjM0EJqDbOTz8AmCJs5KWtq35vfvn9mBDZwuu/rtfidm8wqdif7oPprUQWWUgxPvZ+QEIoBKIjUMo3t1jeA6vopFMF119G+Oyf7SPrnGmMHiBxhEkObNGMPlYZIf4Qqjha6dtkF/n94eI3XQ7wBtGSQGol7n2hrtcsw= 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=TI0XJwyk; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=SlmNnMfk; 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="TI0XJwyk"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="SlmNnMfk" Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 61I8ihoN3380400 for ; Wed, 18 Feb 2026 10:48:14 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= LsNgWrsWp7kwiLVZlGJPzPg13q4/xkGmWurk0RM732M=; b=TI0XJwykUWalujq8 g/QypjBKF0DW7TgbglGx4t8iEgHEzgM+wd7z0Zy3Q8xdTpGUz+weDkD/+POEEQIX nuvEvmFTVtH5HlzBz9zYqvDaH+PlThRAdMa/v4M7KY53lwSWK33Ey1B0ilCwUqLW muq1/BcmmlVS10ygQSS4tvZMzPiWH1uDixFcNXqrbRiWbDfD0IVTkQrj8I7ukMDe YwdUda9mitmqq2MEkNKC5EC+ujGDdx3ihjkANTYtVT7rXAeLiDjZ0TjzGfYzsch0 CPQkNSgfLq0tK2cxCTHKGze7E57HvjnCGKVcWmW1C7SgULsMSJZTFrxqGoXbuiJT 6XL5sQ== Received: from mail-qk1-f197.google.com (mail-qk1-f197.google.com [209.85.222.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ccxnyj3va-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 18 Feb 2026 10:48:14 +0000 (GMT) Received: by mail-qk1-f197.google.com with SMTP id af79cd13be357-8c71500f274so565876485a.1 for ; Wed, 18 Feb 2026 02:48:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1771411693; x=1772016493; 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=LsNgWrsWp7kwiLVZlGJPzPg13q4/xkGmWurk0RM732M=; b=SlmNnMfk9VIxZ525H2FvxR8b+NNo9L7Vs+B1tluKMNR6DI1M41ADBBoXEkhVsbCioz VouuB4vyPFDIw6s8Oy54EFb1/U97nc2QYU6e5dknnZ8pOzo1ejSlRU1L5sLJyAYmdKJZ vyZ3v3NwzqzrR7/7bOJIN1UoWfokRn8ofJeF5bQRphSajMPdfUJFnvO1sOTILGGOiEMi dVS9q85Lb42h/YfKDs2oq40mMtY+L8rnvRtlUMnjtyGkqi/ULmpRAg6aR9FSLwO7dg5B 8tKzVylqmXOuV4bgYMm+bRkcrff8K10eoejWblAdbjP8/9a5yFTlIS269C5GCpCAIZuQ w22w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771411693; x=1772016493; 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=LsNgWrsWp7kwiLVZlGJPzPg13q4/xkGmWurk0RM732M=; b=Z3DeyEQlcaf+yMtdtxHeyNocMoYx9mLuZl+wie0jFttu0LbFNswk5sSdahkBBIQ4d/ 9pdirWiJOMf60iyLLhp9NhlY5AzPQfgJ7NH4XL6jAmHvDDWZ5EBGHseHFgJy4/d18xfP x8+8XIwBeXzaDVWT4czsh+5RsVC8fsv1U8IESfRejoD7ymYlBX6H/H1nM9couPV0fkSg +Beu3BcQB1nXChuGfQ2Afel4s+LCJJR0eRAqdDqcvixpDvE4CvIM+YBvqW84amZik916 9pg7zVoiMViEzxMcRuKIETQhR8DyR65glTujx2uNHWE/WkSOrHvHnQcJQ37KIChhjTMi wrkw== X-Gm-Message-State: AOJu0Yz3u4sXCHDLD0VIpI+qz9lXTOlbG2XdBe1SGbwh9iTH+5eHJV1H y/LeQ3Nw9d+BTr7QeF2FuZBKG+VYhqk5dcO4S5cwh8vSlWQeMn7vKEnx25AYgizRuOzy1fPPMPe 9Pg3/QPNDyuC8WQOn+1ALZO4/SYlT9guFuxZcPubOf8OrP9JDxtMHCYSc3ebBRhPy7SQ= X-Gm-Gg: AZuq6aK1J/5wwkqrkoZnpvSv86P6oPD82XJyr3VoYwaNyV0eAGTc/NJKDuWToqkNRfn cXhebUdSSEyscLEST4ycjbgrvql0atlnx3egBUlLO/jm7bvUz1VSX0iHo54ougzcUTYtXBqzCLP 00EXfmeG+g3fzAmNOCYX8sXz+NBHvqUm5FImrHCL9otdBGFU9kupdPboozdF9e9UpivRx+iNE1N 0NjrlmAnPyZE+agXvkowEx/ScXqckyenuhKjE+vKS3tI9dSspMhgRQqwLoGiLGDU2vetPUFKc8O p8wFPpnGMf3vInrbMlyM+pJ/ywkzqsEEa9QqXiJuXZh6waKuPnbTAx5XAnm0SgDAAgI5vuw3Gjv p3VD5kIJrQYhnZJCgCWkNBuvRib8r6Ny2oqc/4ozer4S+DRBDq/Y8 X-Received: by 2002:a05:620a:1a17:b0:8c6:d309:f9c0 with SMTP id af79cd13be357-8cb7401cf12mr156573985a.8.1771411693274; Wed, 18 Feb 2026 02:48:13 -0800 (PST) X-Received: by 2002:a05:620a:1a17:b0:8c6:d309:f9c0 with SMTP id af79cd13be357-8cb7401cf12mr156571885a.8.1771411692806; Wed, 18 Feb 2026 02:48:12 -0800 (PST) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:6f70:9a29:d138:f5ff]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43796ac8d46sm41907451f8f.32.2026.02.18.02.48.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 18 Feb 2026 02:48:12 -0800 (PST) From: Bartosz Golaszewski Date: Wed, 18 Feb 2026 11:48:01 +0100 Subject: [PATCH v2 1/2] mfd: lpc_ich: expose the GPIO controller cell's software node 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: <20260218-meraki-swnodes-v2-1-92c521da241c@oss.qualcomm.com> References: <20260218-meraki-swnodes-v2-0-92c521da241c@oss.qualcomm.com> In-Reply-To: <20260218-meraki-swnodes-v2-0-92c521da241c@oss.qualcomm.com> To: Peter Tyser , Lee Jones , Hans de Goede , =?utf-8?q?Ilpo_J=C3=A4rvinen?= , Dmitry Torokhov , Andy Shevchenko , Greg Kroah-Hartman Cc: linux-kernel@vger.kernel.org, platform-driver-x86@vger.kernel.org, brgl@kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2164; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=p4I6eLgGRPjOxVMeO7n0rnhs9k1EdCulGiDJHuM75Po=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBplZjnHR7sLlN5GWokwgAasf628dp9E0nYaxya5 FCsyzG1X1iJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCaZWY5wAKCRAFnS7L/zaE w2R1EAC8WSP2OVkIZpUEPEZm9JLCf+UxCPU6npJpKJSqsHPzuUt6LcDZywEgfGtg5EU1n4B+sQp FL5TDEAgtkOyvGL0wPfjlaJgVyp6VlRJsRV2/k2puuysSFpPS58IsEaalMaDOPlryqroR9FatRU iSM+3KnWlNRmsP50mPJy9fkXzHvHipTE+ljFLj7pPtYPJwu/p+3BvCW9ksi202V66MrR9U/g64n adUVVeKta8yOMuLY3gWwMNYuKtPOb2I6EyNpTnggbF1I8abc2eBIrMXwqAsrWE8AytgBW0khBzq 8O539Q+LvOSrIeS9qqWS94rfk5AI8YKppg7kKv+/fI/ZRunHlHlDP1mIJPxx8BnmbBb9hxSrHNR aSiYzqjzKLg0HoDtwb2+uNjpmNOULD1okZqiHV++sdc+Pf9fD/ToompMcw93YoddEePSNSnZv7p ZWnlw0VVoeSh3GG9gqTfSdaK/5EsZxOohvwiv7ingtnPQ8IsnIX6vLx8OLFIw6+LszOlsaUAEcG XPeujHq6vs8QBiCCfY6InZvKs+Kkw/9K8QThpnEgOaJV8cC177g+IAfWQ2KNC9NOxfjry1B194I otLP1LtPIKLkqoV9kKWkl9k2GbPRvP7joScZ9puQbya65tcqkO30+ihojuO2SxaTBGc+2540XLU a9gXt355mx8dn0g== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-ORIG-GUID: 8xEyaOU_3r9vjOcK6RC4zIbQEg5yhDYg X-Authority-Analysis: v=2.4 cv=Do5bOW/+ c=1 sm=1 tr=0 ts=699598ee cx=c_pps a=50t2pK5VMbmlHzFWWp8p/g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=QyXUC8HyAAAA:8 a=EUspDBNiAAAA:8 a=gkop4zNMY9-1AnXrjugA:9 a=QEXdDO2ut3YA:10 a=IoWCM6iH3mJn3m4BftBB:22 X-Proofpoint-GUID: 8xEyaOU_3r9vjOcK6RC4zIbQEg5yhDYg X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjE4MDA5NiBTYWx0ZWRfX5BrT7uB35sGj bpvU9mHMWAiv5TfuwOKnxh1PZhE+KytfiC9882+jZ/RowQN0nBrLSp7n7pET7GhpW+fXSukiFFm TCdDJjJLdbxF4WooUMk3MIuMMfBOZ3oi1gjLPMOmdmNGuwQHxpnS8qzz3atl5zfTmF7FH6qeoYK KtnOMtsG7Nll5OFOi9xXZioTNHQpKzRjkFE4xB9csKEbDGr9C2UMVpCynkhzOnx1tYFommtYH4h tTyApYYVca6mE6SGoQMVX1b1JHFyLYsltFWbAKEcvE5IUDHHICYIHgvM4jJtNduMOJm3g2nVatn 5/0uG7SGPqDzxvi2A6wWJDFvOCHLCs6HtVWDzkLX7/8PbVMwox6iCKR1wZo28IU0ln3k+Asx2AE 6qZeM0iYDUdKb/olJmLU6YVELuQEuGJjpsq70hM4DHC9ypZF7dF4tbthZOB4xtaUw/uSOoqLyFK sDMOEX5RdR/790uTS2Q== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-18_01,2026-02-16_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 impostorscore=0 phishscore=0 bulkscore=0 clxscore=1015 priorityscore=1501 adultscore=0 malwarescore=0 suspectscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602180096 One of the users of this driver - meraki-mx100 - abuses the software node API by setting up a dummy software node without any logical link to this GPIO controller and uses the fact that the GPIO core matches the controller's label against the swnode's name to make the lookup work. We want to remove this behavior from GPIOLIB in favor of actual matching of firmware nodes but that would break this user. To facilitate that: create a software node for the GPIO controller cell and expose its address in the provided MFD header. Acked-by: Andy Shevchenko Signed-off-by: Bartosz Golaszewski --- drivers/mfd/lpc_ich.c | 7 +++++++ include/linux/mfd/lpc_ich.h | 2 ++ 2 files changed, 9 insertions(+) diff --git a/drivers/mfd/lpc_ich.c b/drivers/mfd/lpc_ich.c index 4b7d0cb9340f1ac51bf3845427ba1dee8cad5667..5a3d79f339dd23994aee615c2dd= 6ef637e3c14a4 100644 --- a/drivers/mfd/lpc_ich.c +++ b/drivers/mfd/lpc_ich.c @@ -45,6 +45,7 @@ #include #include #include +#include #include #include #include @@ -125,11 +126,17 @@ static struct mfd_cell lpc_ich_wdt_cell =3D { .ignore_resource_conflicts =3D true, }; =20 +const struct software_node lpc_ich_gpio_swnode =3D { + .name =3D "gpio_ich", +}; +EXPORT_SYMBOL_NS(lpc_ich_gpio_swnode, "LPC_ICH"); + static struct mfd_cell lpc_ich_gpio_cell =3D { .name =3D "gpio_ich", .num_resources =3D ARRAY_SIZE(gpio_ich_res), .resources =3D gpio_ich_res, .ignore_resource_conflicts =3D true, + .swnode =3D &lpc_ich_gpio_swnode, }; =20 #define INTEL_GPIO_RESOURCE_SIZE 0x1000 diff --git a/include/linux/mfd/lpc_ich.h b/include/linux/mfd/lpc_ich.h index 1fbda1f8967db41ba3bacd331e5d18dfa8ebca3c..1819aa743c5c9aa1ac51710bbdb= befab50670ebe 100644 --- a/include/linux/mfd/lpc_ich.h +++ b/include/linux/mfd/lpc_ich.h @@ -37,4 +37,6 @@ struct lpc_ich_info { u8 use_gpio; }; =20 +extern const struct software_node lpc_ich_gpio_swnode; + #endif --=20 2.47.3 From nobody Thu Apr 2 20:53:06 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 BFDEB30274B for ; Wed, 18 Feb 2026 10:48:16 +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=1771411698; cv=none; b=h1A7VEGNB38fw3l+uN8eto2zF0ACQTNrcr30xbggzllMRmBKqWoUKir8AcH7wdk+g6HbfTfEJkbT8im5FvVhRPTI2iz7mZeCAQ6hDiwTczDXrCQbPIUaB4ny6tL8gdBhHuOMJFCdBvpyp8Hg8RU5XEzm6Wfk5VXQx+X5ZD9sNWM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771411698; c=relaxed/simple; bh=qSzMCH9vDuQrytwQS9UnczqlBXpwfFZ/nl87MpnPL64=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Hs0QwGv5CCL0MGQP+53ASEiPWCMEAomk7snN0RW2yKhBEkXctl7bU8Xaq8YWFt67HYBRK5ve2kItVD48Vn0UXqvmXz4K66CdkGFOzLUHyFxaIEEcavM2HUvXaqWfmj2ByhnNi8t+3fVgbkptkixuxn1iBFouysW9hJF7d0RJ9d8= 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=FA4kdaGV; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=FoeKhFex; 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="FA4kdaGV"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="FoeKhFex" Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 61I9LMEO2784789 for ; Wed, 18 Feb 2026 10:48:16 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= FRBvhuXzvtNk4uG53SKU5LRgXXVe4E52h4IWyqfGWO4=; b=FA4kdaGVDgT8te9r p78IjjRhMSkRXBQLuVGQpqW4kfFkGzW9NiCYn13n5qQbSoLUuj9tUnbVCIoqA1lc MM+pK5aCuF05buKzH/R0/y/hM9EPDPRdZp1q497Lg3T04fTcMmnP2GPcYed16G0j RjoLt0U+wOV9Mr/rsRSMDV1ZMg1Wy4r++WS4Wy0lz88j3QDtWdEY37z8qIx6ljfD NRRWWN9DJp7l46YG7q/2HLLLe4Rm9wbyiUp584uKMaKkj9CwOtVOm9yxHhaRdvaY lsrExXS92p4hyoO+Q/UwQqbbuKiUo5kAkkUHMfGl4zNhf8H5FgerhTXO9leikQCL FiGnOA== Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com [209.85.222.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ccyrk1w4m-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 18 Feb 2026 10:48:15 +0000 (GMT) Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-8ca3ef536ddso4114647685a.0 for ; Wed, 18 Feb 2026 02:48:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1771411695; x=1772016495; 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=FRBvhuXzvtNk4uG53SKU5LRgXXVe4E52h4IWyqfGWO4=; b=FoeKhFex4XGZVJctDRkUXh/Fd5zXtGt5xLLkYJG8S+Ja5dTb3YtWqydUUk1KbwacjO M41I1D8Uisopv7jEtUkbdXH66z+nUZ6N4BmWvcmVQBiyU+35VRXJexKT8/78yRx1RHNG s5sR8CTI+lQlFEguvk32YrIiqeZEg4p0CSS+/xeNpSwpwh9tgC6xgrz09Ll1aCitKlYm UpykczewBbAXgxNRM7MPDN4Hikh3vJWIU+vLIkCBIyKHfjATqSd1XnV5/0GlmJ7f7z9H R+lm73TSyHRqhMX9WTBTa9PqKGpZ/z4pSWmy2dPJd5xUElSVtd1NFjDEi9TmDFBwY21v mvTg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771411695; x=1772016495; 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=FRBvhuXzvtNk4uG53SKU5LRgXXVe4E52h4IWyqfGWO4=; b=rq1uFurMm+ImWqNSnr5LKBoMTMli6dZ3jtiNkQ+oPoirrMPjA0KVzaDJNQA8xKsijk sQdVywfaKrZDvFHvGW3gPpzSD4+4wrn1CmP30KNDzf5tjhI6htMdt+3RJTbh9B7jbuuO T5fqT/nfqEwA/lEM5RetBXqwXMHK4LQLo+03aZ1fV7Om4MiztbZ2j+cgk3iuDpToGSm8 zwTa/3fmiQretZ8FaLwRFaeFuzq4E4kMugMyAhLMAbWz5WXG6Tnh09Ab9CE7miqgekCp WodipmJ73xM6IaPO/1JIiMJj0+dcLC5ZC9wM60Vr2gR6wtLDR4K+DXL2+1bD7i03JGbe obdQ== X-Gm-Message-State: AOJu0Yxc69Hdt1X4Sxoj4X3ZmM8LD5wR1cw+YQklcceVSGr0Vpi23wur sfw4mPnJ32jJqwWdATOsM45y4wqZM6mW72IwnC+YYG6P8n+/+8o+KqFuF1ZGZxVMeO6wOB1ZR2s CKkC/nxPqzjtzZEgVBdCauYrVHBFJup7Y54Vm3xeEg5NdjJR9SIWzvU0H+crTDq4s1s8= X-Gm-Gg: AZuq6aL7aTDQ/22AXbw1lsi3bw+R39OqC+0fS+YqVqKGQvzvE3og6KoRlYZz8eRMnIR /uzboq4L7ca1zSFnEgrN4vuzsEC0NLBKb/MiFkHaZZz2vqZD6/Uql8AYWSJeloWqscKlICdK7FN HRKNZOMKj0eACj5tlrrP6M82MRkhJa9sStU6gGZ8yCCsVUFIxOkQTQzp1oTEE1xdyQNM1On6FIQ PUKPCVHXbjC1JfJp/q5T56ojbp2pjupKX40Q6oC15dtzdtIwBT5CVZZNdXZHbkSQ/u8xFd2jB42 ufGOY2MTXdUqVx/J1Szo/3e+3Uartai0qkEYGA2YVeTAlYfCRA6H0aZTmxH4yXjCIXcqcfYnYiz 4Qb+mRy8gCya/epMsYmvGUAJaLR3HllioBkueA/rE7RSuhvAlIYwz X-Received: by 2002:a05:620a:46a1:b0:8ca:4545:aedc with SMTP id af79cd13be357-8cb422b3a9dmr1878113685a.36.1771411694844; Wed, 18 Feb 2026 02:48:14 -0800 (PST) X-Received: by 2002:a05:620a:46a1:b0:8ca:4545:aedc with SMTP id af79cd13be357-8cb422b3a9dmr1878111185a.36.1771411694443; Wed, 18 Feb 2026 02:48:14 -0800 (PST) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:6f70:9a29:d138:f5ff]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43796ac8d46sm41907451f8f.32.2026.02.18.02.48.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 18 Feb 2026 02:48:13 -0800 (PST) From: Bartosz Golaszewski Date: Wed, 18 Feb 2026 11:48:02 +0100 Subject: [PATCH v2 2/2] platform/x86: meraki-mx100: use real software node references 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: <20260218-meraki-swnodes-v2-2-92c521da241c@oss.qualcomm.com> References: <20260218-meraki-swnodes-v2-0-92c521da241c@oss.qualcomm.com> In-Reply-To: <20260218-meraki-swnodes-v2-0-92c521da241c@oss.qualcomm.com> To: Peter Tyser , Lee Jones , Hans de Goede , =?utf-8?q?Ilpo_J=C3=A4rvinen?= , Dmitry Torokhov , Andy Shevchenko , Greg Kroah-Hartman Cc: linux-kernel@vger.kernel.org, platform-driver-x86@vger.kernel.org, brgl@kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=7730; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=qSzMCH9vDuQrytwQS9UnczqlBXpwfFZ/nl87MpnPL64=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBplZjpp+lt1rK+iVL5nqM3AjlfShTPdfEaSe0RT j/LtVxrbZGJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCaZWY6QAKCRAFnS7L/zaE w1/4D/4k1ArDcKQU6Vk+CQl8UzTWb6rV4yfJfADJWTzqeadW6kWQpeoBSiemZ4c6LmB9vX1KLyb K99QhrWNlmZUQfZAeT/uo7AnWQ58xVJiazMwRYmAS9FZznALr3SYBLvQSwZPqHvL9e5M0gKltTc AaDNaxlMxLZB089JZozqUF6DzEfksXrZbPfo9nkivzMYsUhGOTJh9F0gYvOli1t3F1Fy8E9+BqY HBTKf2nlfGOiHTRhYqh4FKa88v3BQN09DB2NYMzLMjFQr3XPp1sYMljb3TYVFAy4nfpToKRg5MZ LFK7HeaW/7BY1duB9GJenvI+8ep0OvTLKvMK0nvJlV0PpQ5C7WJVz1TWILOI5+mspjzSoaDea/K sduF3WvJQSM5Ng2guvhNCVwQmmQrDq5WhgS4FJRdHY+OiKBajQDQrqPfTtfFlz49PBXDbvQARoC iInWcpHeRAEfVYwtF5lmyeAw0+YkenM07CsY66YxdO/hRaFzxzffoLKJGfJRgJW5qtLf+T/WGPJ K8JBoWuimA/O9l42T2VWKlajmCBMa1N1ZguKvAD0EKH4wIerQdcE1XgzrGSCldkwz7mC6ri0K+l ku5gv0My2wk0zRqj4ZDaO58ZfHOMUWPBzYBvBzqOHYldbAiOKWLiiQdVqoaOxbnkd5ynJOiiM9L mtpHxCJ8qvRzgIg== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-GUID: Ia2vviWR8LY3Lw91bnmyzhTGRfGAbqNS X-Proofpoint-ORIG-GUID: Ia2vviWR8LY3Lw91bnmyzhTGRfGAbqNS X-Authority-Analysis: v=2.4 cv=eOweTXp1 c=1 sm=1 tr=0 ts=699598ef cx=c_pps a=qKBjSQ1v91RyAK45QCPf5w==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=QyXUC8HyAAAA:8 a=EUspDBNiAAAA:8 a=pGLkceISAAAA:8 a=3wPGFFiRJwkw2PFd6LQA:9 a=QEXdDO2ut3YA:10 a=NFOGd7dJGGMPyQGDc5-O:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjE4MDA5NiBTYWx0ZWRfX35ZRyojdCWqG AwAjjpdizFdyB42SqCLr0MiIuLWxcCpDBykYcsy4198NTUxgAH1suTHCNoyV5XMWn1ZF/wKVecm XkEB2VTWw0kBqstDA67vDmYJC74BXLL4XvDvUlZTSQ2DW8rn4Zt7OP1/+lEBujLD0jMdEEf36MJ bvGXy9w7lLvAr6/qyrJL22it5YHrtxjGHbmNo2b91GUQGN+hYJflIlsLWUMvZWpWv84O0/jMoSO u/PPV0uM92mdS9bOBQ8EUjPLtEMFima2WveFOsyUcPZ81AgieA6K52/cM1AMDfFyshHMHploFl/ 8Cvp938HZ2DtrZAxmrO5kvmDL9JDuWmhOwCWTLNsPcoc89t4OsTPjYcBd8ir8lSwjqWmP+OTupe YjiPtWTVDnYGGRaUgp85xiyAUKsGKBYTM0v7CGPa3hM3C25VhjjW8mgFw9aAQgDi6qe48HwjLXw R3vAlL8Z3O7acTJ3A0Q== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-18_01,2026-02-16_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 adultscore=0 bulkscore=0 clxscore=1015 phishscore=0 malwarescore=0 priorityscore=1501 suspectscore=0 lowpriorityscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602180096 The lpc_ich MFD driver now exposes the software node associated with the its GPIO controller cell. Remove the dummy software node from the meraki-mx100 driver and reference the real one instead. Acked-by: Andy Shevchenko Signed-off-by: Bartosz Golaszewski Acked-by: Ilpo J=C3=A4rvinen --- drivers/platform/x86/meraki-mx100.c | 41 ++++++++++++++++-----------------= ---- 1 file changed, 18 insertions(+), 23 deletions(-) diff --git a/drivers/platform/x86/meraki-mx100.c b/drivers/platform/x86/mer= aki-mx100.c index 8c5276d98512390effcc9f2258a6061684420d11..9f4caa1f3a923164eeaf31765a4= e83c874cff181 100644 --- a/drivers/platform/x86/meraki-mx100.c +++ b/drivers/platform/x86/meraki-mx100.c @@ -20,16 +20,11 @@ #include #include #include +#include #include #include #include =20 -#define TINK_GPIO_DRIVER_NAME "gpio_ich" - -static const struct software_node gpio_ich_node =3D { - .name =3D TINK_GPIO_DRIVER_NAME, -}; - /* LEDs */ static const struct software_node tink_gpio_leds_node =3D { .name =3D "meraki-mx100-leds", @@ -38,7 +33,7 @@ static const struct software_node tink_gpio_leds_node =3D= { static const struct property_entry tink_internet_led_props[] =3D { PROPERTY_ENTRY_STRING("label", "mx100:green:internet"), PROPERTY_ENTRY_STRING("linux,default-trigger", "default-on"), - PROPERTY_ENTRY_GPIO("gpios", &gpio_ich_node, 11, GPIO_ACTIVE_LOW), + PROPERTY_ENTRY_GPIO("gpios", &lpc_ich_gpio_swnode, 11, GPIO_ACTIVE_LOW), { } }; =20 @@ -50,7 +45,7 @@ static const struct software_node tink_internet_led_node = =3D { =20 static const struct property_entry tink_lan2_led_props[] =3D { PROPERTY_ENTRY_STRING("label", "mx100:green:lan2"), - PROPERTY_ENTRY_GPIO("gpios", &gpio_ich_node, 18, GPIO_ACTIVE_HIGH), + PROPERTY_ENTRY_GPIO("gpios", &lpc_ich_gpio_swnode, 18, GPIO_ACTIVE_HIGH), { } }; =20 @@ -62,7 +57,7 @@ static const struct software_node tink_lan2_led_node =3D { =20 static const struct property_entry tink_lan3_led_props[] =3D { PROPERTY_ENTRY_STRING("label", "mx100:green:lan3"), - PROPERTY_ENTRY_GPIO("gpios", &gpio_ich_node, 20, GPIO_ACTIVE_HIGH), + PROPERTY_ENTRY_GPIO("gpios", &lpc_ich_gpio_swnode, 20, GPIO_ACTIVE_HIGH), { } }; =20 @@ -74,7 +69,7 @@ static const struct software_node tink_lan3_led_node =3D { =20 static const struct property_entry tink_lan4_led_props[] =3D { PROPERTY_ENTRY_STRING("label", "mx100:green:lan4"), - PROPERTY_ENTRY_GPIO("gpios", &gpio_ich_node, 22, GPIO_ACTIVE_HIGH), + PROPERTY_ENTRY_GPIO("gpios", &lpc_ich_gpio_swnode, 22, GPIO_ACTIVE_HIGH), { } }; =20 @@ -86,7 +81,7 @@ static const struct software_node tink_lan4_led_node =3D { =20 static const struct property_entry tink_lan5_led_props[] =3D { PROPERTY_ENTRY_STRING("label", "mx100:green:lan5"), - PROPERTY_ENTRY_GPIO("gpios", &gpio_ich_node, 23, GPIO_ACTIVE_HIGH), + PROPERTY_ENTRY_GPIO("gpios", &lpc_ich_gpio_swnode, 23, GPIO_ACTIVE_HIGH), { } }; =20 @@ -98,7 +93,7 @@ static const struct software_node tink_lan5_led_node =3D { =20 static const struct property_entry tink_lan6_led_props[] =3D { PROPERTY_ENTRY_STRING("label", "mx100:green:lan6"), - PROPERTY_ENTRY_GPIO("gpios", &gpio_ich_node, 32, GPIO_ACTIVE_HIGH), + PROPERTY_ENTRY_GPIO("gpios", &lpc_ich_gpio_swnode, 32, GPIO_ACTIVE_HIGH), { } }; =20 @@ -110,7 +105,7 @@ static const struct software_node tink_lan6_led_node = =3D { =20 static const struct property_entry tink_lan7_led_props[] =3D { PROPERTY_ENTRY_STRING("label", "mx100:green:lan7"), - PROPERTY_ENTRY_GPIO("gpios", &gpio_ich_node, 34, GPIO_ACTIVE_HIGH), + PROPERTY_ENTRY_GPIO("gpios", &lpc_ich_gpio_swnode, 34, GPIO_ACTIVE_HIGH), { } }; =20 @@ -122,7 +117,7 @@ static const struct software_node tink_lan7_led_node = =3D { =20 static const struct property_entry tink_lan8_led_props[] =3D { PROPERTY_ENTRY_STRING("label", "mx100:green:lan8"), - PROPERTY_ENTRY_GPIO("gpios", &gpio_ich_node, 35, GPIO_ACTIVE_HIGH), + PROPERTY_ENTRY_GPIO("gpios", &lpc_ich_gpio_swnode, 35, GPIO_ACTIVE_HIGH), { } }; =20 @@ -134,7 +129,7 @@ static const struct software_node tink_lan8_led_node = =3D { =20 static const struct property_entry tink_lan9_led_props[] =3D { PROPERTY_ENTRY_STRING("label", "mx100:green:lan9"), - PROPERTY_ENTRY_GPIO("gpios", &gpio_ich_node, 36, GPIO_ACTIVE_HIGH), + PROPERTY_ENTRY_GPIO("gpios", &lpc_ich_gpio_swnode, 36, GPIO_ACTIVE_HIGH), { } }; =20 @@ -146,7 +141,7 @@ static const struct software_node tink_lan9_led_node = =3D { =20 static const struct property_entry tink_lan10_led_props[] =3D { PROPERTY_ENTRY_STRING("label", "mx100:green:lan10"), - PROPERTY_ENTRY_GPIO("gpios", &gpio_ich_node, 37, GPIO_ACTIVE_HIGH), + PROPERTY_ENTRY_GPIO("gpios", &lpc_ich_gpio_swnode, 37, GPIO_ACTIVE_HIGH), { } }; =20 @@ -158,7 +153,7 @@ static const struct software_node tink_lan10_led_node = =3D { =20 static const struct property_entry tink_lan11_led_props[] =3D { PROPERTY_ENTRY_STRING("label", "mx100:green:lan11"), - PROPERTY_ENTRY_GPIO("gpios", &gpio_ich_node, 48, GPIO_ACTIVE_HIGH), + PROPERTY_ENTRY_GPIO("gpios", &lpc_ich_gpio_swnode, 48, GPIO_ACTIVE_HIGH), { } }; =20 @@ -170,7 +165,7 @@ static const struct software_node tink_lan11_led_node = =3D { =20 static const struct property_entry tink_ha_green_led_props[] =3D { PROPERTY_ENTRY_STRING("label", "mx100:green:ha"), - PROPERTY_ENTRY_GPIO("gpios", &gpio_ich_node, 16, GPIO_ACTIVE_LOW), + PROPERTY_ENTRY_GPIO("gpios", &lpc_ich_gpio_swnode, 16, GPIO_ACTIVE_LOW), { } }; =20 @@ -182,7 +177,7 @@ static const struct software_node tink_ha_green_led_nod= e =3D { =20 static const struct property_entry tink_ha_orange_led_props[] =3D { PROPERTY_ENTRY_STRING("label", "mx100:orange:ha"), - PROPERTY_ENTRY_GPIO("gpios", &gpio_ich_node, 7, GPIO_ACTIVE_LOW), + PROPERTY_ENTRY_GPIO("gpios", &lpc_ich_gpio_swnode, 7, GPIO_ACTIVE_LOW), { } }; =20 @@ -194,7 +189,7 @@ static const struct software_node tink_ha_orange_led_no= de =3D { =20 static const struct property_entry tink_usb_green_led_props[] =3D { PROPERTY_ENTRY_STRING("label", "mx100:green:usb"), - PROPERTY_ENTRY_GPIO("gpios", &gpio_ich_node, 21, GPIO_ACTIVE_LOW), + PROPERTY_ENTRY_GPIO("gpios", &lpc_ich_gpio_swnode, 21, GPIO_ACTIVE_LOW), { } }; =20 @@ -206,7 +201,7 @@ static const struct software_node tink_usb_green_led_no= de =3D { =20 static const struct property_entry tink_usb_orange_led_props[] =3D { PROPERTY_ENTRY_STRING("label", "mx100:orange:usb"), - PROPERTY_ENTRY_GPIO("gpios", &gpio_ich_node, 19, GPIO_ACTIVE_LOW), + PROPERTY_ENTRY_GPIO("gpios", &lpc_ich_gpio_swnode, 19, GPIO_ACTIVE_LOW), { } }; =20 @@ -230,7 +225,7 @@ static const struct software_node tink_gpio_keys_node = =3D { static const struct property_entry tink_reset_key_props[] =3D { PROPERTY_ENTRY_U32("linux,code", KEY_RESTART), PROPERTY_ENTRY_STRING("label", "Reset"), - PROPERTY_ENTRY_GPIO("gpios", &gpio_ich_node, 60, GPIO_ACTIVE_LOW), + PROPERTY_ENTRY_GPIO("gpios", &lpc_ich_gpio_swnode, 60, GPIO_ACTIVE_LOW), PROPERTY_ENTRY_U32("linux,input-type", EV_KEY), PROPERTY_ENTRY_U32("debounce-interval", 100), { } @@ -243,7 +238,6 @@ static const struct software_node tink_reset_key_node = =3D { }; =20 static const struct software_node *tink_swnodes[] =3D { - &gpio_ich_node, /* LEDs nodes */ &tink_gpio_leds_node, &tink_internet_led_node, @@ -348,3 +342,4 @@ MODULE_AUTHOR("Chris Blake "); MODULE_DESCRIPTION("Cisco Meraki MX100 Platform Driver"); MODULE_LICENSE("GPL"); MODULE_ALIAS("platform:meraki-mx100"); +MODULE_IMPORT_NS("LPC_ICH"); --=20 2.47.3