Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S979065AbdDXXR1 (ORCPT ); Mon, 24 Apr 2017 19:17:27 -0400 Received: from mail-qk0-f194.google.com ([209.85.220.194]:33436 "EHLO mail-qk0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S978539AbdDXXRW (ORCPT ); Mon, 24 Apr 2017 19:17:22 -0400 Subject: Re: [PATCH 1/2] net: dsa: b53: Add compatible strings for the Cygnus-family BCM11360. To: Arun Parameswaran , Eric Anholt , Vivien Didelot , Andrew Lunn , netdev@vger.kernel.org, Rob Herring , Mark Rutland , devicetree@vger.kernel.org References: <20170424215022.30382-1-eric@anholt.net> <20170424215022.30382-2-eric@anholt.net> <173c8ff2-6a31-5460-9a3f-8d8ac445a336@gmail.com> <1361654c-e4eb-e0a0-3397-b43235b5ff60@broadcom.com> Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, bcm-kernel-feedback-list@broadcom.com, Ray Jui , Scott Branden , Jon Mason From: Florian Fainelli Message-ID: Date: Mon, 24 Apr 2017 16:17:17 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <1361654c-e4eb-e0a0-3397-b43235b5ff60@broadcom.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3531 Lines: 73 On 04/24/2017 04:15 PM, Arun Parameswaran wrote: > > > On 17-04-24 04:07 PM, Florian Fainelli wrote: >> On 04/24/2017 04:03 PM, Arun Parameswaran wrote: >>> Hi Eric >>> >>> A comment on the Device ID. >>> >>> >>> On 17-04-24 02:50 PM, Eric Anholt wrote: >>>> Cygnus is a small family of SoCs, of which we currently have >>>> devicetree for BCM11360 and BCM58300. The 11360's B53 is mostly the >>>> same as 58xx, just requiring a tiny bit of setup that was previously >>>> missing. >>>> >>>> Signed-off-by: Eric Anholt >>>> --- >>>> Documentation/devicetree/bindings/net/dsa/b53.txt | 3 +++ >>>> drivers/net/dsa/b53/b53_srab.c | 2 ++ >>>> 2 files changed, 5 insertions(+) >>>> >>>> diff --git a/Documentation/devicetree/bindings/net/dsa/b53.txt b/Documentation/devicetree/bindings/net/dsa/b53.txt >>>> index d6c6e41648d4..49c93d3c0839 100644 >>>> --- a/Documentation/devicetree/bindings/net/dsa/b53.txt >>>> +++ b/Documentation/devicetree/bindings/net/dsa/b53.txt >>>> @@ -29,6 +29,9 @@ Required properties: >>>> "brcm,bcm58625-srab" >>>> "brcm,bcm88312-srab" and the mandatory "brcm,nsp-srab string >>>> >>>> + For the BCM11360 SoC, must be: >>>> + "brcm,bcm11360-srab" and the mandatory "brcm,cygnus-srab string >>>> + >>>> For the BCM63xx/33xx SoCs with an integrated switch, must be one of: >>>> "brcm,bcm3384-switch" >>>> "brcm,bcm6328-switch" >>>> diff --git a/drivers/net/dsa/b53/b53_srab.c b/drivers/net/dsa/b53/b53_srab.c >>>> index 8a62b6a69703..c37ffd1b6833 100644 >>>> --- a/drivers/net/dsa/b53/b53_srab.c >>>> +++ b/drivers/net/dsa/b53/b53_srab.c >>>> @@ -364,6 +364,7 @@ static const struct of_device_id b53_srab_of_match[] = { >>>> { .compatible = "brcm,bcm53018-srab" }, >>>> { .compatible = "brcm,bcm53019-srab" }, >>>> { .compatible = "brcm,bcm5301x-srab" }, >>>> + { .compatible = "brcm,bcm11360-srab", .data = (void *)BCM58XX_DEVICE_ID }, >>>> { .compatible = "brcm,bcm58522-srab", .data = (void *)BCM58XX_DEVICE_ID }, >>>> { .compatible = "brcm,bcm58525-srab", .data = (void *)BCM58XX_DEVICE_ID }, >>>> { .compatible = "brcm,bcm58535-srab", .data = (void *)BCM58XX_DEVICE_ID }, >>>> @@ -371,6 +372,7 @@ static const struct of_device_id b53_srab_of_match[] = { >>>> { .compatible = "brcm,bcm58623-srab", .data = (void *)BCM58XX_DEVICE_ID }, >>>> { .compatible = "brcm,bcm58625-srab", .data = (void *)BCM58XX_DEVICE_ID }, >>>> { .compatible = "brcm,bcm88312-srab", .data = (void *)BCM58XX_DEVICE_ID }, >>>> + { .compatible = "brcm,cygnus-srab", .data = (void *)BCM58XX_DEVICE_ID }, >>> The device ID should be 0xd300. This is the actual value read from the switch regs. >>> This also requires an entry in the 'b53_switch_chips' structure in b53_common.c. >> These are not real ID numbers, these are values that indicate the >> generation of the switch being embedded into the SoC. Within >> b53_common.c we don't have to differentiate a Starfighter 2 embedded in >> BCM11360, NSP, or 7445 or 7278, which is why using 58XX_DEVICE_ID should >> be good enough. > Ok. Thanks. > > I was under the impression, that these id's could be used in the b53_switch_detect() > API to auto detect the switch. In that API, the switch ID is read from the > Management page register. For external switches that is the case, but for internal/integrated switches, the ID is not always representative of the switch. This is why the choice of a chip-type ID was used here while adding support for NSP to the b53 driver. -- Florian