Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1457944 > unrolled thread
| Started by | Andre Przywara <andre.przywara@arm.com> |
|---|---|
| First post | 2016-08-08 19:30 +0200 |
| Last post | 2016-08-08 19:30 +0200 |
| Articles | 2 — 1 participant |
Back to article view | Back to linux.kernel
[PATCH v4 0/7] arm64: Allwinner A64 support Andre Przywara <andre.przywara@arm.com> - 2016-08-08 19:30 +0200
[PATCH v4 7/7] arm64: dts: add BananaPi M64 support Andre Przywara <andre.przywara@arm.com> - 2016-08-08 19:30 +0200
| From | Andre Przywara <andre.przywara@arm.com> |
|---|---|
| Date | 2016-08-08 19:30 +0200 |
| Subject | [PATCH v4 0/7] arm64: Allwinner A64 support |
| Message-ID | <s3Wxb-4gT-7@gated-at.bofh.it> |
This is a new attempt on proper upstream Allwinner A64 support. It builds on the bits that have already been merged (arm64 architecture support and the pinctrl driver), and mostly completes it with some DT files. I chose a new approach on the clock system: - For the basic PLL clocks we go with fixed-clocks now, as Allwinner recommends fixed frequencies for those anyway. I am not sure whether we should express the dependencies between those clocks as fixed-factor clocks or not. - The clock gates are left as in the previous post, so using a flexible, DT driver based on the existing simple-gates.c. There are ways to get away without it, but those approaches are more hideous and I still consider this approach pretty clean. - Any other clock is expected to be handled by firmware using the SCPI protocol (which ARM's Juno board uses as well). While this is not the most flexible and all-encompassing interface, it fits the bill for our clocks for now and enjoys upstream support on the Linux side already, so there are no patches needed on this front. I will send RFC patches demonstrating this just after this series. This series focusses on the basic peripherals. The MMC support, which was part of former revisions of this series, is dropped for now as the current driver lacks some bits to properly support the enhanced A64 MMC controller, which becomes evident when trying to use it on an eMMC device. There are patches floating around to tackle this, but this workd shouldn't delay upstreaming the basic bits first. This series has been tested (with an initrd) on the Pine64 and BananaPi M64 boards. As Maxime's latest post uses a completely different clock system, I wanted to put this forward as a simpler and more sustainable approach to tackle the tricky Allwinner CCU subsystem. I am happy to collaborate and to find the right way (TM) to support this (and future!) SoCs. Any comments are welcome! Cheers, Andre. Changelog v3..v4: - add proper Kconfig bits to build the pinctrl driver - adapt Maxime's approach of avoiding pine64-common.dtsi - add PMU DT node - use fixed-clocks for basic PLL clocks - use clock names based on manual (periph0 & friends) - move clocks out of their own subnode into a separate file - add .dts for BananaPi-M64 (thanks to Nora Lee for a sample board) Andre Przywara (7): arm64: sunxi: Kconfig: add essential pinctrl driver DT: clk: sunxi: add binding doc for the multi-bus-gates clock clk: sunxi: add generic multi-parent bus clock gates driver of: add vendor prefix for Pine64 arm64: dts: add Allwinner A64 SoC .dtsi arm64: dts: add Pine64 support arm64: dts: add BananaPi M64 support Documentation/devicetree/bindings/arm/sunxi.txt | 1 + Documentation/devicetree/bindings/clock/sunxi.txt | 7 + .../devicetree/bindings/vendor-prefixes.txt | 1 + arch/arm64/Kconfig.platforms | 2 + arch/arm64/boot/dts/Makefile | 1 + arch/arm64/boot/dts/allwinner/Makefile | 6 + .../boot/dts/allwinner/sun50i-a64-bananapi-m64.dts | 74 ++++ .../boot/dts/allwinner/sun50i-a64-clocks.dtsi | 140 ++++++++ .../boot/dts/allwinner/sun50i-a64-pine64-plus.dts | 48 +++ .../arm64/boot/dts/allwinner/sun50i-a64-pine64.dts | 74 ++++ arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 398 +++++++++++++++++++++ drivers/clk/sunxi/Makefile | 1 + drivers/clk/sunxi/clk-multi-gates.c | 105 ++++++ 13 files changed, 858 insertions(+) create mode 100644 arch/arm64/boot/dts/allwinner/Makefile create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-a64-clocks.dtsi create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-plus.dts create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi create mode 100644 drivers/clk/sunxi/clk-multi-gates.c -- 2.9.0
[toc] | [next] | [standalone]
| From | Andre Przywara <andre.przywara@arm.com> |
|---|---|
| Date | 2016-08-08 19:30 +0200 |
| Subject | [PATCH v4 7/7] arm64: dts: add BananaPi M64 support |
| Message-ID | <s3Wxd-4gT-51@gated-at.bofh.it> |
| In reply to | #1457944 |
The BananaPi M64 is a single board computer with an Allwinner A64 SoC.
In addition to the usual suspects it contains Gigabit Ethernet, 2GB RAM,
an eMMC and a WiFi chip (which are not yet supported by this patch).
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
---
arch/arm64/boot/dts/allwinner/Makefile | 1 +
.../boot/dts/allwinner/sun50i-a64-bananapi-m64.dts | 74 ++++++++++++++++++++++
2 files changed, 75 insertions(+)
create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile
index 1e29a5a..51ecb04 100644
--- a/arch/arm64/boot/dts/allwinner/Makefile
+++ b/arch/arm64/boot/dts/allwinner/Makefile
@@ -1,4 +1,5 @@
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pine64-plus.dtb sun50i-a64-pine64.dtb
+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-bananapi-m64.dtb
always := $(dtb-y)
subdir-y := $(dts-dirs)
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
new file mode 100644
index 0000000..bc0ed4c
--- /dev/null
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
@@ -0,0 +1,74 @@
+/*
+ * Copyright (c) 2016 ARM Ltd.
+ *
+ * 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 library 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 library 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 "sun50i-a64.dtsi"
+
+/ {
+ model = "BananaPi-M64";
+ compatible = "sinovoip,bananapi-m64", "allwinner,sun50i-a64";
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+
+ memory {
+ reg = <0x40000000 0x80000000>;
+ };
+
+ aliases {
+ serial0 = &uart0;
+ };
+};
+
+&uart0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart0_pins_a>;
+ status = "okay";
+};
+
+&i2c1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c1_pins>;
+ status = "okay";
+};
--
2.9.0
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web