From mboxrd@z Thu Jan 1 00:00:00 1970 Received: with ECARTIS (v1.0.0; list linux-mips); Tue, 26 Aug 2014 23:25:39 +0200 (CEST) Received: from test.hauke-m.de ([5.39.93.123]:43201 "EHLO test.hauke-m.de" rhost-flags-OK-OK-OK-OK) by eddie.linux-mips.org with ESMTP id S27006917AbaHZVZhZmra7 (ORCPT ); Tue, 26 Aug 2014 23:25:37 +0200 Received: from [IPv6:2001:470:7259:0:d971:5f1a:7c74:7894] (unknown [IPv6:2001:470:7259:0:d971:5f1a:7c74:7894]) by test.hauke-m.de (Postfix) with ESMTPSA id F341320179; Tue, 26 Aug 2014 23:25:36 +0200 (CEST) Message-ID: <53FCFB50.80800@hauke-m.de> Date: Tue, 26 Aug 2014 23:25:36 +0200 From: Hauke Mehrtens User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.0 MIME-Version: 1.0 To: Arnd Bergmann , linux-arm-kernel@lists.infradead.org CC: linux-wireless@vger.kernel.org, devicetree@vger.kernel.org, linux-mips@linux-mips.org, zajec5@gmail.com Subject: Re: [RFC 4/7] bcma: register bcma as device tree driver References: <1408915485-8078-1-git-send-email-hauke@hauke-m.de> <1408915485-8078-6-git-send-email-hauke@hauke-m.de> <2462012.kILSFadzpm@wuerfel> In-Reply-To: <2462012.kILSFadzpm@wuerfel> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit Return-Path: X-Envelope-To: <"|/home/ecartis/ecartis -s linux-mips"> (uid 0) X-Orcpt: rfc822;linux-mips@linux-mips.org Original-Recipient: rfc822;linux-mips@linux-mips.org X-archive-position: 42267 X-ecartis-version: Ecartis v1.0.0 Sender: linux-mips-bounce@linux-mips.org Errors-to: linux-mips-bounce@linux-mips.org X-original-sender: hauke@hauke-m.de Precedence: bulk List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: linux-mips X-List-ID: linux-mips List-subscribe: List-owner: List-post: List-archive: X-list: linux-mips On 08/25/2014 09:57 AM, Arnd Bergmann wrote: > On Sunday 24 August 2014 23:24:42 Hauke Mehrtens wrote: >> This driver is used by the bcm53xx ARM SoC code. Now it is possible to >> give the address of the chipcommon core in device tree and bcma will >> search for all the other cores. >> >> Signed-off-by: Hauke Mehrtens > > Looks good to me overall. Two small comments: > >> Documentation/devicetree/bindings/bus/bcma.txt | 46 +++++++++++++++++ >> drivers/bcma/host_soc.c | 70 ++++++++++++++++++++++++++ >> include/linux/bcma/bcma.h | 2 + >> 3 files changed, 118 insertions(+) >> create mode 100644 Documentation/devicetree/bindings/bus/bcma.txt >> >> diff --git a/Documentation/devicetree/bindings/bus/bcma.txt b/Documentation/devicetree/bindings/bus/bcma.txt >> new file mode 100644 >> index 0000000..52fb929 >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/bus/bcma.txt >> @@ -0,0 +1,46 @@ >> +Broadcom AIX bcma bus driver >> + >> + >> +Required properties: >> + >> +- compatible : brcm,bus-aix >> + >> +- reg : iomem address range of chipcommon core >> + >> +Optional properties: >> + >> +- sprom: reference to a sprom driver. This is needed for sprom less devices. >> + Use bcm47xx_sprom for example. >> + >> + >> +The cores on the AIX bus are auto detected by bcma. Detection of the >> +IRQ number is not supported on BCM47xx/BCM53xx ARM SoCs, so it is >> +possible to provide the IRQ number over device tree. The IRQ number and >> +the device tree child entry will be added to the core with the matching >> +reg address. > > What is the problem with the interrupt numbers? Is that information > missing completely from the data available to the brcm bus, or is it > in an inconvenient format? I do not have access to the datasheet, only to the vendor source code. The irq numbers are hard coded in the vendor code, see: https://github.com/RMerl/asuswrt-merlin/blob/master/release/src-rt-6.x.4708/linux/linux-2.6.36/arch/arm/plat-brcm/bcm5301x_pcie.c#L286 On the mips SoCs it was possible to read them from some register in the mips core on the aix bus. > >> +Example: >> + >> + aix@18000000 { >> + compatible = "brcm,bus-aix"; >> + reg = <0x18000000 0x1000>; >> + ranges = <0x00000000 0x18000000 0x00100000>; >> + #address-cells = <1>; >> + #size-cells = <1>; >> + sprom = <&sprom0>; >> + >> + gmac@0 { >> + reg = <0x18024000 0x1000>; >> + interrupts = ; >> + }; > > The @0 part seems wrong here: the address should generally match > the first entry in the reg property, which would be gmac@18024000. > > Also, you probably mean ethernet@ not gmac@. Will change that. >> + gmac@1 { >> + reg = <0x18025000 0x1000>; >> + interrupts = ; >> + }; >> + >> + pcie@0 { >> + reg = <0x18012000 0x1000>; >> + interrupts = ; >> + }; >> + }; > > We may require additional properties for the pcie node, depending on whether > we want to use the DT probing interfaces for it, or whether it should just > hardcode the settings used on brcm based on the ID. I wrote a driver for the PCIe host controller and it also automatically detects all needed memory addresses, it just had to provide the IRQ number through device tree. > > Arnd > From mboxrd@z Thu Jan 1 00:00:00 1970 From: hauke@hauke-m.de (Hauke Mehrtens) Date: Tue, 26 Aug 2014 23:25:36 +0200 Subject: [RFC 4/7] bcma: register bcma as device tree driver In-Reply-To: <2462012.kILSFadzpm@wuerfel> References: <1408915485-8078-1-git-send-email-hauke@hauke-m.de> <1408915485-8078-6-git-send-email-hauke@hauke-m.de> <2462012.kILSFadzpm@wuerfel> Message-ID: <53FCFB50.80800@hauke-m.de> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On 08/25/2014 09:57 AM, Arnd Bergmann wrote: > On Sunday 24 August 2014 23:24:42 Hauke Mehrtens wrote: >> This driver is used by the bcm53xx ARM SoC code. Now it is possible to >> give the address of the chipcommon core in device tree and bcma will >> search for all the other cores. >> >> Signed-off-by: Hauke Mehrtens > > Looks good to me overall. Two small comments: > >> Documentation/devicetree/bindings/bus/bcma.txt | 46 +++++++++++++++++ >> drivers/bcma/host_soc.c | 70 ++++++++++++++++++++++++++ >> include/linux/bcma/bcma.h | 2 + >> 3 files changed, 118 insertions(+) >> create mode 100644 Documentation/devicetree/bindings/bus/bcma.txt >> >> diff --git a/Documentation/devicetree/bindings/bus/bcma.txt b/Documentation/devicetree/bindings/bus/bcma.txt >> new file mode 100644 >> index 0000000..52fb929 >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/bus/bcma.txt >> @@ -0,0 +1,46 @@ >> +Broadcom AIX bcma bus driver >> + >> + >> +Required properties: >> + >> +- compatible : brcm,bus-aix >> + >> +- reg : iomem address range of chipcommon core >> + >> +Optional properties: >> + >> +- sprom: reference to a sprom driver. This is needed for sprom less devices. >> + Use bcm47xx_sprom for example. >> + >> + >> +The cores on the AIX bus are auto detected by bcma. Detection of the >> +IRQ number is not supported on BCM47xx/BCM53xx ARM SoCs, so it is >> +possible to provide the IRQ number over device tree. The IRQ number and >> +the device tree child entry will be added to the core with the matching >> +reg address. > > What is the problem with the interrupt numbers? Is that information > missing completely from the data available to the brcm bus, or is it > in an inconvenient format? I do not have access to the datasheet, only to the vendor source code. The irq numbers are hard coded in the vendor code, see: https://github.com/RMerl/asuswrt-merlin/blob/master/release/src-rt-6.x.4708/linux/linux-2.6.36/arch/arm/plat-brcm/bcm5301x_pcie.c#L286 On the mips SoCs it was possible to read them from some register in the mips core on the aix bus. > >> +Example: >> + >> + aix at 18000000 { >> + compatible = "brcm,bus-aix"; >> + reg = <0x18000000 0x1000>; >> + ranges = <0x00000000 0x18000000 0x00100000>; >> + #address-cells = <1>; >> + #size-cells = <1>; >> + sprom = <&sprom0>; >> + >> + gmac at 0 { >> + reg = <0x18024000 0x1000>; >> + interrupts = ; >> + }; > > The @0 part seems wrong here: the address should generally match > the first entry in the reg property, which would be gmac at 18024000. > > Also, you probably mean ethernet@ not gmac at . Will change that. >> + gmac at 1 { >> + reg = <0x18025000 0x1000>; >> + interrupts = ; >> + }; >> + >> + pcie at 0 { >> + reg = <0x18012000 0x1000>; >> + interrupts = ; >> + }; >> + }; > > We may require additional properties for the pcie node, depending on whether > we want to use the DT probing interfaces for it, or whether it should just > hardcode the settings used on brcm based on the ID. I wrote a driver for the PCIe host controller and it also automatically detects all needed memory addresses, it just had to provide the IRQ number through device tree. > > Arnd > From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hauke Mehrtens Subject: Re: [RFC 4/7] bcma: register bcma as device tree driver Date: Tue, 26 Aug 2014 23:25:36 +0200 Message-ID: <53FCFB50.80800@hauke-m.de> References: <1408915485-8078-1-git-send-email-hauke@hauke-m.de> <1408915485-8078-6-git-send-email-hauke@hauke-m.de> <2462012.kILSFadzpm@wuerfel> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit Return-path: In-Reply-To: <2462012.kILSFadzpm@wuerfel> Sender: linux-wireless-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: Arnd Bergmann , linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org Cc: linux-wireless-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-mips-6z/3iImG2C8G8FEW9MqTrA@public.gmane.org, zajec5-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org List-Id: devicetree@vger.kernel.org On 08/25/2014 09:57 AM, Arnd Bergmann wrote: > On Sunday 24 August 2014 23:24:42 Hauke Mehrtens wrote: >> This driver is used by the bcm53xx ARM SoC code. Now it is possible to >> give the address of the chipcommon core in device tree and bcma will >> search for all the other cores. >> >> Signed-off-by: Hauke Mehrtens > > Looks good to me overall. Two small comments: > >> Documentation/devicetree/bindings/bus/bcma.txt | 46 +++++++++++++++++ >> drivers/bcma/host_soc.c | 70 ++++++++++++++++++++++++++ >> include/linux/bcma/bcma.h | 2 + >> 3 files changed, 118 insertions(+) >> create mode 100644 Documentation/devicetree/bindings/bus/bcma.txt >> >> diff --git a/Documentation/devicetree/bindings/bus/bcma.txt b/Documentation/devicetree/bindings/bus/bcma.txt >> new file mode 100644 >> index 0000000..52fb929 >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/bus/bcma.txt >> @@ -0,0 +1,46 @@ >> +Broadcom AIX bcma bus driver >> + >> + >> +Required properties: >> + >> +- compatible : brcm,bus-aix >> + >> +- reg : iomem address range of chipcommon core >> + >> +Optional properties: >> + >> +- sprom: reference to a sprom driver. This is needed for sprom less devices. >> + Use bcm47xx_sprom for example. >> + >> + >> +The cores on the AIX bus are auto detected by bcma. Detection of the >> +IRQ number is not supported on BCM47xx/BCM53xx ARM SoCs, so it is >> +possible to provide the IRQ number over device tree. The IRQ number and >> +the device tree child entry will be added to the core with the matching >> +reg address. > > What is the problem with the interrupt numbers? Is that information > missing completely from the data available to the brcm bus, or is it > in an inconvenient format? I do not have access to the datasheet, only to the vendor source code. The irq numbers are hard coded in the vendor code, see: https://github.com/RMerl/asuswrt-merlin/blob/master/release/src-rt-6.x.4708/linux/linux-2.6.36/arch/arm/plat-brcm/bcm5301x_pcie.c#L286 On the mips SoCs it was possible to read them from some register in the mips core on the aix bus. > >> +Example: >> + >> + aix@18000000 { >> + compatible = "brcm,bus-aix"; >> + reg = <0x18000000 0x1000>; >> + ranges = <0x00000000 0x18000000 0x00100000>; >> + #address-cells = <1>; >> + #size-cells = <1>; >> + sprom = <&sprom0>; >> + >> + gmac@0 { >> + reg = <0x18024000 0x1000>; >> + interrupts = ; >> + }; > > The @0 part seems wrong here: the address should generally match > the first entry in the reg property, which would be gmac@18024000. > > Also, you probably mean ethernet@ not gmac@. Will change that. >> + gmac@1 { >> + reg = <0x18025000 0x1000>; >> + interrupts = ; >> + }; >> + >> + pcie@0 { >> + reg = <0x18012000 0x1000>; >> + interrupts = ; >> + }; >> + }; > > We may require additional properties for the pcie node, depending on whether > we want to use the DT probing interfaces for it, or whether it should just > hardcode the settings used on brcm based on the ID. I wrote a driver for the PCIe host controller and it also automatically detects all needed memory addresses, it just had to provide the IRQ number through device tree. > > Arnd > -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html