From patchwork Fri Jul 8 09:12:02 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Linus Walleij X-Patchwork-Id: 71666 Delivered-To: patch@linaro.org Received: by 10.140.28.4 with SMTP id 4csp344879qgy; Fri, 8 Jul 2016 02:13:06 -0700 (PDT) X-Received: by 10.98.9.68 with SMTP id e65mr8094011pfd.121.1467969185922; Fri, 08 Jul 2016 02:13:05 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d5si3197827pfa.86.2016.07.08.02.13.05; Fri, 08 Jul 2016 02:13:05 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-arm-msm-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org; spf=pass (google.com: best guess record for domain of linux-arm-msm-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-arm-msm-owner@vger.kernel.org; dmarc=fail (p=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754352AbcGHJMy (ORCPT + 8 others); Fri, 8 Jul 2016 05:12:54 -0400 Received: from mail-lf0-f50.google.com ([209.85.215.50]:35820 "EHLO mail-lf0-f50.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754196AbcGHJMd (ORCPT ); Fri, 8 Jul 2016 05:12:33 -0400 Received: by mail-lf0-f50.google.com with SMTP id l188so26073164lfe.2 for ; Fri, 08 Jul 2016 02:12:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=lEoCES8DrXWWXJvzhC0k1fUb4ikjJkIu/8fAfiobOMk=; b=KZ9IsatG+iPinOjpWG2m+N3TVxiS5n2/TMZFontlzGHoYr2su8Dqhc1FVlOkhhMc3n yAidR/KBnBSZrM9vzHg8UoRywrJiZsWqsYvshEt2vWEF/8FhGnxvR5+9pq5vQ0voYMVO Da4ErqToHfAGZGcPG10G8WfuAN7r+HuHC4j+Y= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=lEoCES8DrXWWXJvzhC0k1fUb4ikjJkIu/8fAfiobOMk=; b=Yv68/Ybl8xNlezGfQqhyFzWpZf0jT4UPmHUENb0vpoalmlM7S10BFZ4kQqOJ1+id9M VnuEgeCLTdmh7HUbVyGhBBti7bu45eT/fz2l7O2UH5vivT6rDftEqzS+tsKp/TTfafKv yFOOfCsVEkcVVo1kaE7fFa/ZC8lKWk5RazFbpU1UmGZiLRUZhlpSFngZSWTUQjH7HkNa PCmlT5RwXIn2urXJ92cKU0jo6S0GOiHiPjrEql8SSosdJtHKCSJov8KfPCLrPK0gvgYY jepDDmmaXjAquyjcEqdbqSPUjFxRhPddf5nO2PjWWP4sDZEoHMvEYjQ3OjhxQYIl2wKz UZBA== X-Gm-Message-State: ALyK8tJcfVqSrAeHg+1f2e61JAcS5CiKD2krVYlXAnKfrLAU9J9cwgtnBUai+o/JpaPGMNRa X-Received: by 10.25.15.84 with SMTP id e81mr95255lfi.3.1467969150757; Fri, 08 Jul 2016 02:12:30 -0700 (PDT) Received: from localhost.localdomain.localdomain (c-cc7c71d5.014-348-6c756e10.cust.bredbandsbolaget.se. [213.113.124.204]) by smtp.gmail.com with ESMTPSA id 94sm8214379lfr.7.2016.07.08.02.12.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 08 Jul 2016 02:12:30 -0700 (PDT) From: Linus Walleij To: linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-soc@vger.kernel.org, Andy Gross Cc: Stephen Boyd , Bjorn Andersson , David Brown , Linus Walleij Subject: [PATCH 4/4] ARM: dts: add SMSC ethernet on the APQ8060 Dragonboard Date: Fri, 8 Jul 2016 11:12:02 +0200 Message-Id: <1467969122-6552-5-git-send-email-linus.walleij@linaro.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1467969122-6552-1-git-send-email-linus.walleij@linaro.org> References: <1467969122-6552-1-git-send-email-linus.walleij@linaro.org> Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org The SMSC9112 ethernet controller is connected to chip select 2 on the EBI2 bus on the APQ8060 Dragonboard. We set this up by activating EBI2, creating a chipselect entry as a subnode, and then putting the ethernet controller in a subnode of the chipselect. After the chipselect is configured, the SMSC device will be instantiated. Signed-off-by: Linus Walleij --- arch/arm/boot/dts/qcom-apq8060-dragonboard.dts | 130 +++++++++++++++++++++++++ 1 file changed, 130 insertions(+) -- 2.7.4 -- To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/arch/arm/boot/dts/qcom-apq8060-dragonboard.dts b/arch/arm/boot/dts/qcom-apq8060-dragonboard.dts index 0abc93e5bb00..3604608afe1e 100644 --- a/arch/arm/boot/dts/qcom-apq8060-dragonboard.dts +++ b/arch/arm/boot/dts/qcom-apq8060-dragonboard.dts @@ -51,6 +51,29 @@ regulator-boot-on; }; + /* GPIO controlled ethernet power regulator */ + dragon_veth: xc622a331mrg { + compatible = "regulator-fixed"; + regulator-name = "XC6222A331MR-G"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + vin-supply = <&vph>; + gpio = <&pm8058_gpio 40 GPIO_ACTIVE_HIGH>; + enable-active-high; + pinctrl-names = "default"; + pinctrl-0 = <&dragon_veth_gpios>; + regulator-always-on; + }; + + /* VDDvario fixed regulator */ + dragon_vario: nds332p { + compatible = "regulator-fixed"; + regulator-name = "NDS332P"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + vin-supply = <&pm8058_s3>; + }; + /* This is a levelshifter for SDCC5 */ dragon_vio_txb: txb0104rgyr { compatible = "regulator-fixed"; @@ -167,6 +190,41 @@ bias-pull-up; }; }; + + dragon_ebi2_pins: ebi2 { + /* + * Pins used by EBI2 on the Dragonboard, actually only + * only CS2 is used by a real peripheral. CS0 is just + * routed to a test point. + */ + mux0 { + /* + * Pins used by EBI2 on the Dragonboard, actually only + * only CS2 is used by a real peripheral. CS0 is just + * routed to a test point. + */ + pins = + /* "gpio39", CS1A_N this is not good to mux */ + "gpio40", /* CS2A_N */ + "gpio134"; /* CS0_N testpoint TP29 */ + function = "ebi2cs"; + }; + mux1 { + pins = + /* EBI2_ADDR_7 downto EBI2_ADDR_0 address bus */ + "gpio123", "gpio124", "gpio125", "gpio126", + "gpio127", "gpio128", "gpio129", "gpio130", + /* EBI2_DATA_15 downto EBI2_DATA_0 data bus */ + "gpio135", "gpio136", "gpio137", "gpio138", + "gpio139", "gpio140", "gpio141", "gpio142", + "gpio143", "gpio144", "gpio145", "gpio146", + "gpio147", "gpio148", "gpio149", "gpio150", + "gpio151", /* EBI2_OE_N */ + "gpio153", /* EBI2_ADV */ + "gpio157"; /* EBI2_WE_N */ + function = "ebi2"; + }; + }; }; qcom,ssbi@500000 { @@ -201,6 +259,15 @@ }; gpio@150 { + dragon_ethernet_gpios: ethernet-gpios { + pinconf { + pins = "gpio7"; + function = "normal"; + input-enable; + bias-disable; + power-source = ; + }; + }; dragon_bmp085_gpios: bmp085-gpios { pinconf { pins = "gpio16"; @@ -238,6 +305,15 @@ power-source = ; }; }; + dragon_veth_gpios: veth-gpios { + pinconf { + pins = "gpio40"; + function = "normal"; + bias-disable; + drive-push-pull; + // power-source = ; + }; + }; }; }; }; @@ -283,6 +359,60 @@ }; }; + ebi2@1a100000 { + /* The EBI2 will instantiate first, then populate its children */ + status = "ok"; + pinctrl-names = "default"; + pinctrl-0 = <&dragon_ebi2_pins>; + + cs2@1b800000 { + chipselect = <2>; + #address-cells = <1>; + #size-cells = <1>; + ranges; + /* + * SLOW chipselect config + * Delay 9 cycles (140ns@64MHz) between SMSC LAN9221 + * Ethernet controller reads and writes. + */ + xmem-recovery-cycles = <0>; + xmem-write-hold-cycles = <3>; + xmem-write-delta-cycles = <31>; + xmem-read-delta-cycles = <28>; + xmem-write-wait-cycles = <9>; + xmem-read-wait-cycles = <9>; + + /* + * An on-board SMSC LAN9221 chip for "debug ethernet", + * which is actually just an ordinary ethernet on the + * EBI2. This has a 25MHz chrystal next to it, so no + * clocking is needed. + */ + ethernet-ebi2@1b800000 { + compatible = "smsc,lan9221", "smsc,lan9115"; + reg = <0x1b800000 0x100>; + /* + * GPIO7 has interrupt 198 on the PM8058 + * The second interrupt is the PME interrupt + * for network wakeup, connected to the TLMM. + */ + interrupts-extended = <&pmicintc 198 IRQ_TYPE_EDGE_FALLING>, + <&tlmm 29 IRQ_TYPE_EDGE_RISING>; + reset-gpios = <&tlmm 30 GPIO_ACTIVE_LOW>; + vdd33a-supply = <&dragon_veth>; + vddvario-supply = <&dragon_vario>; + pinctrl-names = "default"; + pinctrl-0 = <&dragon_ethernet_gpios>; + phy-mode = "mii"; + reg-io-width = <2>; + smsc,force-external-phy; + /* IRQ on edge falling = active low */ + smsc,irq-active-low; + smsc,irq-push-pull; + }; + }; + }; + rpm@104000 { /* * Set up of the PMIC RPM regulators for this board