From nobody Thu Sep 24 13:37:21 2026 Received: from mail-pz2-f12.google.com (mail-pz2-f12.google.com [74.125.228.12]) (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 F385A53C3A0 for ; Wed, 23 Sep 2026 18:53:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.228.12 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790189598; cv=none; b=OUSkLv7YarLNLtzLoukb9LaQna2Y0JrnZGRfiTQKkAfzYZQurwdJTJPuK0/g+8ZLhAxpCGoqbwQv3WyJPdrR68LAYSZwDcMPXJHZXoPZAR5J2aLXD6QyiX24xzy8NwSJt26dpdzZjpTKITFL6R9MvWk+5epHwz9ByGm2hZaHI8A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790189598; c=relaxed/simple; bh=i0/Ud+/noGW0PP+lXUlJszcNgcaYYgaR+bLb+Qgf7ms=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=djYqvAvWmNgFmozvRts9S1XcOjoXbgHLBAgGw02GxIEiPDiQvRBOzn4pVr0v+dBz6TM3n/MZ40Aa1kisv8CR9zjTQTBZZQn+00Z2esACRRXq9WlHp0UEdFEGnSTG/0ww0xTstUHkWmH2RoeKrGSVaJM6UW43qK/lWKzTuRbymDA= 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=WbHDtCUw; arc=none smtp.client-ip=74.125.228.12 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="WbHDtCUw" Received: by mail-pz2-f12.google.com with SMTP id 41be03b00d2f7-cc1ceb47d53so314038a12.0 for ; Wed, 23 Sep 2026 11:53:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1790189588; x=1790794388; 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:content-type; bh=3s/MMajyZUTrt05y+Cn99bNu886D7Ka1lQx9ECIkJR0=; b=WbHDtCUw2L3kgZ0pElHJl+akmegSxjTlfnYWqd3HzpZNE9zviAj2ZdYZjxH5u+hMDy PASFJkgwWlIFv/lIix/SGwBTCLNxjks1rw0mcXpShRzz8G4nKqkpTJiR311yvR/M10l9 ZLkowRd51YhOr0CWyjQM9X7OnltAI6x0tWeKjN3Cp1Rd06AsFix8TK/ysO33X38GkJcM TBYA5/dCrODZGrw9x+W9+IipuxRWr6RoaPKutfQxSUEgmqcZSiPS0Fdo83ZlaKgMAxl0 ZyjjIJEXKXivPel5cDAtMz7mluBn+Fj0eUC6DuWZp1bdkPlmFM0AvKjNaeMzCKCcKXwx eT3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790189588; x=1790794388; 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:content-type; bh=3s/MMajyZUTrt05y+Cn99bNu886D7Ka1lQx9ECIkJR0=; b=dDaWkCt2BuRA4KFrMdTw33rTapKcej0B5RaBlgZwQyqdwsyb108F6mkJ0qrksofxZN TrlqKM6Ghi9BMNRva0Sr/xJ6ch6BLEEoiiebRmt9taVDt9KcD7anRLY2cgh7Xk1Tv0LS U5n+whnieSjt0b4PCT7ZfWFjh70jrY8KOa/OnIPZxN+U6yQ5BLGEAMrbg2xrlAyWFLZy 7l5V3T1AYfdjgSUHsoQdz0zdqLOzH2pFZx4/KQz7Z3IC7XZWvchB3cRcCdDR8e901zV4 fkYjOskbrpoQ7CNJ90jOWoR6PYwaXjQvSP5E8A1nEhME0p8UcSelStdx3gsZhI0rY5+R hEnw== X-Forwarded-Encrypted: i=1; AKwUvBxMBiwpfQFC2PBK0jP7H9qQ56XcgS0R6hW/YnmpwpE4li9V4ZSX+SoZvyiLG5uEWfV0TKket92nanx+5mk=@vger.kernel.org X-Gm-Message-State: AFuF++kU/sdBELp8S1Ju5FZODAYOYCze8ILgGVR1NnOE141/mBV77Ur3 lz2DVGpLfUj8VK2/oSeVcnLZF9weLe5dD9pS1XDinT0LfVJZ8O5kAzWH X-Gm-Gg: AYBFou0U+zJCO0ILHCpQFoVRS0DeixIsh1PyW8DfqbVurGlPD/i2OTE/9DHliSpNjBZ yCvGRVrF/8GA3xsmEbvuyjmKXvgYIFxCd99CC9YZg3gKnhSG3EoTpIOLzMM4g3BghbSGUJ8+JsH 9bs4jecKYMZGgHIzHhvulvU7np57MV/2iW422KP2WApWcJZHFfm2ZpIJho4AcreZfMKOL6w41+Q sdxmB9dQvnqT1DG82SNiYHZOQHTNdrl2yVZw7OxMAFGfVcotKfqOly0Go3PSWqv51fhSun/v4KO Wuy5/eUeVGAFsmFBxXK8LT3iPvqwZDgV9d/HXIoi/tNSJez8HgR5SH3aQwcoRyAsF5toYjViXKi jS3Ce60aLLRSTJ6r1ZVxLKLFZU9E5uds6GCKy4Lq+YQ934vkr17M1UXZ66/jsoyxCeD6IXWeEA/ 8hSkR2ofD77VOcZ78wBvM8VekGv3DJ6s2DaNAWr0DNySQhhbgDOl7mqaJaQ+QfaxUh/NeFAH2q9 Rq8ZawfGNo2/a9DbfgWsmDXfYriCOsqFEOSvHfdM9C86OMZuua6XV2kz146zHq4PTKJnvY4aXMh e8aXPTobFRRE+n8+b8HSLyNo/a6NqYMeoW0P+RCrdHk7ZLvoCp2HmeCOWe8= X-Received: by 2002:a17:90b:5183:b0:39e:6c68:fd96 with SMTP id 98e67ed59e1d1-3a098b98996mr35249a91.43.1790189588207; Wed, 23 Sep 2026 11:53:08 -0700 (PDT) Received: from ryzen.lan ([2601:644:8000:7a86::e34]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3a0976c8f8dsm409335a91.12.2026.09.23.11.53.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 23 Sep 2026 11:53:06 -0700 (PDT) From: Rosen Penev To: devicetree@vger.kernel.org Cc: Linus Walleij , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Ray Jui , Scott Branden , linux-gpio@vger.kernel.org (open list:PIN CONTROL SUBSYSTEM), linux-kernel@vger.kernel.org (open list) Subject: [PATCH] dt-bindings: pinctrl: convert nsp-gpio binding Date: Wed, 23 Sep 2026 11:53:05 -0700 Message-ID: <20260923185305.26223-1-rosenp@gmail.com> X-Mailer: git-send-email 2.55.0 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 Content-Type: text/plain; charset="utf-8" The brcm,nsp-gpio-a compatible used by the NSP GPIO controller was only documented in the legacy text binding, so dtbs_check reported 'failed to match any schema' for the gpio@20 node present in every bcm958625 and related board DTS. Convert Documentation/devicetree/bindings/pinctrl/brcm,nsp-gpio.txt to a YAML schema and drop the text binding. Keep the existing required and optional properties (reg, #gpio-cells, gpio-controller, ngpios, and the optional interrupt/gpio-ranges support), including the generic pinconf child nodes with pin bias and drive-strength. Assisted-by: LLM Signed-off-by: Rosen Penev --- .../bindings/pinctrl/brcm,nsp-gpio.txt | 80 -------------- .../bindings/pinctrl/brcm,nsp-gpio.yaml | 101 ++++++++++++++++++ 2 files changed, 101 insertions(+), 80 deletions(-) delete mode 100644 Documentation/devicetree/bindings/pinctrl/brcm,nsp-gpio= .txt create mode 100644 Documentation/devicetree/bindings/pinctrl/brcm,nsp-gpio= .yaml diff --git a/Documentation/devicetree/bindings/pinctrl/brcm,nsp-gpio.txt b/= Documentation/devicetree/bindings/pinctrl/brcm,nsp-gpio.txt deleted file mode 100644 index 0844168a6dd4..000000000000 --- a/Documentation/devicetree/bindings/pinctrl/brcm,nsp-gpio.txt +++ /dev/null @@ -1,80 +0,0 @@ -Broadcom Northstar plus (NSP) GPIO/PINCONF Controller - -Required properties: -- compatible: - Must be "brcm,nsp-gpio-a" - -- reg: - Should contain the register physical address and length for each of - GPIO base, IO control registers - -- #gpio-cells: - Must be two. The first cell is the GPIO pin number (within the - controller's pin space) and the second cell is used for the following: - bit[0]: polarity (0 for active high and 1 for active low) - -- gpio-controller: - Specifies that the node is a GPIO controller - -- ngpios: - Number of gpios supported (58x25 supports 32 and 58x23 supports 24) - -Optional properties: -- interrupts: - Interrupt ID - -- interrupt-controller: - Specifies that the node is an interrupt controller - -- gpio-ranges: - Specifies the mapping between gpio controller and pin-controllers pins. - This requires 4 fields in cells defined as - - 1. Phandle of pin-controller. - 2. GPIO base pin offset. - 3 Pin-control base pin offset. - 4. number of gpio pins which are linearly mapped from pin base. - -Supported generic PINCONF properties in child nodes: -- pins: - The list of pins (within the controller's own pin space) that properti= es - in the node apply to. Pin names are "gpio-" - -- bias-disable: - Disable pin bias - -- bias-pull-up: - Enable internal pull up resistor - -- bias-pull-down: - Enable internal pull down resistor - -- drive-strength: - Valid drive strength values include 2, 4, 6, 8, 10, 12, 14, 16 (mA) - -Example: - - gpioa: gpio@18000020 { - compatible =3D "brcm,nsp-gpio-a"; - reg =3D <0x18000020 0x100>, - <0x1803f1c4 0x1c>; - #gpio-cells =3D <2>; - gpio-controller; - ngpios =3D <32>; - gpio-ranges =3D <&pinctrl 0 0 31>; - interrupt-controller; - interrupts =3D ; - - /* Hog a few default settings */ - pinctrl-names =3D "default"; - pinctrl-0 =3D <&led>; - led: led { - pins =3D "gpio-1"; - bias-pull-up; - }; - - pwr: pwr { - gpio-hog; - gpios =3D <3 1>; - output-high; - }; - }; diff --git a/Documentation/devicetree/bindings/pinctrl/brcm,nsp-gpio.yaml b= /Documentation/devicetree/bindings/pinctrl/brcm,nsp-gpio.yaml new file mode 100644 index 000000000000..9eb4a2a1f02f --- /dev/null +++ b/Documentation/devicetree/bindings/pinctrl/brcm,nsp-gpio.yaml @@ -0,0 +1,101 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/pinctrl/brcm,nsp-gpio.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Broadcom Northstar Plus (NSP) GPIO/PINCONF Controller + +maintainers: + - Ray Jui + - Scott Branden + +properties: + compatible: + const: brcm,nsp-gpio-a + + reg: + items: + - description: GPIO base registers + - description: IO control registers + + "#gpio-cells": + const: 2 + description: | + The first cell is the GPIO pin number (within the controller's pin + space) and the second cell is used for the following: + bit[0]: polarity (0 for active high and 1 for active low) + + gpio-controller: true + + ngpios: + description: Number of GPIOs supported (58x25 supports 32 and 58x23 su= pports 24) + maximum: 32 + + interrupts: + maxItems: 1 + + "#interrupt-cells": + const: 2 + + interrupt-controller: true + + gpio-ranges: true + +required: + - compatible + - reg + - "#gpio-cells" + - gpio-controller + - ngpios + +patternProperties: + '-pins$': + type: object + additionalProperties: + description: Pin configuration child nodes. + allOf: + - $ref: pincfg-node.yaml# + - $ref: pinmux-node.yaml# + additionalProperties: false + + properties: + pins: + items: + pattern: '^gpio-' + + bias-disable: true + bias-pull-up: true + bias-pull-down: true + + drive-strength: + enum: [ 2, 4, 6, 8, 10, 12, 14, 16 ] + + required: + - pins + +additionalProperties: false + +examples: + - | + #include + + gpio@18000020 { + compatible =3D "brcm,nsp-gpio-a"; + reg =3D <0x18000020 0x100>, + <0x1803f1c4 0x1c>; + #gpio-cells =3D <2>; + gpio-controller; + ngpios =3D <32>; + gpio-ranges =3D <&pinctrl 0 0 31>; + interrupt-controller; + #interrupt-cells =3D <2>; + interrupts =3D ; + + led-pins { + led { + pins =3D "gpio-1"; + bias-pull-up; + }; + }; + }; --=20 2.55.0