Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Add preliminary support for Orangepi One Plus H6 and small typo for H…
…6 Pine config Bootlog: http://ix.io/1col
- Loading branch information
Showing
with
337 additions
and 1 deletion.
| @@ -0,0 +1,14 @@ | ||
| # H6 quad core 1GB SoC GBE | ||
| BOARD_NAME="Orange Pi One+" | ||
| BOARDFAMILY="sun50iw6" | ||
| BOOTCONFIG="orangepi_one_plus_defconfig" | ||
| # | ||
| MODULES="" | ||
| MODULES_NEXT="" | ||
| # | ||
| KERNEL_TARGET="dev" | ||
| CLI_TARGET="" | ||
| DESKTOP_TARGET="" | ||
| # | ||
| CLI_BETA_TARGET="stretch:dev" | ||
| DESKTOP_BETA_TARGET="" |
| @@ -0,0 +1,219 @@ | ||
| diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile | ||
| index 3040c3074..712e1cf5f | ||
| --- a/arch/arm64/boot/dts/allwinner/Makefile | ||
| +++ b/arch/arm64/boot/dts/allwinner/Makefile | ||
| @@ -1,5 +1,6 @@ | ||
| # SPDX-License-Identifier: GPL-2.0 | ||
| dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-bananapi-m64.dtb | ||
| +dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-orangepi-one-plus.dtb | ||
| dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-nanopi-a64.dtb | ||
| dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-olinuxino.dtb | ||
| dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-orangepi-win.dtb | ||
| diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts | ||
| new file mode 100644 | ||
| index 000000000..385015396 | ||
| --- /dev/null | ||
| +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts | ||
| @@ -0,0 +1,202 @@ | ||
| +// SPDX-License-Identifier: (GPL-2.0+ or MIT) | ||
| +/* | ||
| + * Copyright (c) 2018 Armbian | ||
| + */ | ||
| + | ||
| +/dts-v1/; | ||
| + | ||
| +#include "sun50i-h6.dtsi" | ||
| + | ||
| +#include <dt-bindings/gpio/gpio.h> | ||
| + | ||
| +/ { | ||
| + model = "Orange Pi One+"; | ||
| + compatible = "pine64,pine-h64", "allwinner,sun50i-h6"; | ||
| + | ||
| + aliases { | ||
| + serial0 = &uart0; | ||
| + }; | ||
| + | ||
| + chosen { | ||
| + stdout-path = "serial0:115200n8"; | ||
| + }; | ||
| + | ||
| + reg_vcc3v3: vcc3v3 { | ||
| + compatible = "regulator-fixed"; | ||
| + regulator-name = "vcc3v3"; | ||
| + regulator-min-microvolt = <3300000>; | ||
| + regulator-max-microvolt = <3300000>; | ||
| + }; | ||
| + | ||
| + reg_vcc1v8: vcc1v8 { | ||
| + compatible = "regulator-fixed"; | ||
| + regulator-name = "vcc1v8"; | ||
| + regulator-min-microvolt = <1800000>; | ||
| + regulator-max-microvolt = <1800000>; | ||
| + }; | ||
| + | ||
| + reg_usb_vbus: vbus { | ||
| + compatible = "regulator-fixed"; | ||
| + regulator-name = "usb-vbus"; | ||
| + regulator-min-microvolt = <5000000>; | ||
| + regulator-max-microvolt = <5000000>; | ||
| + startup-delay-us = <100000>; | ||
| + gpio = <&r_pio 0 5 GPIO_ACTIVE_HIGH>; | ||
| + enable-active-high; | ||
| + }; | ||
| +}; | ||
| + | ||
| +&cpu0 { | ||
| + cpu-supply = <®_dcdca>; | ||
| +}; | ||
| + | ||
| +&ehci0 { | ||
| + status = "okay"; | ||
| +}; | ||
| + | ||
| +&ehci3 { | ||
| + status = "okay"; | ||
| +}; | ||
| + | ||
| +&mdio { | ||
| + ext_rgmii_phy: ethernet-phy@1 { | ||
| + compatible = "ethernet-phy-ieee802.3-c22"; | ||
| + reg = <1>; | ||
| + }; | ||
| +}; | ||
| + | ||
| +&mmc0 { | ||
| + pinctrl-names = "default"; | ||
| + pinctrl-0 = <&mmc0_pins>; | ||
| + vmmc-supply = <®_vcc3v3>; | ||
| + cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; | ||
| + status = "okay"; | ||
| +}; | ||
| + | ||
| +&ohci0 { | ||
| + status = "okay"; | ||
| +}; | ||
| + | ||
| +&ohci3 { | ||
| + status = "okay"; | ||
| +}; | ||
| + | ||
| +&r_i2c { | ||
| + pinctrl-names = "default"; | ||
| + pinctrl-0 = <&r_i2c_pins>; | ||
| + status = "okay"; | ||
| + | ||
| + axp805: pmic@36 { | ||
| + compatible = "x-powers,axp805"; | ||
| + reg = <0x36>; | ||
| + interrupt-parent = <&r_intc>; | ||
| + interrupts = <0 IRQ_TYPE_LEVEL_LOW>; | ||
| + interrupt-controller; | ||
| + #interrupt-cells = <1>; | ||
| + x-powers,master-mode; | ||
| + | ||
| + regulators { | ||
| + reg_aldo1: aldo1 { | ||
| + regulator-always-on; | ||
| + regulator-min-microvolt = <3300000>; | ||
| + regulator-max-microvolt = <3300000>; | ||
| + regulator-name = "vcc-pl"; | ||
| + }; | ||
| + | ||
| + reg_aldo2: aldo2 { | ||
| + regulator-min-microvolt = <3300000>; | ||
| + regulator-max-microvolt = <3300000>; | ||
| + regulator-name = "vcc-ac200"; | ||
| + }; | ||
| + | ||
| + reg_aldo3: aldo3 { | ||
| + /* This regulator is connected with CLDO1 */ | ||
| + regulator-always-on; | ||
| + regulator-min-microvolt = <3300000>; | ||
| + regulator-max-microvolt = <3300000>; | ||
| + regulator-name = "vcc-3v3-1"; | ||
| + }; | ||
| + | ||
| + reg_bldo1: bldo1 { | ||
| + regulator-always-on; | ||
| + regulator-min-microvolt = <1800000>; | ||
| + regulator-max-microvolt = <1800000>; | ||
| + regulator-name = "vcc-ddr-bias-pll"; | ||
| + }; | ||
| + | ||
| + reg_bldo2: bldo2 { | ||
| + regulator-always-on; | ||
| + regulator-min-microvolt = <1800000>; | ||
| + regulator-max-microvolt = <1800000>; | ||
| + regulator-name = "vcc-efuse-emmc-pcie-hdmi"; | ||
| + }; | ||
| + | ||
| + reg_bldo3: bldo3 { | ||
| + regulator-min-microvolt = <1800000>; | ||
| + regulator-max-microvolt = <1800000>; | ||
| + regulator-name = "vcc-wifi-io"; | ||
| + }; | ||
| + | ||
| + bldo4 { | ||
| + /* unused */ | ||
| + }; | ||
| + | ||
| + reg_cldo1: cldo1 { | ||
| + /* This regulator is connected with ALDO3 */ | ||
| + regulator-always-on; | ||
| + regulator-min-microvolt = <3300000>; | ||
| + regulator-max-microvolt = <3300000>; | ||
| + regulator-name = "vcc-3v3-2"; | ||
| + }; | ||
| + | ||
| + reg_dcdca: dcdca { | ||
| + regulator-always-on; | ||
| + regulator-min-microvolt = <810000>; | ||
| + regulator-max-microvolt = <1080000>; | ||
| + regulator-name = "vdd-cpu"; | ||
| + }; | ||
| + | ||
| + reg_dcdcc: dcdcc { | ||
| + regulator-always-on; | ||
| + regulator-min-microvolt = <810000>; | ||
| + regulator-max-microvolt = <1080000>; | ||
| + regulator-name = "vdd-gpu"; | ||
| + }; | ||
| + | ||
| + reg_dcdcd: dcdcd { | ||
| + regulator-always-on; | ||
| + regulator-min-microvolt = <960000>; | ||
| + regulator-max-microvolt = <960000>; | ||
| + regulator-name = "vdd-sys"; | ||
| + }; | ||
| + | ||
| + reg_dcdce: dcdce { | ||
| + regulator-always-on; | ||
| + regulator-min-microvolt = <1400000>; | ||
| + regulator-max-microvolt = <1400000>; | ||
| + regulator-name = "vcc-dram"; | ||
| + }; | ||
| + | ||
| + sw { | ||
| + /* unused */ | ||
| + }; | ||
| + }; | ||
| + }; | ||
| +}; | ||
| + | ||
| +&uart0 { | ||
| + pinctrl-names = "default"; | ||
| + pinctrl-0 = <&uart0_ph_pins>; | ||
| + status = "okay"; | ||
| +}; | ||
| + | ||
| +&usb2otg { | ||
| + dr_mode = "host"; | ||
| + status = "okay"; | ||
| +}; | ||
| + | ||
| +&usb2phy { | ||
| + usb0_vbus-supply = <®_usb_vbus>; | ||
| + usb1_vbus-supply = <®_usb_vbus>; | ||
| + status = "okay"; | ||
| +}; |
| @@ -0,0 +1,103 @@ | ||
| diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile | ||
| index 3669bdf..866e468 | ||
| --- a/arch/arm/dts/Makefile | ||
| +++ b/arch/arm/dts/Makefile | ||
| @@ -362,7 +362,8 @@ dtb-$(CONFIG_MACH_SUN50I_H5) += \ | ||
| sun50i-h5-orangepi-prime.dtb \ | ||
| sun50i-h5-orangepi-zero-plus2.dtb | ||
| dtb-$(CONFIG_MACH_SUN50I_H6) += \ | ||
| - sun50i-h6-pine-h64.dtb | ||
| + sun50i-h6-pine-h64.dtb \ | ||
| + sun50i-h6-orangepi-one-plus.dtb | ||
| dtb-$(CONFIG_MACH_SUN50I) += \ | ||
| sun50i-a64-bananapi-m64.dtb \ | ||
| sun50i-a64-nanopi-a64.dtb \ | ||
| diff --git a/arch/arm/dts/sun50i-h6-orangepi-one-plus.dts b/arch/arm/dts/sun50i-h6-orangepi-one-plus.dts | ||
| new file mode 100644 | ||
| index 0000000..7191127 | ||
| --- /dev/null | ||
| +++ b/arch/arm/dts/sun50i-h6-orangepi-one-plus.dts | ||
| @@ -0,0 +1,64 @@ | ||
| +/* | ||
| + * Copyright (c) 2017 Icenowy Zheng <icenowy@aosc.io> | ||
| + * | ||
| + * 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-h6.dtsi" | ||
| + | ||
| +#include <dt-bindings/gpio/gpio.h> | ||
| + | ||
| +/ { | ||
| + model = "Orange Pi One+"; | ||
| + compatible = "pine64,pine-h64", "allwinner,sun50i-h6"; | ||
| + | ||
| + aliases { | ||
| + serial0 = &uart0; | ||
| + }; | ||
| + | ||
| + chosen { | ||
| + stdout-path = "serial0:115200n8"; | ||
| + }; | ||
| +}; | ||
| + | ||
| +&uart0 { | ||
| + status = "okay"; | ||
| +}; | ||
| diff --git a/configs/orangepi_one_plus_defconfig b/configs/orangepi_one_plus_defconfig | ||
| new file mode 100644 | ||
| index 0000000..ded0df6 | ||
| --- /dev/null | ||
| +++ b/configs/orangepi_one_plus_defconfig | ||
| @@ -0,0 +1,13 @@ | ||
| +CONFIG_ARM=y | ||
| +CONFIG_ARCH_SUNXI=y | ||
| +CONFIG_MACH_SUN50I_H6=y | ||
| +CONFIG_DRAM_ODT_EN=y | ||
| +# CONFIG_PSCI_RESET is not set | ||
| +CONFIG_DEFAULT_DEVICE_TREE="sun50i-h6-orangepi-one-plus" | ||
| +# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set | ||
| +CONFIG_SPL=y | ||
| +# CONFIG_CMD_FLASH is not set | ||
| +# CONFIG_CMD_FPGA is not set | ||
| +# CONFIG_SPL_DOS_PARTITION is not set | ||
| +# CONFIG_SPL_ISO_PARTITION is not set | ||
| +# CONFIG_SPL_EFI_PARTITION is not set |