From 89f668765a03abe48f205cc79640246938799f4d Mon Sep 17 00:00:00 2001 From: Romain Perier Date: Sun, 2 Nov 2014 10:20:00 +0000 Subject: [PATCH 1/9] ARM: dts: rockchip: Add EMAC Rockchip for RK3066 SoCs This patch adds the right pins topology for the MAC and MDIO found in RK3066 SoCs. Boards based on this SoC have an initial support for the emac-rockchip dt-binding. Signed-off-by: Romain Perier Signed-off-by: Heiko Stuebner --- arch/arm/boot/dts/rk3066a.dtsi | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/arch/arm/boot/dts/rk3066a.dtsi b/arch/arm/boot/dts/rk3066a.dtsi index 0e99470db772..41ffd4951ef3 100644 --- a/arch/arm/boot/dts/rk3066a.dtsi +++ b/arch/arm/boot/dts/rk3066a.dtsi @@ -234,6 +234,24 @@ bias-disable; }; + emac { + emac_xfer: emac-xfer { + rockchip,pins = , /* mac_clk */ + , /* tx_en */ + , /* txd1 */ + , /* txd0 */ + , /* rx_err */ + , /* crs_dvalid */ + , /* rxd1 */ + ; /* rxd0 */ + }; + + emac_mdio: emac-mdio { + rockchip,pins = , /* mac_md */ + ; /* mac_mdclk */ + }; + }; + emmc { emmc_clk: emmc-clk { rockchip,pins = ; @@ -587,3 +605,7 @@ &wdt { compatible = "rockchip,rk3066-wdt", "snps,dw-wdt"; }; + +&emac { + compatible = "rockchip,rk3066-emac"; +}; From ccfe128d3b4735ac1750d27010ad4b0c8693eefb Mon Sep 17 00:00:00 2001 From: Romain Perier Date: Sun, 2 Nov 2014 10:20:01 +0000 Subject: [PATCH 2/9] ARM: dts: rockchip: Add devicetree source for MarsBoard RK3066 This patch adds initial support for the Marsboard RK3066. It enables EMAC Rockchip which is the ethernet support on the board and registers it as a supported rockchip platform. Signed-off-by: Romain Perier Signed-off-by: Heiko Stuebner --- .../devicetree/bindings/arm/rockchip.txt | 4 + arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/rk3066a-marsboard.dts | 192 ++++++++++++++++++ 3 files changed, 197 insertions(+) create mode 100644 arch/arm/boot/dts/rk3066a-marsboard.dts diff --git a/Documentation/devicetree/bindings/arm/rockchip.txt b/Documentation/devicetree/bindings/arm/rockchip.txt index 857f12636eb2..eaa3d1a0eb05 100644 --- a/Documentation/devicetree/bindings/arm/rockchip.txt +++ b/Documentation/devicetree/bindings/arm/rockchip.txt @@ -1,6 +1,10 @@ Rockchip platforms device tree bindings --------------------------------------- +- MarsBoard RK3066 board: + Required root node properties: + - compatible = "haoyu,marsboard-rk3066", "rockchip,rk3066a"; + - bq Curie 2 tablet: Required root node properties: - compatible = "mundoreader,bq-curie2", "rockchip,rk3066a"; diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index 38c89cafa1ab..45dc351a81fc 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -365,6 +365,7 @@ dtb-$(CONFIG_ARCH_QCOM) += \ qcom-msm8974-sony-xperia-honami.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += \ rk3066a-bqcurie2.dtb \ + rk3066a-marsboard.dtb \ rk3188-radxarock.dtb \ rk3288-evb-act8846.dtb \ rk3288-evb-rk808.dtb diff --git a/arch/arm/boot/dts/rk3066a-marsboard.dts b/arch/arm/boot/dts/rk3066a-marsboard.dts new file mode 100644 index 000000000000..57489ee54022 --- /dev/null +++ b/arch/arm/boot/dts/rk3066a-marsboard.dts @@ -0,0 +1,192 @@ +/* + * Copyright (c) 2014 Romain Perier + * + * This file is dual-licensed: you can use it either under the terms + * of the GPL or the X11 license, at your option. Note that this dual + * licensing only applies to this file, and not this project as a + * whole. + * + * a) This file is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This file is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * Or, alternatively, + * + * b) Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +/dts-v1/; +#include "rk3066a.dtsi" + +/ { + model = "MarsBoard RK3066"; + compatible = "haoyu,marsboard-rk3066", "rockchip,rk3066a"; + + memory { + reg = <0x60000000 0x40000000>; + }; + + vcc_sd0: sdmmc-regulator { + compatible = "regulator-fixed"; + regulator-name = "sdmmc-supply"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + gpio = <&gpio3 7 GPIO_ACTIVE_LOW>; + startup-delay-us = <100000>; + vin-supply = <&vcc_io>; + }; +}; + +&i2c1 { + status = "okay"; + clock-frequency = <400000>; + + tps: tps@2d { + reg = <0x2d>; + + interrupt-parent = <&gpio6>; + interrupts = <4 IRQ_TYPE_LEVEL_LOW>; + + vcc5-supply = <&vcc_io>; + vcc6-supply = <&vcc_io>; + + regulators { + vcc_rtc: regulator@0 { + regulator-name = "vcc_rtc"; + regulator-always-on; + }; + + vcc_io: regulator@1 { + regulator-name = "vcc_io"; + regulator-always-on; + }; + + vdd_arm: regulator@2 { + regulator-name = "vdd_arm"; + regulator-min-microvolt = <600000>; + regulator-max-microvolt = <1500000>; + regulator-boot-on; + regulator-always-on; + }; + + vcc_ddr: regulator@3 { + regulator-name = "vcc_ddr"; + regulator-min-microvolt = <600000>; + regulator-max-microvolt = <1500000>; + regulator-boot-on; + regulator-always-on; + }; + + vcc18_cif: regulator@5 { + regulator-name = "vcc18_cif"; + regulator-always-on; + }; + + vdd_11: regulator@6 { + regulator-name = "vdd_11"; + regulator-always-on; + }; + + vcc_25: regulator@7 { + regulator-name = "vcc_25"; + regulator-always-on; + }; + + vcc_18: regulator@8 { + regulator-name = "vcc_18"; + regulator-always-on; + }; + + vcc25_hdmi: regulator@9 { + regulator-name = "vcc25_hdmi"; + regulator-always-on; + }; + + vcca_33: regulator@10 { + regulator-name = "vcca_33"; + regulator-always-on; + }; + + vcc_rmii: regulator@11 { + regulator-name = "vcc_rmii"; + }; + + vcc28_cif: regulator@12 { + regulator-name = "vcc28_cif"; + regulator-always-on; + }; + }; + }; +}; + +/* must be included after &tps gets defined */ +#include "tps65910.dtsi" + +&emac { + status = "okay"; + + phy = <&phy0>; + phy-supply = <&vcc_rmii>; + + pinctrl-names = "default"; + pinctrl-0 = <&emac_xfer>, <&emac_mdio>, <&phy_int>; + + phy0: ethernet-phy@0 { + reg = <0>; + interrupt-parent = <&gpio1>; + interrupts = <26 IRQ_TYPE_LEVEL_LOW>; + }; +}; + +&pinctrl { + lan8720a { + phy_int: phy-int { + rockchip,pins = ; + }; + }; +}; + +&uart0 { + status = "okay"; +}; + +&uart1 { + status = "okay"; +}; + +&uart2 { + status = "okay"; +}; + +&uart3 { + status = "okay"; +}; + +&wdt { + status = "okay"; +}; From e5b0deda04773434fa61ba8afa1ad9d56723f573 Mon Sep 17 00:00:00 2001 From: Julien CHAUVEAU Date: Thu, 30 Oct 2014 16:51:17 +0100 Subject: [PATCH 3/9] ARM: dts: rockchip: add serial aliases for rk3066 and rk3188 Add aliases for UARTs on rk3066 and rk3188 in order to fix the numbering scheme. This will keep the debug console on ttyS2 when UART 1 is disabled, for example. Signed-off-by: Julien CHAUVEAU Signed-off-by: Heiko Stuebner --- arch/arm/boot/dts/rk3xxx.dtsi | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/arm/boot/dts/rk3xxx.dtsi b/arch/arm/boot/dts/rk3xxx.dtsi index 9ba92de511ca..87df6a8955aa 100644 --- a/arch/arm/boot/dts/rk3xxx.dtsi +++ b/arch/arm/boot/dts/rk3xxx.dtsi @@ -29,6 +29,10 @@ mshc0 = &emmc; mshc1 = &mmc0; mshc2 = &mmc1; + serial0 = &uart0; + serial1 = &uart1; + serial2 = &uart2; + serial3 = &uart3; spi0 = &spi0; spi1 = &spi1; }; From fbdbc7327e5b5fbe184152c250b358707b293479 Mon Sep 17 00:00:00 2001 From: Kever Yang Date: Wed, 15 Oct 2014 10:23:02 -0700 Subject: [PATCH 4/9] ARM: dts: rockchip: add pmu references to cpus nodes This patch add pmu reference and enable-method for smp Signed-off-by: Kever Yang Tested-by: Kevin Hilman Signed-off-by: Heiko Stuebner --- arch/arm/boot/dts/rk3288.dtsi | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi index cfc43789cac6..3f43cf6ca883 100644 --- a/arch/arm/boot/dts/rk3288.dtsi +++ b/arch/arm/boot/dts/rk3288.dtsi @@ -46,6 +46,8 @@ cpus { #address-cells = <1>; #size-cells = <0>; + enable-method = "rockchip,rk3066-smp"; + rockchip,pmu = <&pmu>; cpu0: cpu@500 { device_type = "cpu"; From 1123d412bb52807e173930f1b6e915adad24d61e Mon Sep 17 00:00:00 2001 From: Kever Yang Date: Wed, 15 Oct 2014 10:23:04 -0700 Subject: [PATCH 5/9] ARM: dts: rockchip: add intmem node for rk3288 smp support This patch add intmem node des which is needed by platsmp.c Signed-off-by: Kever Yang Tested-by: Kevin Hilman Signed-off-by: Heiko Stuebner --- arch/arm/boot/dts/rk3288.dtsi | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi index 3f43cf6ca883..e3b8b4dfc631 100644 --- a/arch/arm/boot/dts/rk3288.dtsi +++ b/arch/arm/boot/dts/rk3288.dtsi @@ -464,6 +464,18 @@ status = "disabled"; }; + bus_intmem@ff700000 { + compatible = "mmio-sram"; + reg = <0xff700000 0x18000>; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0 0xff700000 0x18000>; + smp-sram@0 { + compatible = "rockchip,rk3066-smp-sram"; + reg = <0x00 0x10>; + }; + }; + pmu: power-management@ff730000 { compatible = "rockchip,rk3288-pmu", "syscon"; reg = <0xff730000 0x100>; From 044542af535f949a28c6193c7f93a183b290681d Mon Sep 17 00:00:00 2001 From: Kever Yang Date: Wed, 15 Oct 2014 10:23:05 -0700 Subject: [PATCH 6/9] ARM: dts: rockchip: add reset for CPU nodes This patch add reset for CPU nodes to use the reset controller. Signed-off-by: Kever Yang Tested-by: Kevin Hilman Signed-off-by: Heiko Stuebner --- arch/arm/boot/dts/rk3288.dtsi | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi index e3b8b4dfc631..6ffd0fb18971 100644 --- a/arch/arm/boot/dts/rk3288.dtsi +++ b/arch/arm/boot/dts/rk3288.dtsi @@ -53,6 +53,7 @@ device_type = "cpu"; compatible = "arm,cortex-a12"; reg = <0x500>; + resets = <&cru SRST_CORE0>; operating-points = < /* KHz uV */ 1608000 1350000 @@ -75,16 +76,19 @@ device_type = "cpu"; compatible = "arm,cortex-a12"; reg = <0x501>; + resets = <&cru SRST_CORE1>; }; cpu@502 { device_type = "cpu"; compatible = "arm,cortex-a12"; reg = <0x502>; + resets = <&cru SRST_CORE2>; }; cpu@503 { device_type = "cpu"; compatible = "arm,cortex-a12"; reg = <0x503>; + resets = <&cru SRST_CORE3>; }; }; From 7cae068bb1c76c0562c6afe9ff2af876c0f1f7f4 Mon Sep 17 00:00:00 2001 From: Daniel Kurtz Date: Mon, 3 Nov 2014 10:53:29 +0800 Subject: [PATCH 7/9] ARM: dts: rk3288: add VOP iommu nodes Add device nodes for the VOP iommus. Device nodes for other iommus will be added in later patches. The iommu nodes use the #iommu-cells property as described in: Documentation/devicetree/bindings/iommu/iommu.txt Signed-off-by: Daniel Kurtz Signed-off-by: Simon Xue Signed-off-by: Heiko Stuebner --- arch/arm/boot/dts/rk3288.dtsi | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi index 6ffd0fb18971..0f50d5d44345 100644 --- a/arch/arm/boot/dts/rk3288.dtsi +++ b/arch/arm/boot/dts/rk3288.dtsi @@ -535,6 +535,24 @@ status = "disabled"; }; + vopb_mmu: iommu@ff930300 { + compatible = "rockchip,iommu"; + reg = <0xff930300 0x100>; + interrupts = ; + interrupt-names = "vopb_mmu"; + #iommu-cells = <0>; + status = "disabled"; + }; + + vopl_mmu: iommu@ff940300 { + compatible = "rockchip,iommu"; + reg = <0xff940300 0x100>; + interrupts = ; + interrupt-names = "vopl_mmu"; + #iommu-cells = <0>; + status = "disabled"; + }; + gic: interrupt-controller@ffc01000 { compatible = "arm,gic-400"; interrupt-controller; From 6df127f37c21596321ad46376e3aea1548084e04 Mon Sep 17 00:00:00 2001 From: Julien CHAUVEAU Date: Sat, 8 Nov 2014 01:44:56 +0100 Subject: [PATCH 8/9] ARM: dts: rockchip: fix invalid unit-address in rk3188.dtsi Unit addresses, whilst written in hex, don't contain a 0x prefix. Signed-off-by: Julien CHAUVEAU Signed-off-by: Heiko Stuebner --- arch/arm/boot/dts/rk3188.dtsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm/boot/dts/rk3188.dtsi b/arch/arm/boot/dts/rk3188.dtsi index b24e04f6ccc7..1d4d79c6688d 100644 --- a/arch/arm/boot/dts/rk3188.dtsi +++ b/arch/arm/boot/dts/rk3188.dtsi @@ -111,7 +111,7 @@ #size-cells = <1>; ranges; - gpio0: gpio0@0x2000a000 { + gpio0: gpio0@2000a000 { compatible = "rockchip,rk3188-gpio-bank0"; reg = <0x2000a000 0x100>; interrupts = ; @@ -124,7 +124,7 @@ #interrupt-cells = <2>; }; - gpio1: gpio1@0x2003c000 { + gpio1: gpio1@2003c000 { compatible = "rockchip,gpio-bank"; reg = <0x2003c000 0x100>; interrupts = ; From efb66e93d13da5a7b11b3a8dbb24a6fb29141752 Mon Sep 17 00:00:00 2001 From: Julien CHAUVEAU Date: Fri, 14 Nov 2014 16:32:25 +0100 Subject: [PATCH 9/9] ARM: dts: rockchip: enable PWM on Radxa Rock This enables user space access to the 3 PWM available on the Radxa Rock headers. Signed-off-by: Julien CHAUVEAU Signed-off-by: Heiko Stuebner --- arch/arm/boot/dts/rk3188-radxarock.dts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/arch/arm/boot/dts/rk3188-radxarock.dts b/arch/arm/boot/dts/rk3188-radxarock.dts index 0950a0524947..6eb62c053055 100644 --- a/arch/arm/boot/dts/rk3188-radxarock.dts +++ b/arch/arm/boot/dts/rk3188-radxarock.dts @@ -243,6 +243,18 @@ disable-wp; }; +&pwm1 { + status = "okay"; +}; + +&pwm2 { + status = "okay"; +}; + +&pwm3 { + status = "okay"; +}; + &pinctrl { pcfg_output_low: pcfg-output-low { output-low;