| // SPDX-License-Identifier: (GPL-2.0+ or MIT) |
| // Copyright (C) 2022 Samuel Holland <samuel@sholland.org> |
| |
| #include <dt-bindings/gpio/gpio.h> |
| |
| /dts-v1/; |
| |
| #include "sun20i-d1.dtsi" |
| #include "sun20i-common-regulators.dtsi" |
| |
| / { |
| model = "ClockworkPi v3.14 (R-01)"; |
| compatible = "clockwork,r-01-clockworkpi-v3.14", "allwinner,sun20i-d1"; |
| |
| aliases { |
| ethernet0 = &ap6256; |
| serial0 = &uart0; |
| }; |
| |
| chosen { |
| stdout-path = "serial0:115200n8"; |
| }; |
| |
| /* |
| * This regulator is PWM-controlled, but the PWM controller is not |
| * yet supported, so fix the regulator to its default voltage. |
| */ |
| reg_vdd_cpu: vdd-cpu { |
| compatible = "regulator-fixed"; |
| regulator-name = "vdd-cpu"; |
| regulator-min-microvolt = <1100000>; |
| regulator-max-microvolt = <1100000>; |
| vin-supply = <®_vcc>; |
| }; |
| |
| wifi_pwrseq: wifi-pwrseq { |
| compatible = "mmc-pwrseq-simple"; |
| reset-gpios = <&pio 6 11 GPIO_ACTIVE_LOW>; /* PG11/GPIO3 */ |
| }; |
| }; |
| |
| &cpu0 { |
| cpu-supply = <®_vdd_cpu>; |
| }; |
| |
| &dcxo { |
| clock-frequency = <24000000>; |
| }; |
| |
| &ehci1 { |
| status = "okay"; |
| }; |
| |
| &i2c0 { |
| pinctrl-0 = <&i2c0_pb10_pins>; |
| pinctrl-names = "default"; |
| status = "okay"; |
| |
| axp221: pmic@34 { |
| compatible = "x-powers,axp228", "x-powers,axp221"; |
| reg = <0x34>; |
| interrupt-parent = <&pio>; |
| interrupts = <4 9 IRQ_TYPE_LEVEL_LOW>; /* PE9/GPIO2 */ |
| interrupt-controller; |
| #interrupt-cells = <1>; |
| |
| ac_power_supply: ac-power { |
| compatible = "x-powers,axp221-ac-power-supply"; |
| }; |
| |
| axp_adc: adc { |
| compatible = "x-powers,axp221-adc"; |
| #io-channel-cells = <1>; |
| }; |
| |
| battery_power_supply: battery-power { |
| compatible = "x-powers,axp221-battery-power-supply"; |
| }; |
| |
| axp_gpio: gpio { |
| compatible = "x-powers,axp221-gpio"; |
| gpio-controller; |
| #gpio-cells = <2>; |
| }; |
| |
| regulators { |
| x-powers,dcdc-freq = <3000>; |
| |
| reg_dcdc1: dcdc1 { |
| regulator-name = "sys-3v3"; |
| regulator-always-on; |
| regulator-min-microvolt = <3300000>; |
| regulator-max-microvolt = <3300000>; |
| }; |
| |
| reg_dcdc3: dcdc3 { |
| regulator-name = "sys-1v8"; |
| regulator-always-on; |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <1800000>; |
| }; |
| |
| reg_aldo1: aldo1 { |
| regulator-name = "aud-3v3"; |
| regulator-min-microvolt = <3300000>; |
| regulator-max-microvolt = <3300000>; |
| }; |
| |
| reg_aldo2: aldo2 { |
| regulator-name = "disp-3v3"; |
| regulator-always-on; |
| regulator-min-microvolt = <3300000>; |
| regulator-max-microvolt = <3300000>; |
| }; |
| |
| reg_aldo3: aldo3 { |
| regulator-name = "vdd-wifi"; |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <1800000>; |
| }; |
| |
| /* DLDO1 and ELDO1-3 are connected in parallel. */ |
| reg_dldo1: dldo1 { |
| regulator-name = "vbat-wifi-a"; |
| regulator-always-on; |
| regulator-min-microvolt = <3300000>; |
| regulator-max-microvolt = <3300000>; |
| }; |
| |
| /* DLDO2-DLDO4 are connected in parallel. */ |
| reg_dldo2: dldo2 { |
| regulator-name = "vcc-3v3-ext-a"; |
| regulator-always-on; |
| regulator-min-microvolt = <3300000>; |
| regulator-max-microvolt = <3300000>; |
| }; |
| |
| reg_dldo3: dldo3 { |
| regulator-name = "vcc-3v3-ext-b"; |
| regulator-always-on; |
| regulator-min-microvolt = <3300000>; |
| regulator-max-microvolt = <3300000>; |
| }; |
| |
| reg_dldo4: dldo4 { |
| regulator-name = "vcc-3v3-ext-c"; |
| regulator-always-on; |
| regulator-min-microvolt = <3300000>; |
| regulator-max-microvolt = <3300000>; |
| }; |
| |
| reg_eldo1: eldo1 { |
| regulator-name = "vbat-wifi-b"; |
| regulator-always-on; |
| regulator-min-microvolt = <3300000>; |
| regulator-max-microvolt = <3300000>; |
| }; |
| |
| reg_eldo2: eldo2 { |
| regulator-name = "vbat-wifi-c"; |
| regulator-always-on; |
| regulator-min-microvolt = <3300000>; |
| regulator-max-microvolt = <3300000>; |
| }; |
| |
| reg_eldo3: eldo3 { |
| regulator-name = "vbat-wifi-d"; |
| regulator-always-on; |
| regulator-min-microvolt = <3300000>; |
| regulator-max-microvolt = <3300000>; |
| }; |
| }; |
| |
| usb_power_supply: usb-power { |
| compatible = "x-powers,axp221-usb-power-supply"; |
| status = "disabled"; |
| }; |
| }; |
| }; |
| |
| &mmc0 { |
| broken-cd; |
| bus-width = <4>; |
| disable-wp; |
| vmmc-supply = <®_dcdc1>; |
| vqmmc-supply = <®_vcc_3v3>; |
| pinctrl-0 = <&mmc0_pins>; |
| pinctrl-names = "default"; |
| status = "okay"; |
| }; |
| |
| &mmc1 { |
| bus-width = <4>; |
| mmc-pwrseq = <&wifi_pwrseq>; |
| non-removable; |
| vmmc-supply = <®_dldo1>; |
| vqmmc-supply = <®_aldo3>; |
| pinctrl-0 = <&mmc1_pins>; |
| pinctrl-names = "default"; |
| status = "okay"; |
| |
| ap6256: wifi@1 { |
| compatible = "brcm,bcm43456-fmac", "brcm,bcm4329-fmac"; |
| reg = <1>; |
| interrupt-parent = <&pio>; |
| interrupts = <6 10 IRQ_TYPE_LEVEL_LOW>; /* PG10/GPIO4 */ |
| interrupt-names = "host-wake"; |
| }; |
| }; |
| |
| &ohci1 { |
| status = "okay"; |
| }; |
| |
| &pio { |
| vcc-pg-supply = <®_ldoa>; |
| }; |
| |
| &uart0 { |
| pinctrl-0 = <&uart0_pb8_pins>; |
| pinctrl-names = "default"; |
| status = "okay"; |
| }; |
| |
| &uart1 { |
| uart-has-rtscts; |
| pinctrl-0 = <&uart1_pg6_pins>, <&uart1_pg8_rts_cts_pins>; |
| pinctrl-names = "default"; |
| status = "okay"; |
| |
| bluetooth { |
| compatible = "brcm,bcm4345c5"; |
| interrupt-parent = <&pio>; |
| interrupts = <6 17 IRQ_TYPE_LEVEL_HIGH>; /* PG17/GPIO6 */ |
| device-wakeup-gpios = <&pio 6 16 GPIO_ACTIVE_HIGH>; /* PG16/GPIO7 */ |
| shutdown-gpios = <&pio 6 18 GPIO_ACTIVE_HIGH>; /* PG18/GPIO5 */ |
| max-speed = <1500000>; |
| vbat-supply = <®_dldo1>; |
| vddio-supply = <®_aldo3>; |
| }; |
| }; |
| |
| &usb_otg { |
| dr_mode = "peripheral"; |
| status = "okay"; |
| }; |
| |
| &usbphy { |
| usb0_vbus_power-supply = <&ac_power_supply>; |
| usb1_vbus-supply = <®_vcc>; |
| status = "okay"; |
| }; |