From patchwork Fri Oct 21 15:10:35 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Neil Armstrong X-Patchwork-Id: 9389469 X-Patchwork-Delegate: neil.armstrong@linaro.org Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 5F5C0607D0 for ; Fri, 21 Oct 2016 15:10:52 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5138D28D7B for ; Fri, 21 Oct 2016 15:10:52 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 461EA2A0E5; Fri, 21 Oct 2016 15:10:52 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.5 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_LOW,T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from mx1.tuxfamily.net (mail.tuxfamily.net [212.85.158.8]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 592662A27C for ; Fri, 21 Oct 2016 15:10:50 +0000 (UTC) Received: from listengine (helo=tuxfamily.org) by mx1.tuxfamily.net with local-bsmtp (Exim 4.84_2) (envelope-from ) id 1bxbT6-0001P0-S5 for patchwork-linux-oxnas@patchwork.kernel.org; Fri, 21 Oct 2016 17:10:48 +0200 Received: from mail-wm0-x234.google.com ([2a00:1450:400c:c09::234]) by mx1.tuxfamily.net with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1bxbT1-0001NK-5Y for linux-oxnas@lists.tuxfamily.org; Fri, 21 Oct 2016 17:10:43 +0200 Received: by mail-wm0-x234.google.com with SMTP id f193so281633wmg.0 for ; Fri, 21 Oct 2016 08:10:43 -0700 (PDT) Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=8d/kDEerXG78bOHSt8+i9UYBUL2CfI/TPU1+lAvL9Us=; b=19eGB/IsGUxpNeD66i4j1u9RsV4GPpfQ7gzXjZzBMkwZBSB/ztwL3V1B8l6ML0P4ct fYve2Ek2ulAafzIotECMCe2qjimK/KQe0iz0DfNojEmoyPoyGC3YrVXLOpWvq7yKTRqq FerpMTxoGIXhW5mS0pYu3kxmdzhNNKKkrYu3vNjUyelUttfmk5TRdbsMSl4lUqbwJHLN 4n4R6EzO/YUFcfWrZ2/JyWpUu29XPPoU/m0Iw4Myu0YGPHgzE3knGyS0qAZGdGPWP9IQ oxMuft1DDk29548XQzGzSqRhNA1Em8JNX89qzeWJDzHf3eHpaEpXTW9nrMXqIOYD1knZ BsjA== 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=8d/kDEerXG78bOHSt8+i9UYBUL2CfI/TPU1+lAvL9Us=; b=PqY+FZp4zhbSlgBO7WBL9boehnE1SWUEshilZUiQUSbErNWWSiVtFS23VDI37oKBVc 8rWHDGcQ/XfQVlZEJbHM7f2FaDqaCl/DZoYANHvHq4b/Pn6UrfbcyTGPs9JFJJQttnIP TDyml/+V1sFLlfNvFX2d+AS/eD8WeJ34XYPmdMDKzLgwP6N6H87EC/XXEQ6twrN4YhRr WkBDknJGZQKkj7u6kFUqEQM1P4hikvmqkBDyUpb2xLkqXHQ6TEbrP0t34+FWNj+NPwCS 1i4W9cYWpsdvLE4g06rglTHTihFCssxr4xBjgBk2QKPnmji0Ekki0OoR+g4ccmWQUnum AcRw== X-GM-Message-State: AA6/9Rk97WAfSXjD8QsHOJ/76iPp2xVt1K3sUe+SQJ6JpMsCj7e8EHc7idbUJyrq9pN1hjbr X-Received: by 10.28.48.130 with SMTP id w124mr10301576wmw.71.1477062642195; Fri, 21 Oct 2016 08:10:42 -0700 (PDT) Received: from build.net (build.baylibre.com. [37.187.146.144]) by smtp.gmail.com with ESMTPSA id hb5sm3384461wjc.5.2016.10.21.08.10.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 21 Oct 2016 08:10:41 -0700 (PDT) From: Neil Armstrong To: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-oxnas@lists.tuxfamily.org, devicetree@vger.kernel.org CC: Neil Armstrong Subject: [linux-oxnas] [PATCH 1/3] ARM: dts: Add support for OX820 and Pogoplug V3 Date: Fri, 21 Oct 2016 17:10:35 +0200 Message-ID: <20161021151037.20112-2-narmstrong@baylibre.com> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20161021151037.20112-1-narmstrong@baylibre.com> References: <20161021151037.20112-1-narmstrong@baylibre.com> List-Unsubscribe: List-Subscribe: List-Help: List-Software: Listengine, VHFFS 4.7-dev-4c39578052 List-ID: List-Post: List-Archive: Precedence: list Reply-To: linux-oxnas@lists.tuxfamily.org X-Virus-Scanned: ClamAV using ClamSMTP Add device tree for the Oxford Seminconductor OX820 SoC and the Cloud Engines PogoPlug v3 board. Add the SoC and board compatible strings to oxnas bindings. Acked-by: Rob Herring Signed-off-by: Neil Armstrong --- Documentation/devicetree/bindings/arm/oxnas.txt | 5 + arch/arm/boot/dts/Makefile | 3 +- .../boot/dts/cloudengines-pogoplug-series-3.dts | 94 +++++++ arch/arm/boot/dts/ox820.dtsi | 298 +++++++++++++++++++++ 4 files changed, 399 insertions(+), 1 deletion(-) create mode 100644 arch/arm/boot/dts/cloudengines-pogoplug-series-3.dts create mode 100644 arch/arm/boot/dts/ox820.dtsi diff --git a/Documentation/devicetree/bindings/arm/oxnas.txt b/Documentation/devicetree/bindings/arm/oxnas.txt index b9e4971..ac64e60 100644 --- a/Documentation/devicetree/bindings/arm/oxnas.txt +++ b/Documentation/devicetree/bindings/arm/oxnas.txt @@ -5,5 +5,10 @@ Boards with the OX810SE SoC shall have the following properties: Required root node property: compatible: "oxsemi,ox810se" +Boards with the OX820 SoC shall have the following properties: + Required root node property: + compatible: "oxsemi,ox820" + Board compatible values: - "wd,mbwe" (OX810SE) + - "cloudengines,pogoplugv3" (OX820) diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index befcd26..3b0c74f 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -604,7 +604,8 @@ dtb-$(CONFIG_ARCH_ORION5X) += \ dtb-$(CONFIG_ARCH_PRIMA2) += \ prima2-evb.dtb dtb-$(CONFIG_ARCH_OXNAS) += \ - wd-mbwe.dtb + wd-mbwe.dtb \ + cloudengines-pogoplug-series-3.dtb dtb-$(CONFIG_ARCH_QCOM) += \ qcom-apq8060-dragonboard.dtb \ qcom-apq8064-arrow-sd-600eval.dtb \ diff --git a/arch/arm/boot/dts/cloudengines-pogoplug-series-3.dts b/arch/arm/boot/dts/cloudengines-pogoplug-series-3.dts new file mode 100644 index 0000000..bfde32e --- /dev/null +++ b/arch/arm/boot/dts/cloudengines-pogoplug-series-3.dts @@ -0,0 +1,94 @@ +/* + * cloudengines-pogoplug-series-3.dtsi - Device tree file for Cloud Engines PogoPlug Series 3 + * + * Copyright (C) 2016 Neil Armstrong + * + * Licensed under GPLv2 or later + */ + +/dts-v1/; +#include "ox820.dtsi" + +/ { + model = "Cloud Engines PogoPlug Series 3"; + + compatible = "cloudengines,pogoplugv3", "oxsemi,ox820"; + + chosen { + bootargs = "earlyprintk"; + stdout-path = "serial0:115200n8"; + }; + + memory { + /* 128Mbytes DDR */ + reg = <0x60000000 0x8000000>; + }; + + aliases { + serial0 = &uart0; + gpio0 = &gpio0; + gpio1 = &gpio1; + }; + + leds { + compatible = "gpio-leds"; + + blue { + label = "pogoplug:blue"; + gpios = <&gpio0 2 0>; + default-state = "keep"; + }; + + orange { + label = "pogoplug:orange"; + gpios = <&gpio1 16 1>; + default-state = "keep"; + }; + + green { + label = "pogoplug:green"; + gpios = <&gpio1 17 1>; + default-state = "keep"; + }; + }; +}; + +&uart0 { + status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart0>; +}; + +&nandc { + status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_nand>; + + nand@0 { + reg = <0>; + #address-cells = <1>; + #size-cells = <1>; + nand-ecc-mode = "soft"; + nand-ecc-algo = "hamming"; + + partition@0 { + label = "boot"; + reg = <0x00000000 0x00e00000>; + read-only; + }; + + partition@e00000 { + label = "ubi"; + reg = <0x00e00000 0x07200000>; + }; + }; +}; + +ða { + status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_etha_mdio>; +}; diff --git a/arch/arm/boot/dts/ox820.dtsi b/arch/arm/boot/dts/ox820.dtsi new file mode 100644 index 0000000..4592075 --- /dev/null +++ b/arch/arm/boot/dts/ox820.dtsi @@ -0,0 +1,298 @@ +/* + * ox820.dtsi - Device tree file for Oxford Semiconductor OX820 SoC + * + * Copyright (C) 2016 Neil Armstrong + * + * Licensed under GPLv2 or later + */ + +/include/ "skeleton.dtsi" +#include +#include +#include + +/ { + compatible = "oxsemi,ox820"; + + cpus { + #address-cells = <1>; + #size-cells = <0>; + enable-method = "oxsemi,ox820-smp"; + + cpu@0 { + device_type = "cpu"; + compatible = "arm,arm11mpcore"; + clocks = <&armclk>; + reg = <0>; + }; + + cpu@1 { + device_type = "cpu"; + compatible = "arm,arm11mpcore"; + clocks = <&armclk>; + reg = <1>; + }; + }; + + memory { + /* Max 512MB @ 0x60000000 */ + reg = <0x60000000 0x20000000>; + }; + + clocks { + osc: oscillator { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <25000000>; + }; + + gmacclk: gmacclk { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <125000000>; + }; + + sysclk: sysclk { + compatible = "fixed-factor-clock"; + #clock-cells = <0>; + clock-div = <4>; + clock-mult = <1>; + clocks = <&osc>; + }; + + plla: plla { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <850000000>; + }; + + armclk: armclk { + compatible = "fixed-factor-clock"; + #clock-cells = <0>; + clock-div = <2>; + clock-mult = <1>; + clocks = <&plla>; + }; + }; + + soc { + #address-cells = <1>; + #size-cells = <1>; + compatible = "simple-bus"; + ranges; + interrupt-parent = <&gic>; + + nandc: nand-controller@41000000 { + compatible = "oxsemi,ox820-nand"; + reg = <0x41000000 0x100000>; + clocks = <&stdclk CLK_820_NAND>; + resets = <&reset RESET_NAND>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + etha: ethernet@40400000 { + compatible = "oxsemi,ox820-dwmac", "snps,dwmac"; + reg = <0x40400000 0x2000>; + interrupts = , + ; + interrupt-names = "macirq", "eth_wake_irq"; + mac-address = [000000000000]; /* Filled in by U-Boot */ + phy-mode = "rgmii"; + + clocks = <&stdclk CLK_820_ETHA>, <&gmacclk>; + clock-names = "gmac", "stmmaceth"; + resets = <&reset RESET_MAC>; + + /* Regmap for sys registers */ + oxsemi,sys-ctrl = <&sys>; + + status = "disabled"; + }; + + apb-bridge@44000000 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "simple-bus"; + ranges = <0 0x44000000 0x1000000>; + + pinctrl: pinctrl { + compatible = "oxsemi,ox820-pinctrl"; + + /* Regmap for sys registers */ + oxsemi,sys-ctrl = <&sys>; + + pinctrl_uart0: uart0 { + uart0 { + pins = "gpio30", "gpio31"; + function = "fct5"; + }; + }; + + pinctrl_uart0_modem: uart0_modem { + uart0_modem_a { + pins = "gpio24", "gpio24", "gpio26", "gpio27"; + function = "fct4"; + }; + uart0_modem_b { + pins = "gpio28", "gpio29"; + function = "fct5"; + }; + }; + + pinctrl_uart1: uart1 { + uart1 { + pins = "gpio7", "gpio8"; + function = "fct4"; + }; + }; + + pinctrl_uart1_modem: uart1_modem { + uart1_modem { + pins = "gpio5", "gpio6", "gpio40", "gpio41", "gpio42", "gpio43"; + function = "fct4"; + }; + }; + + pinctrl_etha_mdio: etha_mdio { + etha_mdio { + pins = "gpio3", "gpio4"; + function = "fct1"; + }; + }; + + pinctrl_nand: nand { + nand { + pins = "gpio12", "gpio13", "gpio14", "gpio15", + "gpio16", "gpio17", "gpio18", "gpio19", + "gpio20", "gpio21", "gpio22", "gpio23", + "gpio24"; + function = "fct1"; + }; + }; + }; + + gpio0: gpio@000000 { + compatible = "oxsemi,ox820-gpio"; + reg = <0x000000 0x100000>; + interrupts = ; + #gpio-cells = <2>; + gpio-controller; + interrupt-controller; + #interrupt-cells = <2>; + ngpios = <32>; + oxsemi,gpio-bank = <0>; + gpio-ranges = <&pinctrl 0 0 32>; + }; + + gpio1: gpio@100000 { + compatible = "oxsemi,ox820-gpio"; + reg = <0x100000 0x100000>; + interrupts = ; + #gpio-cells = <2>; + gpio-controller; + interrupt-controller; + #interrupt-cells = <2>; + ngpios = <18>; + oxsemi,gpio-bank = <1>; + gpio-ranges = <&pinctrl 0 32 18>; + }; + + uart0: serial@200000 { + compatible = "ns16550a"; + reg = <0x200000 0x100000>; + interrupts = ; + reg-shift = <0>; + fifo-size = <16>; + reg-io-width = <1>; + current-speed = <115200>; + no-loopback-test; + status = "disabled"; + clocks = <&sysclk>; + resets = <&reset RESET_UART1>; + }; + + uart1: serial@300000 { + compatible = "ns16550a"; + reg = <0x200000 0x100000>; + interrupts = ; + reg-shift = <0>; + fifo-size = <16>; + reg-io-width = <1>; + current-speed = <115200>; + no-loopback-test; + status = "disabled"; + clocks = <&sysclk>; + resets = <&reset RESET_UART2>; + }; + + rps@400000 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "simple-bus"; + ranges = <0 0x400000 0x100000>; + + intc: interrupt-controller@0 { + compatible = "oxsemi,ox820-rps-irq", "oxsemi,ox810se-rps-irq"; + interrupt-controller; + reg = <0 0x200>; + interrupts = ; + #interrupt-cells = <1>; + valid-mask = <0xFFFFFFFF>; + clear-mask = <0>; + }; + + timer0: timer@200 { + compatible = "oxsemi,ox820-rps-timer"; + reg = <0x200 0x40>; + clocks = <&sysclk>; + interrupt-parent = <&intc>; + interrupts = <4>; + }; + }; + + sys: sys-ctrl@e00000 { + compatible = "oxsemi,ox820-sys-ctrl", "syscon", "simple-mfd"; + reg = <0xe00000 0x200000>; + + reset: reset-controller { + compatible = "oxsemi,ox820-reset", "oxsemi,ox810se-reset"; + #reset-cells = <1>; + }; + + stdclk: stdclk { + compatible = "oxsemi,ox820-stdclk", "oxsemi,ox810se-stdclk"; + #clock-cells = <1>; + }; + }; + }; + + apb-bridge@47000000 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "simple-bus"; + ranges = <0 0x47000000 0x1000000>; + + scu: scu@0 { + compatible = "arm,arm11mp-scu"; + reg = <0x0 0x100>; + }; + + local-timer@600 { + compatible = "arm,arm11mp-twd-timer"; + reg = <0x600 0x20>; + interrupts = ; + clocks = <&armclk>; + }; + + gic: gic@1000 { + compatible = "arm,arm11mp-gic"; + interrupt-controller; + #interrupt-cells = <3>; + reg = <0x1000 0x1000>, + <0x100 0x500>; + }; + }; + }; +};