Received: by 2002:a05:7412:b995:b0:f9:9502:5bb8 with SMTP id it21csp4783709rdb; Fri, 29 Dec 2023 13:25:25 -0800 (PST) X-Google-Smtp-Source: AGHT+IEkWO26a6rEXThiOUFq5R6qke0I8uw31uuIerWxLqC55c5GmpTwHiAzyekxLwFKZN3UywPh X-Received: by 2002:aa7:93ac:0:b0:6d9:e6f6:707d with SMTP id x12-20020aa793ac000000b006d9e6f6707dmr6023767pff.20.1703885125316; Fri, 29 Dec 2023 13:25:25 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1703885125; cv=none; d=google.com; s=arc-20160816; b=jfCpIvo42grcN6VyXt6QTvKijGzIbN/uT0gVfgsv80z4FhINEaui2tHLwuwLslo3fr FlDU7GrHr06d2ce/KB95sYWse2yVrNsv7Fsn/WNIyl0vF0t6z3Tgln56tZW5mITNFYJv t5NIH5W/7+G4NFHVMvwdBm4SBSi46wGhV3NfP7N4OrMwn/vrSD2Rb9Ush9geoufJurFq 4pn3V/5in2Bd/tz2tVsqQdSJXvEpAy14FAkkBKUuwClUgG3NnPo6kbRwzRQHX8l7+pi+ X5BmkiXe31X6QWp2vDZ5/RhRmkbxSLbi0NQFXO1jiRn9bI7sNISU/iECXvoUyzl0fu/E iq3Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:date:message-id:dkim-signature; bh=hz0KLuN1zIM2BAGLFi4l179nFCEu0AJENXjxhorbYNI=; fh=JVsMRqFp9MUt9vfpcX/eDB27R6bJy/NhdSS4qJ3Y4Pc=; b=yjo73xLIFSqW1dSYYx0xfgxL4LODSgKXbA+F9DIL7RL+QAkA5fvRi02xaxe0fo8LDx 9g+ljMPjUVtWuKLsiYdmP0uiIbM1gkxyWzpZ8NATbE6+iFu8Pd5cfX/DKIeewwRqBUnP ne34ZJcfyhpd2qRWLbZH7uNX2M1iD8cMIkE5jwuWUCGX1hq+2ujXzCMzHUVEi8y8Ma7U tf0xNnqS/aVeZ6nu40tJDLhuav2z9E4VKBIcNuBn7+u3bcMdvhzsF4h2kQwPRIhMAIjp nN9WyAPN19CUhE57N4BPvEESKXDL3xkSBHb3SiMCOtTIj+k0NBC/oLz9Av5sZ9/xI+tT R+FA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kwiboo.se header.s=fe-e1b5cab7be header.b=Ials6Tg5; spf=pass (google.com: domain of linux-kernel+bounces-13240-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-13240-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kwiboo.se Return-Path: Received: from sy.mirrors.kernel.org (sy.mirrors.kernel.org. [2604:1380:40f1:3f00::1]) by mx.google.com with ESMTPS id s65-20020a635e44000000b005c5e24d4364si11093432pgb.428.2023.12.29.13.25.24 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 Dec 2023 13:25:25 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-13240-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) client-ip=2604:1380:40f1:3f00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@kwiboo.se header.s=fe-e1b5cab7be header.b=Ials6Tg5; spf=pass (google.com: domain of linux-kernel+bounces-13240-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-13240-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kwiboo.se Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sy.mirrors.kernel.org (Postfix) with ESMTPS id 4E01FB22352 for ; Fri, 29 Dec 2023 21:25:20 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 1FBD114A85; Fri, 29 Dec 2023 21:25:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kwiboo.se header.i=@kwiboo.se header.b="Ials6Tg5" X-Original-To: linux-kernel@vger.kernel.org Received: from smtp.forwardemail.net (smtp.forwardemail.net [149.28.215.223]) (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 AFCCE14291 for ; Fri, 29 Dec 2023 21:25:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=kwiboo.se Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=fe-bounces.kwiboo.se DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kwiboo.se; h=Content-Transfer-Encoding: Content-Type: In-Reply-To: From: References: Cc: To: Subject: MIME-Version: Date: Message-ID; q=dns/txt; s=fe-e1b5cab7be; t=1703885096; bh=hz0KLuN1zIM2BAGLFi4l179nFCEu0AJENXjxhorbYNI=; b=Ials6Tg5BpbTNvyl8d7/B2KaB56obBRP50Ju3p5l8YOg+BAVbwqPzjcl2FCdL5GRavAdRL1A1 cI0QmaOvcRcfkMrrNwVHjC6tO2OSmU6ujpm3WyVBKl11fG4It5lqG8zr/q4KbcHnoetoJtOkG0j SiyqaQT4ulYF8ewvPnTlvrgYY+rHKAdo6hdQ68VjV8UuT8WNcI5OdD7KxANYpIU/wPaXc9z+Wt8 O6YK9UouNWtyJApiTVrl6Nkt0lnanyrAJxIXeyYb/++0pjVIIeAJyYT1jNqtMZTEJoQRoscGjcI dBEXeQ7N0FTutdyCKjbg649yrgvRW2JVY2QJTrtGLaKA== Message-ID: <8df5b058-aec5-4b94-8d80-fed5d4dde10f@kwiboo.se> Date: Fri, 29 Dec 2023 22:24:50 +0100 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v3 1/2] ARM: dts: rockchip: add gpio-ranges property to gpio nodes To: Johan Jonker , heiko@sntech.de Cc: robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, kever.yang@rock-chips.com, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org References: <541b7633-af3b-4392-ac29-7ee1f2c6f943@kwiboo.se> <396abf33-567c-b020-b12d-ee1cd7eca836@gmail.com> Content-Language: en-US From: Jonas Karlman In-Reply-To: <396abf33-567c-b020-b12d-ee1cd7eca836@gmail.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Report-Abuse-To: abuse@forwardemail.net X-Report-Abuse: abuse@forwardemail.net X-Complaints-To: abuse@forwardemail.net X-ForwardEmail-Version: 0.4.40 X-ForwardEmail-Sender: rfc822; jonas@kwiboo.se, smtp.forwardemail.net, 149.28.215.223 X-ForwardEmail-ID: 658f39277b097ab839c0bfbf Hi Johan, On 2023-12-29 16:47, Johan Jonker wrote: > Hi Jonas, > > On 12/28/23 17:30, Jonas Karlman wrote: >> Hi Johan, >> >> On 2023-12-27 19:33, Johan Jonker wrote: >>> Add a gpio-ranges property to Rockchip gpio nodes similar to >>> rk356x/rk3588 to be independent from aliases and probe order. >>> >>> Signed-off-by: Johan Jonker >>> Reviewed-by: Kever Yang >>> --- >>> >>> Changed V3: >>> reword >>> rebase to new Rockchip directory >>> remove unknown properties >>> --- >>> arch/arm/boot/dts/rockchip/rk3036.dtsi | 3 +++ >>> arch/arm/boot/dts/rockchip/rk3066a.dtsi | 6 ++++++ >>> arch/arm/boot/dts/rockchip/rk3128.dtsi | 4 ++++ >>> arch/arm/boot/dts/rockchip/rk3188.dtsi | 4 ++++ >>> arch/arm/boot/dts/rockchip/rk322x.dtsi | 4 ++++ >>> arch/arm/boot/dts/rockchip/rk3288.dtsi | 9 +++++++++ >>> arch/arm/boot/dts/rockchip/rv1108.dtsi | 4 ++++ >>> arch/arm/boot/dts/rockchip/rv1126.dtsi | 5 +++++ >>> 8 files changed, 39 insertions(+) >>> >>> diff --git a/arch/arm/boot/dts/rockchip/rk3036.dtsi b/arch/arm/boot/dts/rockchip/rk3036.dtsi >>> index 2b00109bea6a..6e5028b6dbfa 100644 >>> --- a/arch/arm/boot/dts/rockchip/rk3036.dtsi >>> +++ b/arch/arm/boot/dts/rockchip/rk3036.dtsi >>> @@ -593,6 +593,7 @@ gpio0: gpio@2007c000 { >>> clocks = <&cru PCLK_GPIO0>; >>> >>> gpio-controller; >>> + gpio-ranges = <&pinctrl 0 0 32>; >>> #gpio-cells = <2>; >>> >>> interrupt-controller; >>> @@ -606,6 +607,7 @@ gpio1: gpio@20080000 { >>> clocks = <&cru PCLK_GPIO1>; >>> >>> gpio-controller; >>> + gpio-ranges = <&pinctrl 0 32 32>; >>> #gpio-cells = <2>; >>> >>> interrupt-controller; >>> @@ -619,6 +621,7 @@ gpio2: gpio@20084000 { >>> clocks = <&cru PCLK_GPIO2>; >>> >>> gpio-controller; >>> + gpio-ranges = <&pinctrl 0 64 32>; >>> #gpio-cells = <2>; >>> >>> interrupt-controller; >>> diff --git a/arch/arm/boot/dts/rockchip/rk3066a.dtsi b/arch/arm/boot/dts/rockchip/rk3066a.dtsi >>> index 30139f21de64..a4962b6b3f4c 100644 >>> --- a/arch/arm/boot/dts/rockchip/rk3066a.dtsi >>> +++ b/arch/arm/boot/dts/rockchip/rk3066a.dtsi >>> @@ -285,6 +285,7 @@ gpio0: gpio@20034000 { >>> clocks = <&cru PCLK_GPIO0>; >>> >>> gpio-controller; >>> + gpio-ranges = <&pinctrl 0 0 32>; >>> #gpio-cells = <2>; >>> >>> interrupt-controller; >>> @@ -298,6 +299,7 @@ gpio1: gpio@2003c000 { >>> clocks = <&cru PCLK_GPIO1>; >>> >>> gpio-controller; >>> + gpio-ranges = <&pinctrl 0 32 32>; >>> #gpio-cells = <2>; >>> >>> interrupt-controller; >>> @@ -311,6 +313,7 @@ gpio2: gpio@2003e000 { >>> clocks = <&cru PCLK_GPIO2>; >>> >>> gpio-controller; >>> + gpio-ranges = <&pinctrl 0 64 32>; >>> #gpio-cells = <2>; >>> >>> interrupt-controller; >>> @@ -324,6 +327,7 @@ gpio3: gpio@20080000 { >>> clocks = <&cru PCLK_GPIO3>; >>> >>> gpio-controller; >>> + gpio-ranges = <&pinctrl 0 96 32>; >>> #gpio-cells = <2>; >>> >>> interrupt-controller; >>> @@ -337,6 +341,7 @@ gpio4: gpio@20084000 { >>> clocks = <&cru PCLK_GPIO4>; >>> >>> gpio-controller; >>> + gpio-ranges = <&pinctrl 0 128 32>; >>> #gpio-cells = <2>; >>> >>> interrupt-controller; >>> @@ -350,6 +355,7 @@ gpio6: gpio@2000a000 { >>> clocks = <&cru PCLK_GPIO6>; >>> >>> gpio-controller; >>> + gpio-ranges = <&pinctrl 0 192 32>; >> > >> It does not look like this matches what pins the pinctrl driver expose >> for rk3066a. Something like <&pinctrl 0 160 16> would probably be more >> correct. > > See comment below. > >> >>> #gpio-cells = <2>; >>> >>> interrupt-controller; >>> diff --git a/arch/arm/boot/dts/rockchip/rk3128.dtsi b/arch/arm/boot/dts/rockchip/rk3128.dtsi >>> index e2264c40b924..d66fcf12032e 100644 >>> --- a/arch/arm/boot/dts/rockchip/rk3128.dtsi >>> +++ b/arch/arm/boot/dts/rockchip/rk3128.dtsi >>> @@ -712,6 +712,7 @@ gpio0: gpio@2007c000 { >>> interrupts = ; >>> clocks = <&cru PCLK_GPIO0>; >>> gpio-controller; >>> + gpio-ranges = <&pinctrl 0 0 32>; >>> #gpio-cells = <2>; >>> interrupt-controller; >>> #interrupt-cells = <2>; >>> @@ -723,6 +724,7 @@ gpio1: gpio@20080000 { >>> interrupts = ; >>> clocks = <&cru PCLK_GPIO1>; >>> gpio-controller; >>> + gpio-ranges = <&pinctrl 0 32 32>; >>> #gpio-cells = <2>; >>> interrupt-controller; >>> #interrupt-cells = <2>; >>> @@ -734,6 +736,7 @@ gpio2: gpio@20084000 { >>> interrupts = ; >>> clocks = <&cru PCLK_GPIO2>; >>> gpio-controller; >>> + gpio-ranges = <&pinctrl 0 64 32>; >>> #gpio-cells = <2>; >>> interrupt-controller; >>> #interrupt-cells = <2>; >>> @@ -745,6 +748,7 @@ gpio3: gpio@20088000 { >>> interrupts = ; >>> clocks = <&cru PCLK_GPIO3>; >>> gpio-controller; >>> + gpio-ranges = <&pinctrl 0 96 32>; >>> #gpio-cells = <2>; >>> interrupt-controller; >>> #interrupt-cells = <2>; >>> diff --git a/arch/arm/boot/dts/rockchip/rk3188.dtsi b/arch/arm/boot/dts/rockchip/rk3188.dtsi >>> index 44b54af0bbf9..6677e4a10e5d 100644 >>> --- a/arch/arm/boot/dts/rockchip/rk3188.dtsi >>> +++ b/arch/arm/boot/dts/rockchip/rk3188.dtsi >>> @@ -231,6 +231,7 @@ gpio0: gpio@2000a000 { >>> clocks = <&cru PCLK_GPIO0>; >>> >>> gpio-controller; >>> + gpio-ranges = <&pinctrl 0 0 32>; >>> #gpio-cells = <2>; >>> >>> interrupt-controller; >>> @@ -244,6 +245,7 @@ gpio1: gpio@2003c000 { >>> clocks = <&cru PCLK_GPIO1>; >>> >>> gpio-controller; >>> + gpio-ranges = <&pinctrl 0 32 32>; >>> #gpio-cells = <2>; >>> >>> interrupt-controller; >>> @@ -257,6 +259,7 @@ gpio2: gpio@2003e000 { >>> clocks = <&cru PCLK_GPIO2>; >>> >>> gpio-controller; >>> + gpio-ranges = <&pinctrl 0 64 32>; >>> #gpio-cells = <2>; >>> >>> interrupt-controller; >>> @@ -270,6 +273,7 @@ gpio3: gpio@20080000 { >>> clocks = <&cru PCLK_GPIO3>; >>> >>> gpio-controller; >>> + gpio-ranges = <&pinctrl 0 96 32>; >>> #gpio-cells = <2>; >>> >>> interrupt-controller; >>> diff --git a/arch/arm/boot/dts/rockchip/rk322x.dtsi b/arch/arm/boot/dts/rockchip/rk322x.dtsi >>> index 831561fc1814..0d4f9957b99b 100644 >>> --- a/arch/arm/boot/dts/rockchip/rk322x.dtsi >>> +++ b/arch/arm/boot/dts/rockchip/rk322x.dtsi >>> @@ -959,6 +959,7 @@ gpio0: gpio@11110000 { >>> clocks = <&cru PCLK_GPIO0>; >>> >>> gpio-controller; >>> + gpio-ranges = <&pinctrl 0 0 32>; >>> #gpio-cells = <2>; >>> >>> interrupt-controller; >>> @@ -972,6 +973,7 @@ gpio1: gpio@11120000 { >>> clocks = <&cru PCLK_GPIO1>; >>> >>> gpio-controller; >>> + gpio-ranges = <&pinctrl 0 32 32>; >>> #gpio-cells = <2>; >>> >>> interrupt-controller; >>> @@ -985,6 +987,7 @@ gpio2: gpio@11130000 { >>> clocks = <&cru PCLK_GPIO2>; >>> >>> gpio-controller; >>> + gpio-ranges = <&pinctrl 0 64 32>; >>> #gpio-cells = <2>; >>> >>> interrupt-controller; >>> @@ -998,6 +1001,7 @@ gpio3: gpio@11140000 { >>> clocks = <&cru PCLK_GPIO3>; >>> >>> gpio-controller; >>> + gpio-ranges = <&pinctrl 0 96 32>; >>> #gpio-cells = <2>; >>> >>> interrupt-controller; >>> diff --git a/arch/arm/boot/dts/rockchip/rk3288.dtsi b/arch/arm/boot/dts/rockchip/rk3288.dtsi >>> index ead343dc3df1..c5550aae4ed8 100644 >>> --- a/arch/arm/boot/dts/rockchip/rk3288.dtsi >>> +++ b/arch/arm/boot/dts/rockchip/rk3288.dtsi >>> @@ -1461,6 +1461,7 @@ gpio0: gpio@ff750000 { >>> clocks = <&cru PCLK_GPIO0>; >>> >>> gpio-controller; >>> + gpio-ranges = <&pinctrl 0 0 32>; >> >> The pinctrl driver for rk3288 only expose 24 pins for the first bank, >> correct range would probably be <&pinctrl 0 0 24> here, >> >>> #gpio-cells = <2>; >>> >>> interrupt-controller; >>> @@ -1474,6 +1475,7 @@ gpio1: gpio@ff780000 { >>> clocks = <&cru PCLK_GPIO1>; >>> >>> gpio-controller; >>> + gpio-ranges = <&pinctrl 0 32 32>; >> > >> and correct range would probably be <&pinctrl 0 24 32> here, > > Random gpio offset ranges for a gpio bank of the various Rockchip SoCs makes it impossible to easy link gpio to pinctrl and vica versa in a standard way without additional Rockchip specific node properties. > To keep things simple the gpio-range for a gpio bank must always be inside to same multiple of 32 for all Rockchip SoCs in relation to the pinctrl. > A "rockchip,pins" property always must have the same "gpio-ranges" set. I am fully aware that each gpio controller can handle up to 32 gpio pins and that the relationship with the pin controller is not fully aligned for some SoCs. However, the gpio-ranges prop is described as: " It is useful to represent which GPIOs correspond to which pins on which pin controllers. The gpio-ranges property described below represents this with a discrete set of ranges mapping pins from the pin controller local number space to pins in the GPIO controller local number space. The format is: <[pin controller phandle], [GPIO controller offset], [pin controller offset], [number of pins]>; " For RK each GPIO controller have a local number space 0 - 31, and the pin controller local number space is 0 - (total number of exposed pins). So for rk3066a the pinctrl local number space is 0-175, and this patch (and v4) try to reference pin controller offset 192 for gpio6. Same goes for rk3288, where the pinctrl local number space is 0-263 and because of only 24 pins from bank num 0 is exposed the pin controller offset used for gpio1-8 in this patch (and v4) result in wrong pins being referenced. Remaining SoCs seem to have gpio and pinctrl pins aligned to 32 and look correct in v4. Please also note that all RK SoC DTs beside px30, rv1108 and rv1126 have a stable /aliases/gpioX DT reference for each gpio controller. Regards, Jonas > > Johan > >> >>> #gpio-cells = <2>; >>> >>> interrupt-controller; >>> @@ -1487,6 +1489,7 @@ gpio2: gpio@ff790000 { >>> clocks = <&cru PCLK_GPIO2>; >>> >>> gpio-controller; >>> + gpio-ranges = <&pinctrl 0 64 32>; >> >> and <&pinctrl 0 56 32> here, >> >>> #gpio-cells = <2>; >>> >>> interrupt-controller; >>> @@ -1500,6 +1503,7 @@ gpio3: gpio@ff7a0000 { >>> clocks = <&cru PCLK_GPIO3>; >>> >>> gpio-controller; >>> + gpio-ranges = <&pinctrl 0 96 32>; >> >> and <&pinctrl 0 88 32> here, >> >>> #gpio-cells = <2>; >>> >>> interrupt-controller; >>> @@ -1513,6 +1517,7 @@ gpio4: gpio@ff7b0000 { >>> clocks = <&cru PCLK_GPIO4>; >>> >>> gpio-controller; >>> + gpio-ranges = <&pinctrl 0 128 32>; >> >> and <&pinctrl 0 120 32> here, >> >>> #gpio-cells = <2>; >>> >>> interrupt-controller; >>> @@ -1526,6 +1531,7 @@ gpio5: gpio@ff7c0000 { >>> clocks = <&cru PCLK_GPIO5>; >>> >>> gpio-controller; >>> + gpio-ranges = <&pinctrl 0 160 32>; >> >> and <&pinctrl 0 152 32> here, >> >>> #gpio-cells = <2>; >>> >>> interrupt-controller; >>> @@ -1539,6 +1545,7 @@ gpio6: gpio@ff7d0000 { >>> clocks = <&cru PCLK_GPIO6>; >>> >>> gpio-controller; >>> + gpio-ranges = <&pinctrl 0 192 32>; >> >> and <&pinctrl 0 184 32> here, >> >>> #gpio-cells = <2>; >>> >>> interrupt-controller; >>> @@ -1552,6 +1559,7 @@ gpio7: gpio@ff7e0000 { >>> clocks = <&cru PCLK_GPIO7>; >>> >>> gpio-controller; >>> + gpio-ranges = <&pinctrl 0 224 32>; >> >> and <&pinctrl 0 216 32> here, >> >>> #gpio-cells = <2>; >>> >>> interrupt-controller; >>> @@ -1565,6 +1573,7 @@ gpio8: gpio@ff7f0000 { >>> clocks = <&cru PCLK_GPIO8>; >>> >>> gpio-controller; >>> + gpio-ranges = <&pinctrl 0 256 32>; >> >> and bank num 8 only expose 16 pins, so <&pinctrl 0 248 16> here. >> >>> #gpio-cells = <2>; >>> >>> interrupt-controller; >>> diff --git a/arch/arm/boot/dts/rockchip/rv1108.dtsi b/arch/arm/boot/dts/rockchip/rv1108.dtsi >>> index abf3006f0a84..d12b97ee7588 100644 >>> --- a/arch/arm/boot/dts/rockchip/rv1108.dtsi >>> +++ b/arch/arm/boot/dts/rockchip/rv1108.dtsi >>> @@ -602,6 +602,7 @@ gpio0: gpio@20030000 { >>> clocks = <&cru PCLK_GPIO0_PMU>; >>> >>> gpio-controller; >>> + gpio-ranges = <&pinctrl 0 0 32>; >>> #gpio-cells = <2>; >>> >>> interrupt-controller; >>> @@ -615,6 +616,7 @@ gpio1: gpio@10310000 { >>> clocks = <&cru PCLK_GPIO1>; >>> >>> gpio-controller; >>> + gpio-ranges = <&pinctrl 0 32 32>; >>> #gpio-cells = <2>; >>> >>> interrupt-controller; >>> @@ -628,6 +630,7 @@ gpio2: gpio@10320000 { >>> clocks = <&cru PCLK_GPIO2>; >>> >>> gpio-controller; >>> + gpio-ranges = <&pinctrl 0 64 32>; >>> #gpio-cells = <2>; >>> >>> interrupt-controller; >>> @@ -641,6 +644,7 @@ gpio3: gpio@10330000 { >>> clocks = <&cru PCLK_GPIO3>; >>> >>> gpio-controller; >>> + gpio-ranges = <&pinctrl 0 96 32>; >>> #gpio-cells = <2>; >>> >>> interrupt-controller; >>> diff --git a/arch/arm/boot/dts/rockchip/rv1126.dtsi b/arch/arm/boot/dts/rockchip/rv1126.dtsi >>> index bb603cae13df..71d091af6395 100644 >>> --- a/arch/arm/boot/dts/rockchip/rv1126.dtsi >>> +++ b/arch/arm/boot/dts/rockchip/rv1126.dtsi >>> @@ -569,6 +569,7 @@ gpio0: gpio@ff460000 { >>> interrupts = ; >>> clocks = <&pmucru PCLK_GPIO0>, <&pmucru DBCLK_GPIO0>; >>> gpio-controller; >>> + gpio-ranges = <&pinctrl 0 0 32>; >>> #gpio-cells = <2>; >>> interrupt-controller; >>> #interrupt-cells = <2>; >>> @@ -580,6 +581,7 @@ gpio1: gpio@ff620000 { >>> interrupts = ; >>> clocks = <&cru PCLK_GPIO1>, <&cru DBCLK_GPIO1>; >>> gpio-controller; >>> + gpio-ranges = <&pinctrl 0 32 32>; >>> #gpio-cells = <2>; >>> interrupt-controller; >>> #interrupt-cells = <2>; >>> @@ -591,6 +593,7 @@ gpio2: gpio@ff630000 { >>> interrupts = ; >>> clocks = <&cru PCLK_GPIO2>, <&cru DBCLK_GPIO2>; >>> gpio-controller; >>> + gpio-ranges = <&pinctrl 0 64 32>; >>> #gpio-cells = <2>; >>> interrupt-controller; >>> #interrupt-cells = <2>; >>> @@ -602,6 +605,7 @@ gpio3: gpio@ff640000 { >>> interrupts = ; >>> clocks = <&cru PCLK_GPIO3>, <&cru DBCLK_GPIO3>; >>> gpio-controller; >>> + gpio-ranges = <&pinctrl 0 96 32>; >>> #gpio-cells = <2>; >>> interrupt-controller; >>> #interrupt-cells = <2>; >>> @@ -613,6 +617,7 @@ gpio4: gpio@ff650000 { >>> interrupts = ; >>> clocks = <&cru PCLK_GPIO4>, <&cru DBCLK_GPIO4>; >>> gpio-controller; >>> + gpio-ranges = <&pinctrl 0 128 32>; >> >> Bank num 4 only expose 2 pins, so should probably be <&pinctrl 0 128 2>. >> >> Regards, >> Jonas >> >>> #gpio-cells = <2>; >>> interrupt-controller; >>> #interrupt-cells = <2>; >>> -- >>> 2.39.2 >>> >>> >>> _______________________________________________ >>> Linux-rockchip mailing list >>> Linux-rockchip@lists.infradead.org >>> http://lists.infradead.org/mailman/listinfo/linux-rockchip >>