Received: by 2002:a05:6a10:a0d1:0:0:0:0 with SMTP id j17csp747030pxa; Wed, 19 Aug 2020 13:50:06 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxiJvAtX0m+Tjafoshk/Z/790qepxBU7wgSLUvBN4S8Y8HPiAp+zNOgN0GmdnffHAa6fMfX X-Received: by 2002:a17:906:8050:: with SMTP id x16mr101522ejw.441.1597870205818; Wed, 19 Aug 2020 13:50:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1597870205; cv=none; d=google.com; s=arc-20160816; b=XyJFON5XypqGGj48DkM0FwtZKQDJCxUFWuSGlh5495sgWMY6+/HskhMTTDX8/p576O gc5ERW30DNOK68XlORUfexktAszbA1IYSFZD2+VRolfQoyjl0r4KnAU0Ye+4TgqYpAbj MYSYawPQNrtySvmDwflU4TvOM/xvQMcLIZePn236XL8mLXy4bxSXlSqDhbEasTgslmD9 q8HjTyzgJaumKoosQFW1bLCDk0hbUtPoT0UW+wkxpX7/2PFwAXpCBjaYJcXXVDyfaRGg 8K+uS9rN8ScEIsPyUTIooP5VihO5q6kPv8NiMAHyFnccp3qpjxDn+CMiHBY0D7mnIk5b roxw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature; bh=mdnZglwI4EjvNb/esSyk9gVq6ig88nPzaI7IUsXkz/Y=; b=TuOPVZLL90VwTIhX6mfb5OPqViPjoPLrDx2PZJNu5L3Q+HFC+/0GT5FTFlHnstFb4L UKNCOnXw3S7kC6y10gamUfIttDVFjaWW/2q0fQ8BvUcwmhUrTPmb7pW7rMXmU19I6+EJ P4wFkNDxR4DIqtBDiULY98ZOhHbzk+ZAGqWnT++Xjmt4/DAyPKbDcmXfzh6+14Q99HLg 213mAEMYODKeAgHihQdlMWR8LvxWU6HdIbKPkIyiVMFDeO/rtteXLS05l9NPOZiN7fYv S3jHenVIrNmQ/c+SKqJWUVx59eeh1w88IwNZG06S8gWMpXsyF2h0cC44+3bw5N8tGKir aOFw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=PX5Mjhu0; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id b16si15376507eju.452.2020.08.19.13.49.40; Wed, 19 Aug 2020 13:50:05 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=PX5Mjhu0; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727097AbgHSUsm (ORCPT + 99 others); Wed, 19 Aug 2020 16:48:42 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52724 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725997AbgHSUsl (ORCPT ); Wed, 19 Aug 2020 16:48:41 -0400 Received: from mail-ed1-x544.google.com (mail-ed1-x544.google.com [IPv6:2a00:1450:4864:20::544]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 93597C061757; Wed, 19 Aug 2020 13:48:41 -0700 (PDT) Received: by mail-ed1-x544.google.com with SMTP id df16so19241048edb.9; Wed, 19 Aug 2020 13:48:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=mdnZglwI4EjvNb/esSyk9gVq6ig88nPzaI7IUsXkz/Y=; b=PX5Mjhu03HyeYYhfatP1x50gNnSApx04aOGnQcg36XJxZhpwXgNNt5k2SqYRFRdfLZ tbTrp0sqEw9dPDVMhD/kRlsu3n9pF73WzpwobOfh926j7oQWkwst7L2+Yq2mTwGmTQYq +D5yZTEVp3FWmB9Zxc1+CvUNaXx2SMVGCHburPSYGEbzAf0QLfqWVugoQEQZqnFZ4XC+ slcXjXXeSkwIb4agMPWRJDAo4e4MaOf2bdheY9PgJ295nhMn2P6+Ef4dsVCM8lp/dlle JinNx31bdaahLStC8hx+TMzHUO7Zqptp1yD0kjToMxWXsP2YOWlWFzZpMjFGQQHcx9Mc 6SGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=mdnZglwI4EjvNb/esSyk9gVq6ig88nPzaI7IUsXkz/Y=; b=TIyflaoltsUgRH1+0jngWFxtzA5a5rBbMFz77FftIsfF5/y+GI72uJnxfRUWbnxz0A 7cN2o4goINpRHyn39nl+kmKbvGLowjrNfuVRGl7GgUNKkbTYtIw4QdCKq/bwK0yRH0+7 dPhgzI/4iXybrrfuYUNahagicJtpqJGr6GVYmv7LkLIH2MpQJ2eT1fEbyVC1aav1fzyg jyjYVckss64HXPM7g7WAPI1O6SyMFCgPyKsnbQqXYHha4zdxcqr4Byso0Z3alW4SW6c6 cD+tLkeTFc8hw+tco4XRzwslQg8W7KUGVnJ01qzYpv1jdzr190Bd2jz8tMLNgzFpbYFO imJQ== X-Gm-Message-State: AOAM531XdgzwkYIpiYrTiIvdGZxO5aoFBlPH/PmkskpTIoHKa7cMhvRm aO0jdt1ZeVpOKK38O+YspIkQc8BmeoE= X-Received: by 2002:a05:6402:1430:: with SMTP id c16mr25995987edx.144.1597870119863; Wed, 19 Aug 2020 13:48:39 -0700 (PDT) Received: from debian64.daheim (pd9e294f0.dip0.t-ipconnect.de. [217.226.148.240]) by smtp.gmail.com with ESMTPSA id b9sm20368932ejz.57.2020.08.19.13.48.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Aug 2020 13:48:38 -0700 (PDT) Received: from localhost.daheim ([127.0.0.1]) by debian64.daheim with esmtp (Exim 4.94) (envelope-from ) id 1k8V0d-001EXU-R2; Wed, 19 Aug 2020 22:48:35 +0200 Subject: Re: [PATCH] ARM: dts: BCM5301X: Fix pin controller node To: Florian Fainelli , linux-arm-kernel@lists.infradead.org Cc: Hauke Mehrtens , =?UTF-8?B?UmFmYcWCIE1pxYJlY2tp?= , "maintainer:BROADCOM BCM5301X ARM ARCHITECTURE" , Rob Herring , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , open list References: <20200819042308.19043-1-f.fainelli@gmail.com> From: Christian Lamparter Message-ID: <7501cb2f-ea5a-8339-40a0-6706fea32a06@gmail.com> Date: Wed, 19 Aug 2020 22:48:35 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0 MIME-Version: 1.0 In-Reply-To: <20200819042308.19043-1-f.fainelli@gmail.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2020-08-19 06:23, Florian Fainelli wrote: > The pin controller resources start at 0xc0 from the CRU base which is at > 0x100 from th DMU base, for a final address of 0x1800_c1c0, whereas we > are currently off by 0x100. The resource size of the CRU is also > incorrect and should end at 0x248 bytes from 0x100 which is the start > address. Finally, the compatibility strings defined for the > pin-controller node should reflect the SoC being used. > > Fixes: 9994241ac97c ("ARM: dts: BCM5301X: Describe Northstar pins mux controller") > Reported-by: Christian Lamparter > Signed-off-by: Florian Fainelli > --- > Christian, can you test this as a preliminary patch for your Cisco > Meraki MR32 series? Thanks! Hm, it looks like this is more complicated than this. We should have looked at pinctrl-ns.c's ns_pinctrl_probe() [0] before calling it. | ns_pinctrl->regmap = syscon_node_to_regmap(of_get_parent(np)); | if (IS_ERR(ns_pinctrl->regmap)) { | int err = PTR_ERR(ns_pinctrl->regmap); | | dev_err(dev, "Failed to map pinctrl regs: %d\n", err); | | return err; | } | | if (of_property_read_u32(np, "offset", &ns_pinctrl->offset)) { | dev_err(dev, "Failed to get register offset\n"); | return -ENOENT; | } So, the ns_pinctrl_probe() takes the address of the parent node (cru) and then looks for a "offset" property to add to this (which is missing in the bcm5301x.dtsi [1]). Thing is, for this to work, the parent-node should be a "simple-mfd" (so a regmap is created for the reg), right? This would also mean that the "reg" property in the pin-controller node is just cosmetic. I guess the reason why this sort-of-works for me is because I'm using this MR32 with OpenWrt (Rafał Miłecki is probably using it too ;) ). (Note: We should not forget to update the binding-documentation as well!) BTW: I'll reply my findings for the i2c issue with the MR32 in the other mail. > > arch/arm/boot/dts/bcm4708.dtsi | 4 ++++ > arch/arm/boot/dts/bcm4709.dtsi | 4 ++++ > arch/arm/boot/dts/bcm5301x.dtsi | 8 ++++---- > 3 files changed, 12 insertions(+), 4 deletions(-) > > diff --git a/arch/arm/boot/dts/bcm4708.dtsi b/arch/arm/boot/dts/bcm4708.dtsi > index 1a19e97a987d..5064fe51e402 100644 > --- a/arch/arm/boot/dts/bcm4708.dtsi > +++ b/arch/arm/boot/dts/bcm4708.dtsi > @@ -43,6 +43,10 @@ cpu@1 { > > }; > > +&pinctrl { > + compatible = "brcm,bcm4708-pinmux"; > +}; > + > &uart0 { > status = "okay"; > }; > diff --git a/arch/arm/boot/dts/bcm4709.dtsi b/arch/arm/boot/dts/bcm4709.dtsi > index e1bb8661955f..7417c275ea9d 100644 > --- a/arch/arm/boot/dts/bcm4709.dtsi > +++ b/arch/arm/boot/dts/bcm4709.dtsi > @@ -5,6 +5,10 @@ > > #include "bcm4708.dtsi" > > +&pinctrl { > + compatible = "brcm,bcm4709-pinmux"; > +}; > + > &uart0 { > clock-frequency = <125000000>; > status = "okay"; > diff --git a/arch/arm/boot/dts/bcm5301x.dtsi b/arch/arm/boot/dts/bcm5301x.dtsi > index 2d9b4dd05830..bf49943f504a 100644 > --- a/arch/arm/boot/dts/bcm5301x.dtsi > +++ b/arch/arm/boot/dts/bcm5301x.dtsi > @@ -402,14 +402,14 @@ dmu@1800c000 { > > cru@100 { > compatible = "simple-bus"; > - reg = <0x100 0x1a4>; > + reg = <0x100 0x248>; > ranges; > #address-cells = <1>; > #size-cells = <1>; > > - pin-controller@1c0 { > - compatible = "brcm,bcm4708-pinmux"; > - reg = <0x1c0 0x24>; > + pinctrl: pin-controller@c0 { > + compatible = "brcm,bcm53012-pinmux"; > + reg = <0xc0 0x24>; > reg-names = "cru_gpio_control"; > > spi-pins { > [0] [1]