From nobody Thu Apr 9 12:08:37 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.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 687033BD62F for ; Mon, 9 Mar 2026 12:43:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773060196; cv=none; b=DzzWi0LZx9BsqEiQ+Nr95pBRvUmPPDuwygNeBjQHQM0CfOi652H8J8IV2qQqJPi/f3sqU770WbxDsQY2LBxwtarjqSMgz+GmSRukae11KlsGpHc83RkU7F6ksDkiHlRKN6PZFEaq/7jTM4crF2OnU4kvsfQ/7clPuvgp7J2Nj3g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773060196; c=relaxed/simple; bh=R4Ywu/pAKIvIVEZDR6pAqvPYf0v/XCn2dkIco/jqnjY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Uh5olFp7cnPrRXrNg689C/SMaVRxLxbo+RuaXFjwzsrzUxIgpUsY0g0cpJ8B5CrWyaXwr3mD9gCwnTBmQejCyyCNF49hrHc6Z/6wgDpIMr06AHV3CwsfrqpLWUne7FwScRLMWGWylKg+6oQXIGcq+8QZuHDFzoOhKOiVtCU3HUU= 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=keI0l7AZ; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=YbTNz15L; arc=none smtp.client-ip=205.220.180.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="keI0l7AZ"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="YbTNz15L" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6298WB3u3773182 for ; Mon, 9 Mar 2026 12:43:11 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= 4+44pNLvKD6wmlyUHopw7JCev4MUbKdOMecmtcoK78I=; b=keI0l7AZufa5NJR9 FxGOQJ82CTfr4mFRHFugkpK3cXX+IIsYH5lra08dS+9AK9XSvgBD5JKR2q6iWWuZ G8MRhRAlcnvmPlUbQKn47suu4v6aPEvDVZv8G8kqBAA05GiP/GR3mwa/R6A0hBk8 DvgFbcQbQ/V/rgisY+O9yAaHxvTChxp8wpZ8PVrlzO1OPGydIInKtfEhGUhftXU6 eUiH8X4FzkJMa/99XU6OgK67g3k5UqBsez9pUt6e04/tmfM0KdwodjRo3xWzoqs+ lgk29vdKF1kcH+bRQQBndZoexA0ScP6R/hBdKJRSK5k1SzCBs9R9qf94OesuLpDa 1EIqxw== 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 4cstsa8urb-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 12:43:11 +0000 (GMT) Received: by mail-qk1-f197.google.com with SMTP id af79cd13be357-8cd7d66afceso991204585a.3 for ; Mon, 09 Mar 2026 05:43:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773060190; x=1773664990; 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=4+44pNLvKD6wmlyUHopw7JCev4MUbKdOMecmtcoK78I=; b=YbTNz15LnNMMkisg21hFJps1dDul6em0VMvPTSben8utXN3ZBrmZKR/KyizmTEB2zE FP4ULGR+UGmgV9+56Axwee5F+B5O4b0Pg/VBAVIPCFiHQKsV9K0mI8SGidkn2WWGJ+Oi 9d8Elw2oTxjzQJXRp63ymzXr7TTjv5KtJY35OZPGFD41T2MXy4XYjHwrkCMbylQTimV2 p0XG80Cjq1PFBumXp603kCWt0IoJAYXBYmCoBn/s7eyGQi/leNiAZzkBoQpQeRtbyECO gxPqg+NMnWSV1O+75+EJmn/MutUUSIynm4SvSLkob+3w/PlGM2QIWEFvLRgvA9MT073L R/Rw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773060190; x=1773664990; 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=4+44pNLvKD6wmlyUHopw7JCev4MUbKdOMecmtcoK78I=; b=hGZF2PgyZky4tJ2vvlW1fC6XfnWKeYL+YwCD/EIWhVqtk3hey+uyHEStDmRhOE5Hc/ pVMjdUsSzgb5ewq5hmQof7b8JPSkZ3NZ+FWtmCXWZ5BgIXdNR3sLKDgCgugdtPAHOeOk kU29gktcuoGtwvPpGH4Z+fy9XuX41oDY/2wVv3r6QAIgjVGeiA7UMehL96uaxcvYRXER BdvczS3kwo17c+32DUH7TvINXSVLdn3tzSwlYu3lo+d3F9d/+lUiqDHFHAneAuHifePf xHDOSN8QTEJs80jpSzIXB3KopQ6uqSoBpzPVHNUaYgaMlP0rxVDVbZIHqjc+nLVfT2lj EZ6g== X-Forwarded-Encrypted: i=1; AJvYcCUTBgdFwJ6BZpZVuuSVopG46JERa6Uqo/dJHEGzDFzJ2RsBnYJSrnFjEEtkmtACipSPbD0APbFV6D6+54g=@vger.kernel.org X-Gm-Message-State: AOJu0YwZqMhwQU5GzzhvXDDAOtV8cy+b0eCOoqy/dxKzEPB/FxXRrhV0 Cd+lWXgGbvXNEiBXl1ZqwnavRGId2JfphmfNS6Qgwka7xuKjr8hLiSdtrHTaHL+j0ppIKYd0FIw KxP/fbAaWVKzENuuVXnFA6q7cECgGv88Ay7USZxQS7MC8jo/WmM5bZdKInXBctI1EcSQ= X-Gm-Gg: ATEYQzxbTEWn2Ihz8efyKLfeAXzXmPAKlWmNuDr+VvRb1Gh5cQK4j49UEbGmmAJAngT nD9/Q/jZ6TUZBmHFR9d4cGUms0e1b3JlBCZNXIMeiHQWxh4+ahc2rPKhZ4Zn+3vIuJb+UREyqKv 5V+WaI8ephjwRYN9ghTnrl2btDCPYH9SJ52TxnpAsq5eu5ngrdpGyQWITsV2bPKVTQJ2sp06BtU n01/q5DLxgTkZd6fEG4eirLAzpXa++4MxyxoKbphULhdqcNUl/KasYz375mQfGnv3Na9kBIdYwA VNSwf16dYETMKE6GDT6zFsXXMy8W9Rr4B4Gefpzhui+oBI8pHSoTutS93ebAJeX5IbY638JdUfh hWC/9UJndsX2F3xymq/LTjUYb8lbBD6B52wvx3+8Zn24CkhsQZFz0 X-Received: by 2002:a05:620a:400b:b0:8cd:8efb:b7d9 with SMTP id af79cd13be357-8cd8efbbe47mr163770585a.28.1773060190448; Mon, 09 Mar 2026 05:43:10 -0700 (PDT) X-Received: by 2002:a05:620a:400b:b0:8cd:8efb:b7d9 with SMTP id af79cd13be357-8cd8efbbe47mr163765685a.28.1773060189835; Mon, 09 Mar 2026 05:43:09 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:494a:62d9:d95b:cb98]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48539e574b5sm107803345e9.8.2026.03.09.05.43.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 05:43:09 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 09 Mar 2026 13:42:42 +0100 Subject: [PATCH v2 6/6] gpio: sim: allow to define the active-low setting of a simulated hog 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: <20260309-gpio-hog-fwnode-v2-6-4e61f3dbf06a@oss.qualcomm.com> References: <20260309-gpio-hog-fwnode-v2-0-4e61f3dbf06a@oss.qualcomm.com> In-Reply-To: <20260309-gpio-hog-fwnode-v2-0-4e61f3dbf06a@oss.qualcomm.com> To: Linus Walleij , Bartosz Golaszewski , Geert Uytterhoeven , Frank Rowand , Mika Westerberg , Andy Shevchenko , Aaro Koskinen , Janusz Krzysztofik , Tony Lindgren , Russell King , Jonathan Corbet , Shuah Khan Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-omap@vger.kernel.org, linux-doc@vger.kernel.org, brgl@kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2420; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=R4Ywu/pAKIvIVEZDR6pAqvPYf0v/XCn2dkIco/jqnjY=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBprsBNxYsA8Q1LF5HZoRzIH4kwEDuPpcFPljJRv aDgYFtdqiKJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCaa7ATQAKCRAFnS7L/zaE wzp8D/sFgjA+zH/WzHB4KtIHoXip9zBsEn/LDT+Fc0zQjsN9Pq30alODEdm8KQ+4kbj30kiNHoX dstNie7A4CFOFdJPwCFC30iLABL/O3LGw0GcuGqDLpQyrQzw4wvdqKrSTu4mtdwyiivYzCRq8os u0H8OQF4+84yB9DQkNLZeGhmzmvXwz6+k/kpqHKJOzFIV5SHNHdwPV4n0+GKX0dM1YnGl9ggY7y isMrdgdf2mRdxkcuoHIq5Rj6e0TbaRn0noJig2+VwRyCSYbvQBCj88TIvDvzed0M+mp9Gwp2EnP x3fzOCgD8Gsava3M/x+mNa8MI3AGFCYHBrEGa3ST13BvF5u1P7NyvfgbHLY3qhafqoSd6Wk7WHw HUxKt/9nSykSy5BiCq8bbEr/Regwj3eWvVt0kOmfUNkz7oN5aFhS30szutYVtyIv+pyz//vvlvf PIVRWLbKRPH+narFofUFn7ynAgZf5cS/RKt89sbbM7qbCPisCZRLuX/kHvgtAujYbJy8N4cM0U+ mrzJYamb4ipvmCxMdOG+2WG+3LqW/9omjYlWFhOzZ2v6+VJa+yxmVSfptO5zH1GoTfymaly/vir 6u5EXCUzF9qDtPLwu6tfIR25m1CcmZU5WRnXPt9lPRFZ8NNZmctQoaUAdle8rpzM7F7e/dp0JPJ Mt+lWwKr5E+YH+Q== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-GUID: e8QuLi5E6rDY0HlyeraKEPXMzKhRGXAH X-Authority-Analysis: v=2.4 cv=I+Vohdgg c=1 sm=1 tr=0 ts=69aec05f cx=c_pps a=50t2pK5VMbmlHzFWWp8p/g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=VwQbUJbxAAAA:8 a=QyXUC8HyAAAA:8 a=EUspDBNiAAAA:8 a=Z_vE--IGminT9Q5MwdQA:9 a=QEXdDO2ut3YA:10 a=IoWCM6iH3mJn3m4BftBB:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDExNiBTYWx0ZWRfX9MFHPZSCBSmS XRp6W5PotOknCF6xxYsc7+aVyEyASZDINQwvzdNa7eTPTKh0tZAfr0KwBvK/hHZV0nJJ47+isIP y/SWzjtDNaok3tnBy3ycepnIXajE7VBc433I5cXn3KZz0BPQPCpwL5urcgn8XP4uAyjyS34uSZX sRX+AlPMtSXBL6FPm13UdKlXEqT2O0JaCpb/85Ry6LSbIGU0oyOS2WyhGoAydueBCjV8CqfM7VO RG3I6lwzVBc/6cxWgfRus9q3KgftbcNnhJ7oO9xXSAIJ7CMfj8aJOn23NdO5ID+oIKTilO/kbRj sefMiVzJZsP9KhxEzDN06rETEY8mWMh4R5qgqCHTve3PiTTZF+Sma6MlvjFbPleXU6mgWMkcwRZ 7eVN2U5MO6S82X/QNuyT/yiaaUZZDxxxZ8qHRCrO0ZI+zegGwEjQSilpR7LZtDXMvYVAE9GHYhH Hhvi0YREREeUNmU7qXw== X-Proofpoint-ORIG-GUID: e8QuLi5E6rDY0HlyeraKEPXMzKhRGXAH X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_03,2026-03-06_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 impostorscore=0 spamscore=0 malwarescore=0 suspectscore=0 bulkscore=0 lowpriorityscore=0 clxscore=1015 priorityscore=1501 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090116 Add a new configfs attribute to the hog group allowing to configure the active-low lookup flag for hogged lines. This will allow us to extend tests to also cover the line config of hogs set up using software nodes. Reviewed-by: Linus Walleij Reviewed-by: Andy Shevchenko Signed-off-by: Bartosz Golaszewski --- drivers/gpio/gpio-sim.c | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/drivers/gpio/gpio-sim.c b/drivers/gpio/gpio-sim.c index 51bcbdd91b4b027b7a340971a11cce5280ca1295..f32674230237eb08bbf8dd1337a= 79b5d0aa13259 100644 --- a/drivers/gpio/gpio-sim.c +++ b/drivers/gpio/gpio-sim.c @@ -654,6 +654,7 @@ struct gpio_sim_hog { =20 char *name; int dir; + bool active_low; }; =20 static struct gpio_sim_hog *to_gpio_sim_hog(struct config_item *item) @@ -836,7 +837,7 @@ static int gpio_sim_bank_add_hogs(struct gpio_sim_bank = *bank) hog =3D line->hog; =20 gpios[0] =3D line->offset; - gpios[1] =3D 0; + gpios[1] =3D hog->active_low ? 1 : 0; =20 memset(properties, 0, sizeof(properties)); =20 @@ -1315,9 +1316,46 @@ gpio_sim_hog_config_direction_store(struct config_it= em *item, =20 CONFIGFS_ATTR(gpio_sim_hog_config_, direction); =20 +static ssize_t gpio_sim_hog_config_active_low_show(struct config_item *ite= m, + char *page) +{ + struct gpio_sim_hog *hog =3D to_gpio_sim_hog(item); + struct gpio_sim_device *dev =3D gpio_sim_hog_get_device(hog); + + guard(mutex)(&dev->lock); + + return sprintf(page, "%c\n", hog->active_low ? '1' : '0'); +} + +static ssize_t +gpio_sim_hog_config_active_low_store(struct config_item *item, + const char *page, size_t count) +{ + struct gpio_sim_hog *hog =3D to_gpio_sim_hog(item); + struct gpio_sim_device *dev =3D gpio_sim_hog_get_device(hog); + bool active_low; + int ret; + + guard(mutex)(&dev->lock); + + if (gpio_sim_device_is_live(dev)) + return -EBUSY; + + ret =3D kstrtobool(page, &active_low); + if (ret) + return ret; + + hog->active_low =3D active_low; + + return count; +} + +CONFIGFS_ATTR(gpio_sim_hog_config_, active_low); + static struct configfs_attribute *gpio_sim_hog_config_attrs[] =3D { &gpio_sim_hog_config_attr_name, &gpio_sim_hog_config_attr_direction, + &gpio_sim_hog_config_attr_active_low, NULL }; =20 --=20 2.47.3