From patchwork Tue Sep 30 10:22:26 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?UmFmYcWCIE1pxYJlY2tp?= X-Patchwork-Id: 394882 Return-Path: X-Original-To: incoming-dt@patchwork.ozlabs.org Delivered-To: patchwork-incoming-dt@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 1AC5114013F for ; Tue, 30 Sep 2014 20:22:53 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751580AbaI3KWm (ORCPT ); Tue, 30 Sep 2014 06:22:42 -0400 Received: from mail-we0-f177.google.com ([74.125.82.177]:53934 "EHLO mail-we0-f177.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750782AbaI3KWk (ORCPT ); Tue, 30 Sep 2014 06:22:40 -0400 Received: by mail-we0-f177.google.com with SMTP id t60so14472407wes.8 for ; Tue, 30 Sep 2014 03:22:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-type:content-transfer-encoding; bh=9LxHgMB2c/PdRFzp1lskcjD/6I1MyT0IzD+eG84GHrg=; b=tFnLiFv+DQ6Ys/VHBFgJB1U3pAwC8o9ApzWQJbCsXjK+GRqdH2ugYhLg4eA5ml7CRH 6EbU40+0tyAiTY9mksuBMyb92ArddkRhALplq/Mm0gUlh+KbFLg7BLweMXlEQC6RH5fU aicr2fP+xHsTcnndS87/ALOa9k0iD63GWfEi9QQ9lnIrKUxCG0rWVBXXge/4jomnvTxi 5OtR99sZjdspJYn6cROKr4gsk58duD/7gsCV3rQBEX1wVYIx38NxUcWsA1Kjb3GnYuK4 rGX1/raS04DZ7fsKrJkKiF1f/RLPeGxJnf6P3jQ/HVqCB7056fGA1Hi2W6+Hui11FrTY Q4wQ== X-Received: by 10.194.11.10 with SMTP id m10mr49860378wjb.77.1412072558126; Tue, 30 Sep 2014 03:22:38 -0700 (PDT) Received: from linux-tdhb.lan (ip-194-187-74-233.konfederacka.maverick.com.pl. [194.187.74.233]) by mx.google.com with ESMTPSA id hk8sm14656263wib.18.2014.09.30.03.22.36 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 30 Sep 2014 03:22:37 -0700 (PDT) From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= To: "John W. Linville" , linux-wireless@vger.kernel.org Cc: Hauke Mehrtens , linux-arm-kernel@lists.infradead.org, arnd@arndb.de, devicetree@vger.kernel.org, =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= Subject: [PATCH V3] bcma: use device from DT (brcm, bus-chipcommon) for SoC GPIO chip Date: Tue, 30 Sep 2014 12:22:26 +0200 Message-Id: <1412072546-3529-1-git-send-email-zajec5@gmail.com> X-Mailer: git-send-email 1.8.4.5 In-Reply-To: <1411892641-5662-1-git-send-email-zajec5@gmail.com> References: <1411892641-5662-1-git-send-email-zajec5@gmail.com> MIME-Version: 1.0 Sender: devicetree-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org This will allow us to define GPIO-attached devices (LEDs, buttons) in the the device tree. Signed-off-by: Rafał Miłecki --- This is based on top of [PATCH v6] bcma: register bcma as device tree driver that I hope will reach wireless-next git tree. V2: Describe axi chilren and make gpio a child of chipcommon core. V3: Make chipcommon a GPIO controller (avoid extra sub-child) Speed up finding OF node in driver_gpio.c --- Documentation/devicetree/bindings/bus/bcma.txt | 13 +++++++++++++ drivers/bcma/driver_gpio.c | 6 ++++++ 2 files changed, 19 insertions(+) diff --git a/Documentation/devicetree/bindings/bus/bcma.txt b/Documentation/devicetree/bindings/bus/bcma.txt index e9070c1..0538692 100644 --- a/Documentation/devicetree/bindings/bus/bcma.txt +++ b/Documentation/devicetree/bindings/bus/bcma.txt @@ -9,6 +9,11 @@ Required properties: The cores on the AXI bus are automatically detected by bcma with the memory ranges they are using and they get registered afterwards. +The top-level axi bus may contain children representing attached cores +(devices). This is needed since some hardware details can't be auto +detected (e.g. IRQ numbers). Also some of the cores may be responsible +for extra things, e.g. ChipCommon providing access to the GPIO chip. + Example: axi@18000000 { @@ -17,4 +22,12 @@ Example: ranges = <0x00000000 0x18000000 0x00100000>; #address-cells = <1>; #size-cells = <1>; + + chipcommon { + compatible = "brcm,bus-chipcommon"; + reg = <0x00000000 0x1000>; + + gpio-controller; + #gpio-cells = <2>; + }; }; diff --git a/drivers/bcma/driver_gpio.c b/drivers/bcma/driver_gpio.c index 8ea497c..28bdbe5 100644 --- a/drivers/bcma/driver_gpio.c +++ b/drivers/bcma/driver_gpio.c @@ -218,6 +218,12 @@ int bcma_gpio_init(struct bcma_drv_cc *cc) #if IS_BUILTIN(CONFIG_BCM47XX) chip->to_irq = bcma_gpio_to_irq; #endif +#if IS_BUILTIN(CONFIG_OF) + if (cc->core->bus->hosttype == BCMA_HOSTTYPE_SOC) + chip->of_node = of_find_compatible_node( + bus->host_pdev->dev.of_node, NULL, + "brcm,bus-chipcommon"); +#endif switch (cc->core->bus->chipinfo.id) { case BCMA_CHIP_ID_BCM5357: case BCMA_CHIP_ID_BCM53572: