mirror of
https://github.com/torvalds/linux.git
synced 2026-09-24 06:24:02 +02:00
arm64: dts: allwinner: A133: add support for Baijie Helper A133 board
Baijie Helper A133 board is a development board around Baijie A133 Core SBC. Features: - 1/2/4GiB LPDDR4 DRAM - 8/16/32GiB eMMC - AXP707 PMIC - USB-C OTG port in peripheral mode (via onboard hub) - 2 USB 2.0 ports - MicroSD slot and on-board eMMC module - Gigabit Ethernet - Bluetooth - WiFi Add initial support for both the Helper and Core boards, including UART, PMU, eMMC, USB, Ethernet, LRADC-connected buttons. UART1 can only be used for Bluetooth module, but BT-WiFi combo Allwinner AW869A chip has no mainline driver currently. Acked-by: Jernej Skrabec <jernej.skrabec@gmail.com> Signed-off-by: Alexander Sverdlin <alexander.sverdlin@gmail.com> Link: https://patch.msgid.link/20260623204824.691832-7-alexander.sverdlin@gmail.com Signed-off-by: Chen-Yu Tsai <wens@kernel.org>
This commit is contained in:
parent
8fa3a2bf77
commit
7204944dcb
|
|
@ -24,6 +24,7 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-sopine-baseboard.dtb
|
|||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-teres-i.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h64-remix-mini-pc.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a100-allwinner-perf1.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a133-helperboard.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a133-liontron-h-a133l.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-bananapi-m2-plus.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-bananapi-m2-plus-v1.2.dtb
|
||||
|
|
|
|||
197
arch/arm64/boot/dts/allwinner/sun50i-a133-helperboard-core.dtsi
Normal file
197
arch/arm64/boot/dts/allwinner/sun50i-a133-helperboard-core.dtsi
Normal file
|
|
@ -0,0 +1,197 @@
|
|||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
/*
|
||||
* Copyright (c) 2025 Arm Ltd.
|
||||
* Copyright (c) 2026 Alexander Sverdlin <alexander.sverdlin@gmail.com>
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "sun50i-a100.dtsi"
|
||||
#include "sun50i-a100-cpu-opp.dtsi"
|
||||
|
||||
/{
|
||||
model = "Baijie A133 HelperBoard Core";
|
||||
compatible = "baijie,helperboard-a133-core",
|
||||
"allwinner,sun50i-a100";
|
||||
|
||||
aliases {
|
||||
serial1 = &uart1; /* BT module */
|
||||
};
|
||||
};
|
||||
|
||||
&cpu0 {
|
||||
cpu-supply = <®_dcdc2>;
|
||||
};
|
||||
|
||||
&lradc {
|
||||
vref-supply = <®_aldo1>;
|
||||
};
|
||||
|
||||
&mmc2 {
|
||||
vmmc-supply = <®_dcdc1>;
|
||||
vqmmc-supply = <®_eldo1>;
|
||||
cap-mmc-highspeed;
|
||||
cap-mmc-hw-reset;
|
||||
max-frequency = <100000000>;
|
||||
non-removable;
|
||||
bus-width = <8>;
|
||||
mmc-ddr-1_8v;
|
||||
mmc-hs200-1_8v;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pio {
|
||||
vcc-pb-supply = <®_dcdc1>;
|
||||
vcc-pc-supply = <®_eldo1>;
|
||||
vcc-pd-supply = <®_dcdc1>;
|
||||
vcc-pe-supply = <®_dldo2>;
|
||||
vcc-pf-supply = <®_dcdc1>;
|
||||
vcc-pg-supply = <®_dldo1>;
|
||||
vcc-ph-supply = <®_dcdc1>;
|
||||
/*
|
||||
* PL0/PL1 are the I2C connection to PMIC, but it would create a
|
||||
* circular dependency:
|
||||
* vcc-pl-supply = <®_aldo3>;
|
||||
*/
|
||||
};
|
||||
|
||||
&r_i2c0 {
|
||||
status = "okay";
|
||||
|
||||
axp803: pmic@34 {
|
||||
compatible = "x-powers,axp803";
|
||||
reg = <0x34>;
|
||||
interrupt-parent = <&r_intc>;
|
||||
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
||||
x-powers,drive-vbus-en; /* set N_VBUSEN as output pin */
|
||||
aldoin-supply = <®_vdd5v>;
|
||||
dldoin-supply = <®_vdd5v>;
|
||||
eldoin-supply = <®_vdd5v>;
|
||||
fldoin-supply = <®_dcdc5>;
|
||||
vin1-supply = <®_vdd5v>;
|
||||
vin2-supply = <®_vdd5v>;
|
||||
vin3-supply = <®_vdd5v>;
|
||||
vin4-supply = <®_vdd5v>;
|
||||
vin5-supply = <®_vdd5v>;
|
||||
vin6-supply = <®_vdd5v>;
|
||||
drivevbus-supply = <®_vdd5v>;
|
||||
};
|
||||
};
|
||||
|
||||
#include "axp803.dtsi"
|
||||
|
||||
&ac_power_supply {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
®_aldo1 {
|
||||
/* PLL + LRADC analog reference */
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-name = "vcc-pll";
|
||||
};
|
||||
|
||||
®_aldo2 {
|
||||
/* LPDDR */
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-name = "vdd18-lpddr";
|
||||
};
|
||||
|
||||
®_aldo3 {
|
||||
/*
|
||||
* Port L, but linking it to &pio node would create a circular
|
||||
* dependency because of PL0/PL1 I2C connection to PMIC
|
||||
*/
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-name = "vcc-pl";
|
||||
};
|
||||
|
||||
®_dcdc1 {
|
||||
/* Besides Port D it also powers analog part of USB IP and SoC I/O */
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-name = "vcc-3v3";
|
||||
};
|
||||
|
||||
®_dcdc2 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <810000>;
|
||||
regulator-max-microvolt = <1200000>;
|
||||
regulator-name = "vdd-cpu";
|
||||
};
|
||||
|
||||
/* DCDC3 is polyphased with DCDC2 */
|
||||
|
||||
®_dcdc4 {
|
||||
/* Digital part of USB IP, "System" SoC power rail */
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <950000>;
|
||||
regulator-max-microvolt = <950000>;
|
||||
regulator-name = "vdd-sys";
|
||||
};
|
||||
|
||||
®_dcdc5 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <1100000>;
|
||||
regulator-max-microvolt = <1100000>;
|
||||
regulator-name = "vcc-dram";
|
||||
};
|
||||
|
||||
/* DCDC6 unused */
|
||||
®_dcdc6 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
®_dldo1 {
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-name = "vcc-pg";
|
||||
};
|
||||
|
||||
®_dldo2 {
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-name = "vcc-pe";
|
||||
};
|
||||
|
||||
®_dldo3 {
|
||||
regulator-min-microvolt = <2800000>;
|
||||
regulator-max-microvolt = <2800000>;
|
||||
regulator-name = "avdd-csi";
|
||||
};
|
||||
|
||||
®_dldo4 {
|
||||
regulator-min-microvolt = <2800000>;
|
||||
regulator-max-microvolt = <2800000>;
|
||||
regulator-name = "afvcc-csi";
|
||||
};
|
||||
|
||||
®_eldo1 {
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-name = "vcc-pc";
|
||||
};
|
||||
|
||||
®_eldo2 {
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <1200000>;
|
||||
regulator-name = "dvdd-csi";
|
||||
};
|
||||
|
||||
/* ELDO3 unused */
|
||||
|
||||
®_fldo1 {
|
||||
/* CPUS power rail */
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <900000>;
|
||||
regulator-max-microvolt = <900000>;
|
||||
regulator-name = "vdd-cpus";
|
||||
};
|
||||
|
||||
/* reg_drivevbus unused */
|
||||
148
arch/arm64/boot/dts/allwinner/sun50i-a133-helperboard.dts
Normal file
148
arch/arm64/boot/dts/allwinner/sun50i-a133-helperboard.dts
Normal file
|
|
@ -0,0 +1,148 @@
|
|||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
/*
|
||||
* Copyright (c) 2025 Arm Ltd.
|
||||
* Copyright (c) 2026 Alexander Sverdlin <alexander.sverdlin@gmail.com>
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "sun50i-a133-helperboard-core.dtsi"
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/linux-event-codes.h>
|
||||
#include <dt-bindings/leds/common.h>
|
||||
|
||||
/{
|
||||
model = "Baijie HelperBoard A133";
|
||||
compatible = "baijie,helperboard-a133",
|
||||
"baijie,helperboard-a133-core",
|
||||
"allwinner,sun50i-a100";
|
||||
|
||||
aliases {
|
||||
serial0 = &uart0;
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
led {
|
||||
function = LED_FUNCTION_INDICATOR;
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
gpios = <&pio 7 13 GPIO_ACTIVE_LOW>; /* PH13 */
|
||||
};
|
||||
};
|
||||
|
||||
reg_vdd5v: vdd5v {
|
||||
/* board wide 5V supply from a 12V->5V regulator */
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vdd-5v";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
};
|
||||
|
||||
&ehci1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&emac0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&rgmii0_pins>;
|
||||
phy-handle = <&rgmii_phy>;
|
||||
phy-mode = "rgmii-id";
|
||||
allwinner,rx-delay-ps = <200>;
|
||||
allwinner,tx-delay-ps = <200>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&lradc {
|
||||
wakeup-source;
|
||||
status = "okay";
|
||||
|
||||
button-115 {
|
||||
label = "K1";
|
||||
linux,code = <KEY_1>;
|
||||
channel = <0>;
|
||||
voltage = <114607>;
|
||||
};
|
||||
|
||||
button-235 {
|
||||
label = "K2";
|
||||
linux,code = <KEY_2>;
|
||||
channel = <0>;
|
||||
voltage = <234783>;
|
||||
};
|
||||
|
||||
button-360 {
|
||||
label = "K3";
|
||||
linux,code = <KEY_3>;
|
||||
channel = <0>;
|
||||
voltage = <360000>;
|
||||
};
|
||||
|
||||
button-476 {
|
||||
label = "K4";
|
||||
linux,code = <KEY_4>;
|
||||
channel = <0>;
|
||||
voltage = <476471>;
|
||||
};
|
||||
|
||||
button-592 {
|
||||
label = "K5";
|
||||
linux,code = <KEY_5>;
|
||||
channel = <0>;
|
||||
voltage = <591946>;
|
||||
};
|
||||
};
|
||||
|
||||
&mdio0 {
|
||||
reset-gpios = <&pio 7 11 GPIO_ACTIVE_LOW>; /* PH11 */
|
||||
reset-delay-us = <10000>;
|
||||
reset-post-delay-us = <150000>;
|
||||
|
||||
rgmii_phy: ethernet-phy@1 {
|
||||
compatible = "ethernet-phy-ieee802.3-c22";
|
||||
reg = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
&mmc0 {
|
||||
vmmc-supply = <®_dcdc1>;
|
||||
cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
|
||||
bus-width = <4>;
|
||||
disable-wp;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ohci1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&rgmii0_pins {
|
||||
drive-strength = <30>;
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart0_pb_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb_otg {
|
||||
/*
|
||||
* Connected to a downstream port of an onboard hub, therefore only
|
||||
* "peripheral" mode will work here.
|
||||
*/
|
||||
dr_mode = "peripheral";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbphy {
|
||||
usb1_vbus-supply = <®_vdd5v>;
|
||||
status = "okay";
|
||||
};
|
||||
Loading…
Reference in New Issue
Block a user