From nobody Sun Feb 8 03:57: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 AC1D62EB5CD for ; Fri, 9 Jan 2026 13:08:38 +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=1767964119; cv=none; b=FUqb9HBIFwUOzsJy35kMD0mDZ/uR98WwjzRtTpCx6wJTNti55nwbdGgzg1A7KVfnSYWr6uXIVva99gZ1RIhzGtJGOF9kk+zXe/jLgSG3hR6m3T7IeLGXjUaVEro15P6DB0kpb/hknPBHAza4L+fFlAmw8uqeD01ehBVAqmyC7+o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767964119; c=relaxed/simple; bh=ejRlnFkx8oV4uZJNEJppKX24INSICLo81zD+mi1j1Nk=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=fWM84NA3Qv6OJzPgz0uS7CGN7KRoMhlpzrkqx/Jzc2oysbKEh8AAG9j8gA19VyOcMKIqKyc85tvWMMngvdFV/s+y0oAZR3TqJLUMrT8UwLEbXmsfYt8TJnqtiA6giwdsksi/i3jj8KxVTWAGNpgcJ+LJcB6bWSyzJ2CbJ9+agHI= 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=oCrtvARm; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Y0VqHEs8; 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="oCrtvARm"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Y0VqHEs8" Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6098Tk4g3727434 for ; Fri, 9 Jan 2026 13:08:38 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:message-id:mime-version :subject:to; s=qcppdkim1; bh=FuH+O/FoejttwuGxuzSH5M34uWVfsmXJtgl MrClXvlA=; b=oCrtvARmfmpLRldrL9tSKxjrr1fElURwLZTtXnjxKIna3OChoR9 V+exbRIeQmGAx6LVt9aLpvUj1TEt8ZI3zvzf+k56O0aa+Ugpn//qsF1c3CkuixZ2 8zkgctHOZIHY1BrNQUqpAQUcUMFJe4NivhLRBxYyoeEt3QQPFlQgRZyN3JX0TpXR wpaP2nM8s1UajwpO35o6UAXqEBULqvnRfX9BIqVEec5bFELHqgak9A/JRXTaCTOn dZvmqnZP++LJOAuLn+VUnXPxOFl+qRfUEik2aMFvL1O0W5dm/EuGHqshEBKVeqWT ++YhoxuGTHrYld6TVL4nxbO7JmrmHMc+9HQ== Received: from mail-qk1-f199.google.com (mail-qk1-f199.google.com [209.85.222.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4bjpmkj4kg-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 09 Jan 2026 13:08:37 +0000 (GMT) Received: by mail-qk1-f199.google.com with SMTP id af79cd13be357-8b234bae2a7so1108483385a.3 for ; Fri, 09 Jan 2026 05:08:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1767964117; x=1768568917; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=FuH+O/FoejttwuGxuzSH5M34uWVfsmXJtglMrClXvlA=; b=Y0VqHEs8lilnMlObpZwM4oVq2o951wUvgAWKoABEzfkz+tubvVcp/VJss7pIknmD73 wlG55SyLURD2Y+WpOpXvDPeL4efcYgiJehBrKXHsa2usVEHhutOX55TbOCDUv0ju+TnW KllztKhn8fSLgLB/67UYmVbn/BosHrBA78yz6frTDikckUzrcqu4nVXjWVLF3IFn5C5n Al+4n1u5P7zJMus1wnkfjHzEMzN6xIYdMPCIM38IWSF9ramnJqQoiB+/tsMnUc4qwizq YXe+9JwqoE2T6d3lgSk/JBSBdUURREkxX1EAVX0nm2zxoZrKkkTisdIolbMGoUMjgAnt eo2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767964117; x=1768568917; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=FuH+O/FoejttwuGxuzSH5M34uWVfsmXJtglMrClXvlA=; b=QFC6Wvx2JXwKf0fcqBnxKMMlenLu1gpq4eZG6iBbhDh8rn2mQkmZx83Go6gKVojTDa AJL1TPfJUYHEGrJ5HWTI0bMDlZPwprDdB/S8LPqCKWQxX6vn3+behOpBnJaJLDSB8D2q ovcnIwLRa74dBHtMiNAfatfqHNZBjIudqjM79l4oQ5UmHYWgYIR9ayI1r1avAtCVQmDc nIy+B3xkoWd1fUEC2mvKglgcrqQ7hfSQ8+GCoHzKaChMmiq3NXD8jr/fJggXJ9fPAbb8 9arlub8DqclYFamtdI3gq8ywmgl7IFDOYE9CP8hn/ugato4uwErfBBEFFYB5aJZy11KF oqyQ== X-Gm-Message-State: AOJu0YwkoyZW464zxRXUwFq8pmet7KE+shSW0lCEnO8GKipN6iSAiWEa bTOaX3MaT6EAMUlO2lBer2B2kw/PQhjBPsAPgf7xQjXY0HtmNbXRcH9+ZKIJPqwLdKyb4P2CEYg I6rE7Q6B737KVStdJu957MEKi9Tjp/TlSMW+waSSO93VKt0pe8pHrHN4nnZirok5zQd4= X-Gm-Gg: AY/fxX5L58Uhjargkg1/41Ar4xYPXqYobgKPHkHC8o+ZJXayvLyk7N3TsP4AdhBVKgU oHU0w7szC+Jo7MjA6wS7dNZ22JoRH0mtdtWo8lXKO+thTk2DsSQ0Re8M+h1mV44usunoXEzEfLR vUWr504UQvgzsn8EQJgTamqWZCXGicZAbLQiJGxiSByNydNjbDpmQ+M5B1c52bNE+anhgQ9he+F gwgJPUXXiooKHkiHA3u8IgLvqdiJXHou3bFNQeU5VEXpwwK5wEfK657gAcgpl/563eeK5fqdWZ/ Nv70HcJ2i4cauOwcMhnb618wf4p7YGswEoPC85IV4BK/PcpX1eCOF8GnQDgE7GIlOD5N4S80ZdZ 3suwi1XjHuC86XqbcgQ4//92Z3AntwViJ0qdcEVM= X-Received: by 2002:a05:620a:4083:b0:8c0:cbd8:20b0 with SMTP id af79cd13be357-8c38939cf33mr1354547285a.34.1767964116550; Fri, 09 Jan 2026 05:08:36 -0800 (PST) X-Google-Smtp-Source: AGHT+IEOIa4aahvs+F4IA0pVzNSDreb10X1tJjxH3ASrtlZu/Erxr91L45K3ojN0lZLbwKJ3Z3HVYw== X-Received: by 2002:a05:620a:4083:b0:8c0:cbd8:20b0 with SMTP id af79cd13be357-8c38939cf33mr1354540885a.34.1767964116050; Fri, 09 Jan 2026 05:08:36 -0800 (PST) Received: from brgl-qcom.home ([2a01:cb1d:dc:7e00:4b2e:be6e:9187:bb3c]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-432bd0daa78sm22465245f8f.6.2026.01.09.05.08.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 09 Jan 2026 05:08:35 -0800 (PST) From: Bartosz Golaszewski To: Keerthy , Linus Walleij , Bartosz Golaszewski Cc: linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, Bartosz Golaszewski , Michael Walle Subject: [PATCH v2] gpio: davinci: implement .get_direction() Date: Fri, 9 Jan 2026 14:08:32 +0100 Message-ID: <20260109130832.27326-1-bartosz.golaszewski@oss.qualcomm.com> X-Mailer: git-send-email 2.47.3 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=YNiSCBGx c=1 sm=1 tr=0 ts=6960fdd5 cx=c_pps a=HLyN3IcIa5EE8TELMZ618Q==:117 a=xqWC_Br6kY4A:10 a=vUbySO9Y5rIA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=fk1lIlRQAAAA:8 a=EpO4oYFsiGmJhOSXWBoA:9 a=bTQJ7kPSJx9SKPbeHEYW:22 a=U75ogvRika4pmaD_UPO0:22 X-Proofpoint-GUID: yQCDlqhzsvb5qaOSYfimRACPbl6kLbB1 X-Proofpoint-ORIG-GUID: yQCDlqhzsvb5qaOSYfimRACPbl6kLbB1 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTA5MDA5NyBTYWx0ZWRfXzz3h4ZHVttaw Us6oHwzEqluSB/azK5TBgMNkE/8zAAjckOZVnGxVnbYSvOoIO66duMbYm7nzNf8hu3ccm9/DsKk 4iEMgYK2LmZm3Pi5H0z+malV/UuIb6SyJBjZh893h+NrigFTSdlq+G8895jEVy28CgYwI/w8+l7 AJ4nkAkeNDqODvGOgvx7CSMq/SBNAXmMLgIyUA6kFe5qeBP+85zxuZhXO1CXpS9TMoHfmRnhGIo gd/zkeBI0K6rWcN3k/vaU2zCJEON4KmWWxAyL1JOKLFjLdMF4bSRvbSbejPBe0TeGDVEj5e4vfE RsfVd5A5M3SMbeABemSYf5IU0XdsK/c0zmwIXtNboGxCw5Kgdv00/86FdnwdXy1gZ2ZE1LZSFDZ EALigVkNRPk0Pfc1qTdT8/5d1iq57fii7OQYKIO4ikz1suC/LdmoAVOtxoP/88zVntew2vmC+km 3dIgkAnc7OFCOUlF0OQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-09_04,2026-01-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 phishscore=0 suspectscore=0 impostorscore=0 adultscore=0 spamscore=0 lowpriorityscore=0 malwarescore=0 bulkscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2601090097 Content-Type: text/plain; charset="utf-8" It's strongly recommended for GPIO drivers to always implement the .get_direction() callback - even for fixed-direction controllers. GPIO core will even emit a warning if the callback is missing, when users try to read the direction of a pin. Implement .get_direction() for gpio-davinci. Reported-by: Michael Walle Closes: https://lore.kernel.org/all/DFJAFK3DTBOZ.3G2P3A5IH34GF@kernel.org/ Signed-off-by: Bartosz Golaszewski Reviewed-by: Linus Walleij Tested-by: Michael Walle # on sa67 --- I sent v1 too fast and forgot to Cc Keerthy. Sorry for the noise. Changes in v2: - use unsigned int instead of unsigned - Cc davinci-gpio maintainer drivers/gpio/gpio-davinci.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/drivers/gpio/gpio-davinci.c b/drivers/gpio/gpio-davinci.c index 538f27209ce7..97780f27ce5b 100644 --- a/drivers/gpio/gpio-davinci.c +++ b/drivers/gpio/gpio-davinci.c @@ -6,6 +6,7 @@ * Copyright (c) 2007, MontaVista Software, Inc. */ =20 +#include #include #include #include @@ -109,6 +110,22 @@ davinci_direction_out(struct gpio_chip *chip, unsigned= offset, int value) return __davinci_direction(chip, offset, true, value); } =20 +static int davinci_get_direction(struct gpio_chip *chip, unsigned int offs= et) +{ + struct davinci_gpio_controller *d =3D gpiochip_get_data(chip); + struct davinci_gpio_regs __iomem *g; + u32 mask =3D __gpio_mask(offset), val; + int bank =3D offset / 32; + + g =3D d->regs[bank]; + + guard(spinlock_irqsave)(&d->lock); + + val =3D readl_relaxed(&g->dir); + + return (val & mask) ? GPIO_LINE_DIRECTION_IN : GPIO_LINE_DIRECTION_OUT; +} + /* * Read the pin's value (works even if it's set up as output); * returns zero/nonzero. @@ -203,6 +220,7 @@ static int davinci_gpio_probe(struct platform_device *p= dev) chips->chip.get =3D davinci_gpio_get; chips->chip.direction_output =3D davinci_direction_out; chips->chip.set =3D davinci_gpio_set; + chips->chip.get_direction =3D davinci_get_direction; =20 chips->chip.ngpio =3D ngpio; chips->chip.base =3D -1; --=20 2.47.3