From patchwork Sun Mar 7 03:13:51 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Evgeny Boger X-Patchwork-Id: 12120403 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 86069C433DB for ; Sun, 7 Mar 2021 03:16:20 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 1A4C565077 for ; Sun, 7 Mar 2021 03:16:20 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1A4C565077 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=wirenboard.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:MIME-Version:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:References:In-Reply-To:Message-Id:Date:Subject:Cc:To :From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=jD0qocKZWUQt/xuXTCRcYrONXzUPO9hjZ1nicJLmIgc=; b=Wpxhsa6SAu7QCSw7eESkTx6nZ7 v3RzKBDGWbd4Opf7pbtTZJBIHLd57wRrziElsnCnUSSwF/uc5WcrodnT+25RFTam/JCTltOOOFh0s Q0AbzSe57yqS2cZjc53dRPkg5t1ARihGkm6DeDT/GVzH0BzD4RozJZw2oHRSx1iFSYNXptB24Gj7v Y5KdloBS/LG/64VeYEwOghnPJE9gSS10sURnvY2gqZeOzdjUWrwoDvKbDTrTOHUb7LRpznW25FKq7 pMi+neCKvRa9OLVibJ5sxzHnn62rMwehpFlmImJYwDzcD1kwTLtggkeAXarZkFpMeYDqG0tGCbfFk J0J0ZmWw==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lIjsA-007Tlx-Rh; Sun, 07 Mar 2021 03:14:27 +0000 Received: from mail-lf1-x134.google.com ([2a00:1450:4864:20::134]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lIjs0-007Tds-Ry for linux-arm-kernel@lists.infradead.org; Sun, 07 Mar 2021 03:14:19 +0000 Received: by mail-lf1-x134.google.com with SMTP id v9so13597465lfa.1 for ; Sat, 06 Mar 2021 19:14:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=wirenboard-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=QYIQSSMI82k7oQYcyVX3kx+rgpAtWYBUfAaleiiqPbw=; b=ztGsxjcDNLGPlCbukFiuOd5X/oQm/0Kr2NefJcYxFKpmYy6P7tr4/C2QKu/mF3PzvO plY6BalzXj647Re6bcQg1czkPH4sxKDWruTIC/wz8A0mKHWv90PJ8oruD5laKfhd1Ii+ XvNx2A5tIHyLGlQyEu0fscSnK3sokRmkn41Il8fg5ggfjRoQBm2HALrWqBGRe3+Bcmco RbpO6IcZ8QmzKkCyio3yFMSE62ilc4QQnGMsDfBHJ5f8JXG+QlC7duxIaHU2nIn/bYiW GujhBJbiohfKmD0tt4IxAHibBYPhqrC0kJGHa0Iut40PyPl6x1cYXX5mv1e23cviSYDX YNoQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=QYIQSSMI82k7oQYcyVX3kx+rgpAtWYBUfAaleiiqPbw=; b=MmBK+18VLHPiaGbZjbY1ixZfzYo0NR9oOaq2XhKfcvZPwXNGRL2FLFgmN/oP2bQZzw uACllQIWFnyXB7smVJ9GTHZ0Bw9cWnJWOSIeocDPDNYXLoWNap1nN8r/74alDrM5vQ2s ePTvRMt4hGWHWPbqNXYIziV0TdaGC/2S7P9HqcTQxUSM/vkQpwDGNkktSeScOg6QhzOx mvJJsU66P4mxRRztcm6CyJ5ZuCa9Yj+w6s6xLecD2eF2V9qtuVGa3AEiVPKEhrVDdxuf geMnb6AIV+WqehyxZfaquHZ8DHsLFdtOBKdD9c+GuWjVWPbPLvMsY0ArQ3pjHNENaSsU IpWw== X-Gm-Message-State: AOAM5303dfHwOo6aONKZD5NNqZvMwZQk5PNMqT/mAggReseaQMsaf0MX 0VxWf9qHUybL77npNAGizRtdAA== X-Google-Smtp-Source: ABdhPJwFcGU2v6B1JjERLd3D9iugpa+XPI0P9ax1jWCjUTU5dltfY4BwmO6hpeYXHwtYVHsn/Dq+5g== X-Received: by 2002:ac2:5feb:: with SMTP id s11mr9886081lfg.558.1615086856052; Sat, 06 Mar 2021 19:14:16 -0800 (PST) Received: from boger-laptop.lan (81.5.99.6.dhcp.mipt-telecom.ru. [81.5.99.6]) by smtp.gmail.com with ESMTPSA id u16sm847582lff.169.2021.03.06.19.14.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 06 Mar 2021 19:14:15 -0800 (PST) From: Evgeny Boger To: Maxime Ripard , Chen-Yu Tsai , linux-arm-kernel@lists.infradead.org Cc: Evgeny Boger , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Rob Herring Subject: [PATCH 1/2] net: allwinner: reset control support Date: Sun, 7 Mar 2021 06:13:51 +0300 Message-Id: <20210307031353.12643-2-boger@wirenboard.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210307031353.12643-1-boger@wirenboard.com> References: <20210307031353.12643-1-boger@wirenboard.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210307_031417_038354_4041F01F X-CRM114-Status: GOOD ( 14.98 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org R40 (aka V40/A40i/T3) and A10/A20 share the same EMAC IP. However, on R40 the EMAC is gated by default. Signed-off-by: Evgeny Boger --- drivers/net/ethernet/allwinner/sun4i-emac.c | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/allwinner/sun4i-emac.c b/drivers/net/ethernet/allwinner/sun4i-emac.c index 5ed80d9a6b9f..c0ae06dd922c 100644 --- a/drivers/net/ethernet/allwinner/sun4i-emac.c +++ b/drivers/net/ethernet/allwinner/sun4i-emac.c @@ -28,6 +28,7 @@ #include #include #include +#include #include #include "sun4i-emac.h" @@ -85,6 +86,7 @@ struct emac_board_info { unsigned int link; unsigned int speed; unsigned int duplex; + struct reset_control *reset; phy_interface_t phy_interface; }; @@ -791,6 +793,7 @@ static int emac_probe(struct platform_device *pdev) struct net_device *ndev; int ret = 0; const char *mac_addr; + struct reset_control *reset; ndev = alloc_etherdev(sizeof(struct emac_board_info)); if (!ndev) { @@ -852,6 +855,19 @@ static int emac_probe(struct platform_device *pdev) goto out_release_sram; } + reset = devm_reset_control_get_optional_exclusive(&pdev->dev, NULL); + if (IS_ERR(reset)) { + dev_err(&pdev->dev, "unable to request reset\n"); + ret = -ENODEV; + goto out_release_sram; + } + db->reset = reset; + ret = reset_control_deassert(db->reset); + if (ret) { + dev_err(&pdev->dev, "could not deassert EMAC reset\n"); + goto out_release_sram; + } + /* Read MAC-address from DT */ mac_addr = of_get_mac_address(np); if (!IS_ERR(mac_addr)) @@ -881,7 +897,7 @@ static int emac_probe(struct platform_device *pdev) if (ret) { dev_err(&pdev->dev, "Registering netdev failed!\n"); ret = -ENODEV; - goto out_release_sram; + goto out_assert_reset; } dev_info(&pdev->dev, "%s: at %p, IRQ %d MAC: %pM\n", @@ -889,6 +905,8 @@ static int emac_probe(struct platform_device *pdev) return 0; +out_assert_reset: + reset_control_assert(db->reset); out_release_sram: sunxi_sram_release(&pdev->dev); out_clk_disable_unprepare: @@ -913,6 +931,7 @@ static int emac_remove(struct platform_device *pdev) unregister_netdev(ndev); sunxi_sram_release(&pdev->dev); clk_disable_unprepare(db->clk); + reset_control_assert(db->reset); irq_dispose_mapping(ndev->irq); iounmap(db->membase); free_netdev(ndev); From patchwork Sun Mar 7 03:13:53 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Evgeny Boger X-Patchwork-Id: 12120401 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7298FC433E6 for ; Sun, 7 Mar 2021 03:16:20 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id EB15164FBD for ; Sun, 7 Mar 2021 03:16:19 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EB15164FBD Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=wirenboard.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:MIME-Version:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:References:In-Reply-To:Message-Id:Date:Subject:Cc:To :From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=zR4lam47aun0fytKI1RDKCW4ji3I7Q3PmiB0SzngbBU=; b=fPqkM2BRH9ogTXbWcV5TIt9PRf rVUbT/vpBISqMxNc2TOynerqye+ZoSMoOZeyePg5IMauakITzzCaLb9nWCBvRIL8sRS7jt7g35c07 bAJxihTd0QJq3J4uoB1Zm4IGvJMz8yPPJnNRzXbbLX7pND1U7WRKIYBZ2nr3Jy6nvKX35D8HooXvx caISbm4JOPFeEU36mzdQXQjS4nQ7gGi5PWZmZ91aPeiBiP5C9L+AZhL0mEwZWFvNW/fsGtjR/VzO8 h5SWxxPbBdowfKzDaAyHLMlWSnVYxRCOTSZF3SqO79/4UPF3NKz5iNpAJGZ9HOs/gUGT5xuJ5ltHY L1PObU4A==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lIjsL-007TsD-1O; Sun, 07 Mar 2021 03:14:37 +0000 Received: from mail-lf1-x12a.google.com ([2a00:1450:4864:20::12a]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lIjs7-007Tja-DK for linux-arm-kernel@lists.infradead.org; Sun, 07 Mar 2021 03:14:25 +0000 Received: by mail-lf1-x12a.google.com with SMTP id n16so13573111lfb.4 for ; Sat, 06 Mar 2021 19:14:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=wirenboard-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=C2CaK9Q5B8faMG7i8vl9maodspZrHVfVr3fXo4WAJf0=; b=PNXStpYktEjpBgZ/hissQ3G7IuZT33S2owFauD/MdFMua7SjTngIBWCmUhxJx2l0Y4 JeaaLGER0jSIIqhRCSTdIuB/cFw1irOvinM15FlArUGS7yFY4GhMc+7750djbSI5EYr7 zcoc5J3FwgDZSQbpixr7gLBf14QFzB+OqNFTocurqkli3M8xwU4rB4xDV1/WPeyhiEKv j1pdW/HRRS8+UmOhtZGiO/fe7gtMvBiFVZxZlfL7CfSDf3b8t8YKls/2eC7aS7wSSvzV rdwQOq57QzZ1HecL7++iOWK6NOlh5QH3HsPbeLusC0Du6uFflctJw3mTXg4R9+zhkFNC YG8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=C2CaK9Q5B8faMG7i8vl9maodspZrHVfVr3fXo4WAJf0=; b=J6pP8K/3sfBXEQGGS+MetCOLpPMh28ShUF2FWes4cMEYzZ608Mj/74yLWJWxu4bFBH AanMXnhj6xqU4DJsAUp73dJLGqvN9pbg1mMBIRDlAAtcUDkjSSqtrlGobCKWVnprlzCB qqKD1dInpT4opwfeQT5S3OAjyw5A33iL33WM3f/Y70NBkSu5Yh8RNMQrhNvwLTuQH8Og +AMiI72NBP9cVUUBhl5zX+BIXrUI9um+RqqR830cbqQGpxUaz+pE8DGAwdNB/d6MjTVZ Mp4b1JEF9dWLZzPJOmSsdpxsRnfxszFIgd22G4LVoTyerB5kfVS3hlZBr+4jJKSxaohi AI1w== X-Gm-Message-State: AOAM532d1uL8bAU77u+tBHeQwyjy6vJxCyn7ADlrhBzvVnOsfYRUOWLt +o/BySpxfsHNmYGvIGd0Uric9w== X-Google-Smtp-Source: ABdhPJxQXQqKVaJ7fRNXa7S/Xh91B3ozqmc3OuC5Wvl80Lk65giyEAZDynCpjQ6XgzF6XdmdUsCToA== X-Received: by 2002:a05:6512:1181:: with SMTP id g1mr10114244lfr.502.1615086862652; Sat, 06 Mar 2021 19:14:22 -0800 (PST) Received: from boger-laptop.lan (81.5.99.6.dhcp.mipt-telecom.ru. [81.5.99.6]) by smtp.gmail.com with ESMTPSA id u16sm847582lff.169.2021.03.06.19.14.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 06 Mar 2021 19:14:22 -0800 (PST) From: Evgeny Boger To: Maxime Ripard , Chen-Yu Tsai , linux-arm-kernel@lists.infradead.org Cc: Evgeny Boger , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Rob Herring Subject: [PATCH 2/2] dts: r40: add second ethernet support Date: Sun, 7 Mar 2021 06:13:53 +0300 Message-Id: <20210307031353.12643-4-boger@wirenboard.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210307031353.12643-1-boger@wirenboard.com> References: <20210307031353.12643-1-boger@wirenboard.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210307_031423_696947_8AACD467 X-CRM114-Status: GOOD ( 12.42 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org R40 (aka V40, A40i, T3) has two different Ethernet IP called EMAC and GMAC. EMAC only support 10/100 Mbit in MII mode, while GMAC support both 10/100 (MII) and 10/100/1000 (RGMII). In contrast to A10/A20 where GMAC and EMAC share the same pins making EMAC somewhat pointless, on R40 EMAC can be routed to port H. Both EMAC (on port H) and GMAC (on port A) can be then enabled at the same time, allowing for two ethernet ports. Signed-off-by: Evgeny Boger --- arch/arm/boot/dts/sun8i-r40.dtsi | 53 ++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/arch/arm/boot/dts/sun8i-r40.dtsi b/arch/arm/boot/dts/sun8i-r40.dtsi index d5ad3b9efd12..c102c1510012 100644 --- a/arch/arm/boot/dts/sun8i-r40.dtsi +++ b/arch/arm/boot/dts/sun8i-r40.dtsi @@ -217,6 +217,20 @@ #size-cells = <1>; ranges; + sram_a: sram@0 { + compatible = "mmio-sram"; + reg = <0x00000000 0xc000>; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0 0x00000000 0xc000>; + + emac_sram: sram-section@8000 { + compatible = "allwinner,sun4i-a10-sram-a3-a4"; + reg = <0x8000 0x4000>; + status = "okay"; + }; + }; + sram_c: sram@1d00000 { compatible = "mmio-sram"; reg = <0x01d00000 0xd0000>; @@ -541,6 +555,24 @@ drive-strength = <40>; }; + emac_ph_pins: emac-ph-pins { + pins = "PH8", "PH9", "PH10", "PH11", + "PH14", "PH15", "PH16", "PH17", + "PH18","PH19", "PH20", "PH21", + "PH22", "PH23", "PH24", "PH25", + "PH26", "PH27"; + function = "emac"; + }; + + emac_pa_pins: emac-pa-pins { + pins = "PA0", "PA1", "PA2", + "PA3", "PA4", "PA5", "PA6", + "PA7", "PA8", "PA9", "PA10", + "PA11", "PA12", "PA13", "PA14", + "PA15", "PA16"; + function = "emac"; + }; + i2c0_pins: i2c0-pins { pins = "PB0", "PB1"; function = "i2c0"; @@ -885,6 +917,27 @@ }; }; + emac: ethernet@1c0b000 { + syscon = <&ccu>; + compatible = "allwinner,sun4i-a10-emac"; + reg = <0x01c0b000 0x1000>; + interrupts = ; + clocks = <&ccu CLK_BUS_EMAC>; + resets = <&ccu RST_BUS_EMAC>; + allwinner,sram = <&emac_sram 1>; + pinctrl-names = "default"; + pinctrl-0 = <&emac_ph_pins>; + status = "disabled"; + }; + + emac_mdio: mdio@1c0b080 { + compatible = "allwinner,sun4i-a10-mdio"; + reg = <0x01c0b080 0x14>; + status = "disabled"; + #address-cells = <1>; + #size-cells = <0>; + }; + mbus: dram-controller@1c62000 { compatible = "allwinner,sun8i-r40-mbus"; reg = <0x01c62000 0x1000>;