Created
January 14, 2025 00:21
-
-
Save BrokenR3C0RD/3dc97a0adff8120dd8a07f99c9d404ee to your computer and use it in GitHub Desktop.
Creality Sonic Pad - Mainline DTS WIP
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// SPDX-License-Identifier: (GPL-2.0+ OR MIT) | |
/* | |
* Copyright (c) 2025 Cody Eksal <[email protected]> | |
*/ | |
/dts-v1/; | |
#include "sun50i-a100.dtsi" | |
#include "sun50i-a100-cpu-opp.dtsi" | |
#include <dt-bindings/gpio/gpio.h> | |
#include <dt-bindings/leds/common.h> | |
/ { | |
model = "Creality Sonic Pad"; | |
compatible = "creality,sonic-pad", | |
"allwinner,sun50i-a100"; | |
chassis-type = "tablet"; | |
/* TODO: Remove later */ | |
aliases { | |
serial0 = &uart0; | |
mmc1 = &mmc1; | |
mmc2 = &mmc2; | |
}; | |
chosen { | |
stdout-path = "serial0: 115200n8"; | |
}; | |
reg_usb0_vbus: usb0-vbus { | |
compatible = "regulator-fixed"; | |
regulator-name = "usb0-vbus"; | |
regulator-min-microvolt = <5000000>; | |
regulator-max-microvolt = <5000000>; | |
gpio = <&pio 7 12 GPIO_ACTIVE_HIGH>; /* PH12 */ | |
enable-active-high; | |
}; | |
reg_usb1_vbus: usb1-vbus { | |
compatible = "regulator-fixed"; | |
regulator-name = "usb1-vbus"; | |
regulator-min-microvolt = <5000000>; | |
regulator-max-microvolt = <5000000>; | |
gpio = <&pio 5 4 GPIO_ACTIVE_HIGH>; /* PF4 */ | |
enable-active-high; | |
}; | |
reg_vcc5v: vcc5v { | |
compatible = "regulator-fixed"; | |
regulator-name = "vcc-5v"; | |
regulator-min-microvolt = <5000000>; | |
regulator-max-microvolt = <5000000>; | |
regulator-always-on; | |
}; | |
wifi_pwrseq: pwrseq-wifi { | |
compatible = "mmc-pwrseq-simple"; | |
clocks = <&rtc CLK_OSC32K_FANOUT>; | |
clock-names = "ext_clock"; | |
reset-gpios = <&r_pio 0 5 GPIO_ACTIVE_LOW>; | |
post-power-on-delay-ms = <100>; | |
}; | |
leds { | |
compatible = "gpio-leds"; | |
status = "okay"; | |
sys_led { | |
label = "sys-led"; | |
gpios = <&pio 7 19 GPIO_ACTIVE_HIGH>; | |
}; | |
}; | |
}; | |
&pio { | |
vcc-pb-supply = <®_dcdce>; | |
vcc-pc-supply = <®_aldo1>; | |
// vcc-pd-supply | |
vcc-pe-supply = <®_cldo2>; | |
vcc-pf-supply = <®_dcdce>; | |
vcc-pg-supply = <®_dcdcb>; | |
vcc-ph-supply = <®_dcdce>; | |
usb_vbus0_pin: usb-vbus0-pin { | |
pins = "PH12"; | |
function = "gpio_out"; | |
drive-strength = <30>; | |
bias-disable; | |
}; | |
usb_vbus1_pin: usb-vbus1-pin { | |
pins = "PF4"; | |
function = "gpio_out"; | |
drive-strength = <30>; | |
bias-disable; | |
}; | |
gpio-led { | |
pins = "PH19"; | |
function = "gpio_out"; | |
}; | |
}; | |
&r_pio { | |
wifi_wake: wifi_wake { | |
pins = "PL6"; | |
function = "gpio_in"; | |
}; | |
}; | |
&r_i2c0 { | |
status = "okay"; | |
clock-frequency = <200000>; | |
pmu0: pmu@36 { | |
compatible = "x-powers,axp806"; | |
interrupts = <0 IRQ_TYPE_LEVEL_LOW>; | |
interrupt-parent = <&r_intc>; | |
interrupt-controller; | |
#interrupt-cells = <1>; | |
reg = <0x36>; | |
x-powers,self-working-mode; | |
vina-supply = <®_vcc5v>; | |
vinb-supply = <®_vcc5v>; | |
vinc-supply = <®_vcc5v>; | |
vind-supply = <®_vcc5v>; | |
vine-supply = <®_vcc5v>; | |
aldoin-supply = <®_vcc5v>; | |
bldoin-supply = <®_vcc5v>; | |
cldoin-supply = <®_vcc5v>; | |
regulators { | |
/* Known from DTS */ | |
reg_dcdca: dcdca { | |
regulator-name = "vdd-cpu"; | |
regulator-min-microvolt = <600000>; | |
regulator-max-microvolt = <1520000>; | |
regulator-always-on; | |
regulator-boot-on; | |
system-critical-regulator; | |
}; | |
/* Effect: none that are obvious */ | |
/* Maybe AVCC? */ | |
reg_dcdcb: dcdcb { | |
regulator-name = "vdd-wifi"; | |
regulator-min-microvolt = <1800000>; | |
regulator-max-microvolt = <1800000>; | |
}; | |
/* Effect: board shutdown */ | |
/* Possibly VDD_CPUS? VDD_SYS? */ | |
reg_dcdcc: dcdcc { | |
regulator-name = "dcdcc"; | |
regulator-min-microvolt = <900000>; | |
regulator-max-microvolt = <900000>; | |
regulator-always-on; | |
regulator-boot-on; | |
system-critical-regulator; | |
}; | |
/* Known from boot0 */ | |
reg_dcdcd: dcdcd { | |
regulator-name = "vcc-dram"; | |
regulator-min-microvolt = <1200000>; | |
regulator-max-microvolt = <1200000>; | |
regulator-always-on; | |
regulator-boot-on; | |
system-critical-regulator; | |
}; | |
reg_dcdce: dcdce { | |
regulator-name = "vcc-io-emmc-wlan-emac"; | |
regulator-min-microvolt = <3300000>; | |
regulator-max-microvolt = <3300000>; | |
regulator-always-on; | |
regulator-boot-on; | |
system-critical-regulator; | |
}; | |
/* Effect: PMIC inaccessible, Ethernet LED off */ | |
/* Appears to be VCC_PC | VCC_PL */ | |
reg_aldo1: aldo1 { | |
regulator-name = "vdd-pc-pl-mmc-pmic"; | |
regulator-min-microvolt = <1800000>; | |
regulator-max-microvolt = <3300000>; | |
regulator-always-on; | |
regulator-boot-on; | |
system-critical-regulator; | |
}; | |
reg_aldo2: aldo2 { | |
regulator-name = "vcc-phy-wlan"; | |
regulator-min-microvolt = <3300000>; | |
regulator-max-microvolt = <3300000>; | |
regulator-enable-ramp-delay = <100000>; | |
}; | |
reg_aldo3: aldo3 { | |
regulator-name = "aldo3"; | |
regulator-min-microvolt = <3300000>; | |
regulator-max-microvolt = <3300000>; | |
}; | |
/* Effect: System lockup */ | |
/* Possibly VCC-PLL/AVCC? */ | |
reg_bldo1: bldo1 { | |
regulator-name = "vcc-pll-avcc"; | |
regulator-min-microvolt = <1800000>; | |
regulator-max-microvolt = <1800000>; | |
regulator-always-on; | |
regulator-boot-on; | |
system-critical-regulator; | |
}; | |
/* Effect: DRAM inaccessible */ | |
/* VDD_CPUS? */ | |
reg_bldo2: bldo2 { | |
regulator-name = "bldo2"; | |
regulator-min-microvolt = <700000>; | |
regulator-max-microvolt = <1900000>; | |
regulator-always-on; | |
regulator-boot-on; | |
system-critical-regulator; | |
}; | |
/* CPVIN? */ | |
reg_bldo3: bldo3 { | |
regulator-name = "cpvin"; | |
regulator-min-microvolt = <700000>; | |
regulator-max-microvolt = <1900000>; | |
}; | |
/* Unused? */ | |
reg_bldo4: bldo4 { | |
regulator-name = "bldo4"; | |
regulator-min-microvolt = <700000>; | |
regulator-max-microvolt = <1900000>; | |
}; | |
/* effect: eventual DRAM hang */ | |
/* Assumed to be DRAM 1v8 for that reason */ | |
reg_cldo1: cldo1 { | |
regulator-name = "vdd-dram-1v8"; | |
regulator-min-microvolt = <1800000>; | |
regulator-max-microvolt = <1800000>; | |
regulator-always-on; | |
regulator-boot-on; | |
system-critical-regulator; | |
}; | |
/* VCC_PE? */ | |
reg_cldo2: cldo2 { | |
regulator-name = "vcc-pe"; | |
regulator-min-microvolt = <700000>; | |
regulator-max-microvolt = <700000>; | |
}; | |
/* Unused? */ | |
reg_cldo3: cldo3 { | |
regulator-name = "cldo3"; | |
regulator-min-microvolt = <700000>; | |
regulator-max-microvolt = <3300000>; | |
}; | |
reg_sw: sw { | |
regulator-name = "sw-screen"; | |
}; | |
}; | |
}; | |
}; | |
&cpu0 { | |
cpu-supply = <®_dcdca>; | |
}; | |
&mmc1 { | |
bus-width = <4>; | |
cap-sd-highspeed; | |
cap-sdio-irq; | |
no-sd; | |
no-mmc; | |
keep-power-in-suspend; | |
max-frequency = <150000000>; | |
vmmc-supply = <®_aldo2>; | |
vqmmc-supply = <®_dcdcb>; | |
wakeup-source; | |
non-removable; | |
mmc-pwrseq = <&wifi_pwrseq>; | |
status = "okay"; | |
xr819wifi: xr819wifi@1 { | |
reg = <1>; | |
compatible = "xradio,xr819"; | |
pinctrl-0 = <&wifi_wake>; | |
pinctrl-names = "default"; | |
interrupt-parent = <&r_pio>; | |
interrupts = <0 6 IRQ_TYPE_EDGE_RISING>; | |
interrupt-names = "host-wake"; | |
}; | |
}; | |
&mmc2 { | |
non-removable; | |
bus-width = <8>; | |
cap-mmc-highspeed; | |
cap-mmc-hw-reset; | |
no-sdio; | |
no-sd; | |
mmc-ddr-1_8v; | |
mmc-hs200-1_8v; | |
max-frequency = <150000000>; | |
vmmc-supply = <®_dcdce>; | |
vqmmc-supply = <®_aldo1>; | |
status = "okay"; | |
}; | |
&usbphy { | |
usb0_vbus-supply = <®_usb0_vbus>; | |
usb1_vbus-supply = <®_usb1_vbus>; | |
status = "okay"; | |
}; | |
&ehci1 { | |
status = "okay"; | |
}; | |
&ohci1 { | |
status = "okay"; | |
}; | |
&uart0 { | |
pinctrl-names = "default"; | |
pinctrl-0 = <&uart0_pb_pins>; | |
status = "okay"; | |
}; | |
&usb_otg { | |
dr_mode = "peripheral"; | |
status = "okay"; | |
}; | |
&emac { | |
pinctrl-names = "default"; | |
pinctrl-0 = <&rgmii_pins>; | |
phy-mode = "rgmii-id"; | |
phy-handle = <&ext_rgmii_phy>; | |
phy-supply = <®_aldo2>; | |
allwinner,tx-delay-ps = <700>; | |
allwinner,rx-delay-ps = <0>; | |
status = "okay"; | |
}; | |
&spi0 { | |
pinctrl-names = "default"; | |
pinctrl-0 = <&spi0_pins>; | |
status = "okay"; | |
spidev@0 { | |
compatible = "rohm,dh2228fv"; | |
reg = <0>; | |
spi-max-frequency = <4000000>; | |
}; | |
}; | |
&spi1 { | |
pinctrl-names = "default"; | |
pinctrl-0 = <&spi1_pins>; | |
status = "okay"; | |
spidev@0 { | |
compatible = "rohm,dh2228fv"; | |
reg = <0>; | |
spi-max-frequency = <4000000>; | |
}; | |
}; | |
&spi2 { | |
pinctrl-names = "default"; | |
pinctrl-0 = <&spi2_pins>; | |
status = "okay"; | |
spidev@0 { | |
compatible = "rohm,dh2228fv"; | |
reg = <0>; | |
spi-max-frequency = <4000000>; | |
}; | |
}; | |
&mdio { | |
status = "okay"; | |
ext_rgmii_phy: ethernet-phy@0 { | |
/* RTL8211F */ | |
reg = <0>; | |
compatible = "ethernet-phy-id001c.c916"; | |
max-speed = <1000>; | |
reset-assert-us = <15000>; | |
reset-deassert-us = <55000>; | |
realtek,clkout-disable; | |
clocks = <&ccu CLK_EMAC_25M>; | |
reset-gpios = <&pio 7 11 GPIO_ACTIVE_LOW> /* PH11 */; | |
leds { | |
#address-cells = <1>; | |
#size-cells = <0>; | |
led@0 { | |
reg = <0>; | |
color = <LED_COLOR_ID_GREEN>; | |
function = LED_FUNCTION_WAN; | |
linux,default-trigger = "netdev"; | |
}; | |
led@1 { | |
reg = <1>; | |
color = <LED_COLOR_ID_YELLOW>; | |
function = LED_FUNCTION_WAN; | |
linux,default-trigger = "netdev"; | |
}; | |
}; | |
}; | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment