From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932455AbcHILwW (ORCPT ); Tue, 9 Aug 2016 07:52:22 -0400 Received: from foss.arm.com ([217.140.101.70]:41634 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932401AbcHILwO (ORCPT ); Tue, 9 Aug 2016 07:52:14 -0400 From: Andre Przywara To: Maxime Ripard , Chen-Yu Tsai Cc: linux-sunxi@googlegroups.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Rob Herring , Mark Rutland , devicetree@vger.kernel.org Subject: [RFC PATCH 4/5] arm64: dts: sunxi: add SCPI driven clocks and nodes for A64 MMC Date: Tue, 9 Aug 2016 12:53:02 +0100 Message-Id: <20160809115303.17032-5-andre.przywara@arm.com> X-Mailer: git-send-email 2.9.0 In-Reply-To: <20160809115303.17032-1-andre.przywara@arm.com> References: <20160809115303.17032-1-andre.przywara@arm.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The MMC controllers in the Allwinner A64 SoC are somewhat compatible with the versions used in other Allwinner SoCs. Tell Linux about the three MMC clocks that the firmware implements and add nodes to represent the MMC controllers. The actual hardware is capable of new transfer modes, which the driver does not fully support yet, also the clock part has changed, but it works like this at least for SD card accesses. Signed-off-by: Andre Przywara --- arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 61 +++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi index 9fc540e..0f6044b 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi @@ -157,6 +157,19 @@ compatible = "arm,scpi"; mboxes = <&mailbox 0>; shmem = <&cpu_scp_mem>; + + clocks { + compatible = "arm,scpi-clocks"; + + scpi_clk: scpi_clocks { + compatible = "arm,scpi-variable-clocks"; + #clock-cells = <1>; + clock-indices = <0>, <1>, + <2>; + clock-output-names = "mmc0_clk", "mmc1_clk", + "mmc2_clk"; + }; + }; }; soc { @@ -165,6 +178,54 @@ #size-cells = <1>; ranges; + mmc0: mmc@1c0f000 { + compatible = "allwinner,sun50i-a64-mmc", + "allwinner,sun5i-a13-mmc"; + reg = <0x01c0f000 0x1000>; + clocks = <&bus_gates 8>, <&scpi_clk 0>, + <&scpi_clk 0>, <&scpi_clk 0>; + clock-names = "ahb", "mmc", + "output", "sample"; + resets = <&ahb_rst 8>; + reset-names = "ahb"; + interrupts = ; + status = "disabled"; + #address-cells = <1>; + #size-cells = <0>; + }; + + mmc1: mmc@1c10000 { + compatible = "allwinner,sun50i-a64-mmc", + "allwinner,sun5i-a13-mmc"; + reg = <0x01c10000 0x1000>; + clocks = <&bus_gates 9>, <&scpi_clk 1>, + <&scpi_clk 1>, <&scpi_clk 1>; + clock-names = "ahb", "mmc", + "output", "sample"; + resets = <&ahb_rst 9>; + reset-names = "ahb"; + interrupts = ; + status = "disabled"; + #address-cells = <1>; + #size-cells = <0>; + }; + + mmc2: mmc@1c11000 { + compatible = "allwinner,sun50i-a64-mmc", + "allwinner,sun5i-a13-mmc"; + reg = <0x01c11000 0x1000>; + clocks = <&bus_gates 10>, <&scpi_clk 2>, + <&scpi_clk 2>, <&scpi_clk 2>; + clock-names = "ahb", "mmc", + "output", "sample"; + resets = <&ahb_rst 10>; + reset-names = "ahb"; + interrupts = ; + status = "disabled"; + #address-cells = <1>; + #size-cells = <0>; + }; + pio: pinctrl@1c20800 { compatible = "allwinner,sun50i-a64-pinctrl"; reg = <0x01c20800 0x400>; -- 2.9.0