- Add D1 GPADC node
- Introduce support for OrangePi Zero 3 SBC - Enable DT overlay support for Allwinner H3 boards -----BEGIN PGP SIGNATURE----- iHUEABYIAB0WIQSPRixG1tysKC2PKM10Ba7+DO8kkwUCZM/gMQAKCRB0Ba7+DO8k kyuRAQChRx+hyhXWb1+5XVPiOHE1X4Ye/OosrT8rIhYkOETpCAEAvM2jYmUfk8rh /bQ+anyD713XahiEsGfbQDeKPXAfuwE= =9lad -----END PGP SIGNATURE----- gpgsig -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmTXRwIACgkQYKtH/8kJ UieFnQ//ZQlp2eyKFJRov+HpBidPvBoxdwBovVsmyVvBUbrjg6JXIpOJAZYtvfS6 SlrCcEurnbyGRmUlDViKonoaWwNz3rtMdXaf7wXdzAKUyfsCf+FGkPrkRXa2U6XV urgAhtd/ZVq36V2cW9otnJkXX0PaRkE0NGgyj/BNvT1AXDw6FnoAakJO1FqTWQkE g71wJvMbM3unbvyiLgUt4nnajMLDSeF4zJkofPytoFvnmpdDTu+UTW3XpZccS+TH 1OHCAixaM7lFINm0kuACBO6sEGgi7KXInZDefZ7vM8j7mhbIzFiTiMc/pc7ZW/+v zB9PfdJ2mAQ5q1v+MOOBS/Djwe1MueYKX6XWoZoLHf4geTpTn1mhLgIO9e37uBDy g0A07l74w2hG+KYfiqwzsh3YOFZ5xaqk/B7kn4UdqMMEEJJUeTMhe2Voi0bK6SX4 A/U8BqGxTGGSArpW1dbb79ANuYeGs7Ka83iTaPD3jjtXin8N99CuMtq2NReVf9uI P4chRVYsMA5DZT1JnGsc756CIA+1mgIK16xxKKtvlL45zSsS4akZUpU/mZXUoKWA bEXWi38L2cCsT6XaIggIkFhuk/CKWOHaf1Vjt4ihK/B1AnA82fQu0VkMJfV4s4VZ gA1eRDctDM3bF+p4Sh6WaWsLYoclQiBizXT5F2gf0fq5IHrYlwg= =tqQf -----END PGP SIGNATURE----- Merge tag 'sunxi-dt-for-6.6-1' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into soc/dt - Add D1 GPADC node - Introduce support for OrangePi Zero 3 SBC - Enable DT overlay support for Allwinner H3 boards * tag 'sunxi-dt-for-6.6-1' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux: arm: dts: Enable device-tree overlay support for sun8i-h3 pi devices arm64: dts: allwinner: h616: Add OrangePi Zero 3 board support dt-bindings: arm: sunxi: document Orange Pi Zero 3 board name arm64: dts: allwinner: h616: Split Orange Pi Zero 2 DT riscv: dts: allwinner: d1: Add GPADC node Link: https://lore.kernel.org/r/20230806180546.GA127039@jernej-laptop Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
commit
594579e42c
|
@ -997,4 +997,9 @@ properties:
|
|||
- const: xunlong,orangepi-zero2
|
||||
- const: allwinner,sun50i-h616
|
||||
|
||||
- description: Xunlong OrangePi Zero 3
|
||||
items:
|
||||
- const: xunlong,orangepi-zero3
|
||||
- const: allwinner,sun50i-h618
|
||||
|
||||
additionalProperties: true
|
||||
|
|
|
@ -179,6 +179,25 @@ dtb-$(CONFIG_MACH_SUN7I) += \
|
|||
sun7i-a20-pcduino3-nano.dtb \
|
||||
sun7i-a20-wexler-tab7200.dtb \
|
||||
sun7i-a20-wits-pro-a20-dkt.dtb
|
||||
|
||||
# Enables support for device-tree overlays for all pis
|
||||
DTC_FLAGS_sun8i-h3-orangepi-lite := -@
|
||||
DTC_FLAGS_sun8i-h3-bananapi-m2-plus := -@
|
||||
DTC_FLAGS_sun8i-h3-nanopi-m1-plus := -@
|
||||
DTC_FLAGS_sun8i-h3-nanopi-m1 := -@
|
||||
DTC_FLAGS_sun8i-h3-nanopi-duo2 := -@
|
||||
DTC_FLAGS_sun8i-h3-orangepi-plus2e := -@
|
||||
DTC_FLAGS_sun8i-h3-orangepi-one := -@
|
||||
DTC_FLAGS_sun8i-h3-orangepi-plus := -@
|
||||
DTC_FLAGS_sun8i-h3-orangepi-2 := -@
|
||||
DTC_FLAGS_sun8i-h3-orangepi-zero-plus2 := -@
|
||||
DTC_FLAGS_sun8i-h3-nanopi-neo-air := -@
|
||||
DTC_FLAGS_sun8i-h3-zeropi := -@
|
||||
DTC_FLAGS_sun8i-h3-nanopi-neo := -@
|
||||
DTC_FLAGS_sun8i-h3-nanopi-r1 := -@
|
||||
DTC_FLAGS_sun8i-h3-orangepi-pc := -@
|
||||
DTC_FLAGS_sun8i-h3-bananapi-m2-plus-v1.2 := -@
|
||||
DTC_FLAGS_sun8i-h3-orangepi-pc-plus := -@
|
||||
dtb-$(CONFIG_MACH_SUN8I) += \
|
||||
sun8i-a23-evb.dtb \
|
||||
sun8i-a23-gt90h-v4.dtb \
|
||||
|
|
|
@ -40,3 +40,4 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-tanix-tx6.dtb
|
|||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-tanix-tx6-mini.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h616-orangepi-zero2.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h616-x96-mate.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h618-orangepi-zero3.dtb
|
||||
|
|
|
@ -0,0 +1,134 @@
|
|||
// SPDX-License-Identifier: (GPL-2.0+ or MIT)
|
||||
/*
|
||||
* Copyright (C) 2020 Arm Ltd.
|
||||
*
|
||||
* DT nodes common between Orange Pi Zero 2 and Orange Pi Zero 3.
|
||||
* Excludes PMIC nodes and properties, since they are different between the two.
|
||||
*/
|
||||
|
||||
#include "sun50i-h616.dtsi"
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/leds/common.h>
|
||||
|
||||
/ {
|
||||
aliases {
|
||||
ethernet0 = &emac0;
|
||||
serial0 = &uart0;
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
led-0 {
|
||||
function = LED_FUNCTION_POWER;
|
||||
color = <LED_COLOR_ID_RED>;
|
||||
gpios = <&pio 2 12 GPIO_ACTIVE_HIGH>; /* PC12 */
|
||||
default-state = "on";
|
||||
};
|
||||
|
||||
led-1 {
|
||||
function = LED_FUNCTION_STATUS;
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
gpios = <&pio 2 13 GPIO_ACTIVE_HIGH>; /* PC13 */
|
||||
};
|
||||
};
|
||||
|
||||
reg_vcc5v: vcc5v {
|
||||
/* board wide 5V supply directly from the USB-C socket */
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vcc-5v";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
reg_usb1_vbus: regulator-usb1-vbus {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "usb1-vbus";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
vin-supply = <®_vcc5v>;
|
||||
enable-active-high;
|
||||
gpio = <&pio 2 16 GPIO_ACTIVE_HIGH>; /* PC16 */
|
||||
};
|
||||
};
|
||||
|
||||
&ehci1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* USB 2 & 3 are on headers only. */
|
||||
|
||||
&emac0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&ext_rgmii_pins>;
|
||||
phy-mode = "rgmii";
|
||||
phy-handle = <&ext_rgmii_phy>;
|
||||
allwinner,rx-delay-ps = <3100>;
|
||||
allwinner,tx-delay-ps = <700>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mdio0 {
|
||||
ext_rgmii_phy: ethernet-phy@1 {
|
||||
compatible = "ethernet-phy-ieee802.3-c22";
|
||||
reg = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
&mmc0 {
|
||||
cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
|
||||
bus-width = <4>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ohci1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&spi0 {
|
||||
status = "okay";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&spi0_pins>, <&spi0_cs0_pin>;
|
||||
|
||||
flash@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "jedec,spi-nor";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <40000000>;
|
||||
};
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart0_ph_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbotg {
|
||||
/*
|
||||
* PHY0 pins are connected to a USB-C socket, but a role switch
|
||||
* is not implemented: both CC pins are pulled to GND.
|
||||
* The VBUS pins power the device, so a fixed peripheral mode
|
||||
* is the best choice.
|
||||
* The board can be powered via GPIOs, in this case port0 *can*
|
||||
* act as a host (with a cable/adapter ignoring CC), as VBUS is
|
||||
* then provided by the GPIOs. Any user of this setup would
|
||||
* need to adjust the DT accordingly: dr_mode set to "host",
|
||||
* enabling OHCI0 and EHCI0.
|
||||
*/
|
||||
dr_mode = "peripheral";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbphy {
|
||||
usb1_vbus-supply = <®_usb1_vbus>;
|
||||
status = "okay";
|
||||
};
|
|
@ -5,95 +5,19 @@
|
|||
|
||||
/dts-v1/;
|
||||
|
||||
#include "sun50i-h616.dtsi"
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/leds/common.h>
|
||||
#include "sun50i-h616-orangepi-zero.dtsi"
|
||||
|
||||
/ {
|
||||
model = "OrangePi Zero2";
|
||||
compatible = "xunlong,orangepi-zero2", "allwinner,sun50i-h616";
|
||||
|
||||
aliases {
|
||||
ethernet0 = &emac0;
|
||||
serial0 = &uart0;
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
led-0 {
|
||||
function = LED_FUNCTION_POWER;
|
||||
color = <LED_COLOR_ID_RED>;
|
||||
gpios = <&pio 2 12 GPIO_ACTIVE_HIGH>; /* PC12 */
|
||||
default-state = "on";
|
||||
};
|
||||
|
||||
led-1 {
|
||||
function = LED_FUNCTION_STATUS;
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
gpios = <&pio 2 13 GPIO_ACTIVE_HIGH>; /* PC13 */
|
||||
};
|
||||
};
|
||||
|
||||
reg_vcc5v: vcc5v {
|
||||
/* board wide 5V supply directly from the USB-C socket */
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vcc-5v";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
reg_usb1_vbus: regulator-usb1-vbus {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "usb1-vbus";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
vin-supply = <®_vcc5v>;
|
||||
enable-active-high;
|
||||
gpio = <&pio 2 16 GPIO_ACTIVE_HIGH>; /* PC16 */
|
||||
};
|
||||
};
|
||||
|
||||
&ehci1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* USB 2 & 3 are on headers only. */
|
||||
|
||||
&emac0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&ext_rgmii_pins>;
|
||||
phy-mode = "rgmii";
|
||||
phy-handle = <&ext_rgmii_phy>;
|
||||
phy-supply = <®_dcdce>;
|
||||
allwinner,rx-delay-ps = <3100>;
|
||||
allwinner,tx-delay-ps = <700>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mdio0 {
|
||||
ext_rgmii_phy: ethernet-phy@1 {
|
||||
compatible = "ethernet-phy-ieee802.3-c22";
|
||||
reg = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
&mmc0 {
|
||||
vmmc-supply = <®_dcdce>;
|
||||
cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
|
||||
bus-width = <4>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ohci1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&r_rsb {
|
||||
|
@ -211,44 +135,3 @@
|
|||
vcc-ph-supply = <®_aldo1>;
|
||||
vcc-pi-supply = <®_aldo1>;
|
||||
};
|
||||
|
||||
&spi0 {
|
||||
status = "okay";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&spi0_pins>, <&spi0_cs0_pin>;
|
||||
|
||||
flash@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "jedec,spi-nor";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <40000000>;
|
||||
};
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart0_ph_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbotg {
|
||||
/*
|
||||
* PHY0 pins are connected to a USB-C socket, but a role switch
|
||||
* is not implemented: both CC pins are pulled to GND.
|
||||
* The VBUS pins power the device, so a fixed peripheral mode
|
||||
* is the best choice.
|
||||
* The board can be powered via GPIOs, in this case port0 *can*
|
||||
* act as a host (with a cable/adapter ignoring CC), as VBUS is
|
||||
* then provided by the GPIOs. Any user of this setup would
|
||||
* need to adjust the DT accordingly: dr_mode set to "host",
|
||||
* enabling OHCI0 and EHCI0.
|
||||
*/
|
||||
dr_mode = "peripheral";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbphy {
|
||||
usb1_vbus-supply = <®_usb1_vbus>;
|
||||
status = "okay";
|
||||
};
|
||||
|
|
|
@ -0,0 +1,94 @@
|
|||
// SPDX-License-Identifier: (GPL-2.0+ or MIT)
|
||||
/*
|
||||
* Copyright (C) 2023 Arm Ltd.
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "sun50i-h616-orangepi-zero.dtsi"
|
||||
|
||||
/ {
|
||||
model = "OrangePi Zero3";
|
||||
compatible = "xunlong,orangepi-zero3", "allwinner,sun50i-h618";
|
||||
};
|
||||
|
||||
&emac0 {
|
||||
phy-supply = <®_dldo1>;
|
||||
};
|
||||
|
||||
&ext_rgmii_phy {
|
||||
motorcomm,clk-out-frequency-hz = <125000000>;
|
||||
};
|
||||
|
||||
&mmc0 {
|
||||
/*
|
||||
* The schematic shows the card detect pin wired up to PF6, via an
|
||||
* inverter, but it just doesn't work.
|
||||
*/
|
||||
broken-cd;
|
||||
vmmc-supply = <®_dldo1>;
|
||||
};
|
||||
|
||||
&r_i2c {
|
||||
status = "okay";
|
||||
|
||||
axp313: pmic@36 {
|
||||
compatible = "x-powers,axp313a";
|
||||
reg = <0x36>;
|
||||
#interrupt-cells = <1>;
|
||||
interrupt-controller;
|
||||
interrupt-parent = <&pio>;
|
||||
interrupts = <2 9 IRQ_TYPE_LEVEL_LOW>; /* PC9 */
|
||||
|
||||
vin1-supply = <®_vcc5v>;
|
||||
vin2-supply = <®_vcc5v>;
|
||||
vin3-supply = <®_vcc5v>;
|
||||
|
||||
regulators {
|
||||
/* Supplies VCC-PLL, so needs to be always on. */
|
||||
reg_aldo1: aldo1 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-name = "vcc1v8";
|
||||
};
|
||||
|
||||
/* Supplies VCC-IO, so needs to be always on. */
|
||||
reg_dldo1: dldo1 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-name = "vcc3v3";
|
||||
};
|
||||
|
||||
reg_dcdc1: dcdc1 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <810000>;
|
||||
regulator-max-microvolt = <990000>;
|
||||
regulator-name = "vdd-gpu-sys";
|
||||
};
|
||||
|
||||
reg_dcdc2: dcdc2 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <810000>;
|
||||
regulator-max-microvolt = <1100000>;
|
||||
regulator-name = "vdd-cpu";
|
||||
};
|
||||
|
||||
reg_dcdc3: dcdc3 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <1100000>;
|
||||
regulator-max-microvolt = <1100000>;
|
||||
regulator-name = "vdd-dram";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&pio {
|
||||
vcc-pc-supply = <®_dldo1>;
|
||||
vcc-pf-supply = <®_dldo1>;
|
||||
vcc-pg-supply = <®_aldo1>;
|
||||
vcc-ph-supply = <®_dldo1>;
|
||||
vcc-pi-supply = <®_dldo1>;
|
||||
};
|
|
@ -144,6 +144,16 @@
|
|||
#reset-cells = <1>;
|
||||
};
|
||||
|
||||
gpadc: adc@2009000 {
|
||||
compatible = "allwinner,sun20i-d1-gpadc";
|
||||
reg = <0x2009000 0x400>;
|
||||
clocks = <&ccu CLK_BUS_GPADC>;
|
||||
resets = <&ccu RST_BUS_GPADC>;
|
||||
interrupts = <SOC_PERIPHERAL_IRQ(57) IRQ_TYPE_LEVEL_HIGH>;
|
||||
status = "disabled";
|
||||
#io-channel-cells = <1>;
|
||||
};
|
||||
|
||||
dmic: dmic@2031000 {
|
||||
compatible = "allwinner,sun20i-d1-dmic",
|
||||
"allwinner,sun50i-h6-dmic";
|
||||
|
|
Loading…
Reference in New Issue