mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-14 17:07:38 +00:00
63391b198a
Radxa Compute Module 3(CM3) is one of the modules from a series System On Module based on the Radxa ROCK 3 series and is compatible with Raspberry Pi CM4 pinout and form factor. Specification: - Rockchip RK3566 - up to 8GB LPDDR4 - up to 128GB high performance eMMC - Optional wireless LAN, 2.4GHz and 5.0GHz IEEE 802.11b/g/n/ac wireless, BT 5.0, BLE with onboard and external antenna. - Gigabit Ethernet PHY Radxa CM3 needs to mount on top of this IO board in order to create complete Radxa CM3 IO board platform. Since Radxa CM3 is compatible with Raspberry Pi CM4 pinout so it is possible to mount Radxa CM3 on top of the Rasberry Pi CM4 IO board. linux-next commit for the same, commit <8f19828844f2> ("arm64: dts: rockchip: Fix compatible for Radxa CM3") Add support for Radxa CM3. Reviewed-by: Kever Yang <kever.yang@rock-chips.com> Co-developed-by: FUKAUMI Naoki <naoki@radxa.com> Signed-off-by: FUKAUMI Naoki <naoki@radxa.com> Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
425 lines
9.2 KiB
Text
425 lines
9.2 KiB
Text
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
|
/*
|
|
* Copyright (c) 2022 Radxa Limited
|
|
* Copyright (c) 2022 Amarula Solutions(India)
|
|
*/
|
|
|
|
#include <dt-bindings/gpio/gpio.h>
|
|
#include <dt-bindings/leds/common.h>
|
|
|
|
/ {
|
|
compatible = "radxa,cm3", "rockchip,rk3566";
|
|
|
|
aliases {
|
|
mmc0 = &sdhci;
|
|
};
|
|
|
|
leds {
|
|
compatible = "gpio-leds";
|
|
|
|
led-0 {
|
|
gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
|
|
color = <LED_COLOR_ID_GREEN>;
|
|
function = LED_FUNCTION_STATUS;
|
|
linux,default-trigger = "timer";
|
|
default-state = "on";
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&user_led2>;
|
|
};
|
|
};
|
|
|
|
vcc_sys: vcc-sys-regulator {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "vcc_sys";
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
regulator-min-microvolt = <5000000>;
|
|
regulator-max-microvolt = <5000000>;
|
|
};
|
|
|
|
vcc_1v8: vcc-1v8-regulator {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "vcc_1v8";
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
vin-supply = <&vcc_1v8_p>;
|
|
};
|
|
|
|
vcc_3v3: vcc-3v3-regulator {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "vcc_3v3";
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
vin-supply = <&vcc3v3_sys>;
|
|
};
|
|
|
|
vcca_1v8: vcca-1v8-regulator {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "vcca_1v8";
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
vin-supply = <&vcc_1v8_p>;
|
|
};
|
|
|
|
sdio_pwrseq: pwrseq-sdio {
|
|
compatible = "mmc-pwrseq-simple";
|
|
clocks = <&rk817 1>;
|
|
clock-names = "ext_clock";
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&wifi_reg_on_h>;
|
|
reset-gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_LOW>;
|
|
};
|
|
};
|
|
|
|
&cpu0 {
|
|
cpu-supply = <&vdd_cpu>;
|
|
};
|
|
|
|
&cpu1 {
|
|
cpu-supply = <&vdd_cpu>;
|
|
};
|
|
|
|
&cpu2 {
|
|
cpu-supply = <&vdd_cpu>;
|
|
};
|
|
|
|
&cpu3 {
|
|
cpu-supply = <&vdd_cpu>;
|
|
};
|
|
|
|
&gpu {
|
|
mali-supply = <&vdd_gpu_npu>;
|
|
status = "okay";
|
|
};
|
|
|
|
&i2c0 {
|
|
status = "okay";
|
|
|
|
vdd_cpu: regulator@1c {
|
|
compatible = "tcs,tcs4525";
|
|
reg = <0x1c>;
|
|
fcs,suspend-voltage-selector = <1>;
|
|
regulator-name = "vdd_cpu";
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
regulator-min-microvolt = <712500>;
|
|
regulator-max-microvolt = <1390000>;
|
|
regulator-ramp-delay = <2300>;
|
|
vin-supply = <&vcc_sys>;
|
|
|
|
regulator-state-mem {
|
|
regulator-off-in-suspend;
|
|
};
|
|
};
|
|
|
|
rk817: pmic@20 {
|
|
compatible = "rockchip,rk817";
|
|
reg = <0x20>;
|
|
#clock-cells = <1>;
|
|
clock-output-names = "rk817-clkout1", "rk817-clkout2";
|
|
interrupt-parent = <&gpio0>;
|
|
interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&pmic_int_l>;
|
|
rockchip,system-power-controller;
|
|
wakeup-source;
|
|
|
|
vcc1-supply = <&vcc_sys>;
|
|
vcc2-supply = <&vcc_sys>;
|
|
vcc3-supply = <&vcc_sys>;
|
|
vcc4-supply = <&vcc_sys>;
|
|
vcc5-supply = <&vcc_sys>;
|
|
vcc6-supply = <&vcc_sys>;
|
|
vcc7-supply = <&vcc_sys>;
|
|
|
|
regulators {
|
|
vdd_logic: DCDC_REG1 {
|
|
regulator-name = "vdd_logic";
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
regulator-initial-mode = <0x2>;
|
|
regulator-min-microvolt = <500000>;
|
|
regulator-max-microvolt = <1350000>;
|
|
regulator-ramp-delay = <6001>;
|
|
regulator-state-mem {
|
|
regulator-on-in-suspend;
|
|
regulator-suspend-microvolt = <900000>;
|
|
};
|
|
};
|
|
|
|
vdd_gpu_npu: DCDC_REG2 {
|
|
regulator-name = "vdd_gpu_npu";
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
regulator-initial-mode = <0x2>;
|
|
regulator-min-microvolt = <500000>;
|
|
regulator-max-microvolt = <1350000>;
|
|
regulator-ramp-delay = <6001>;
|
|
regulator-state-mem {
|
|
regulator-off-in-suspend;
|
|
};
|
|
};
|
|
|
|
vcc_ddr: DCDC_REG3 {
|
|
regulator-name = "vcc_ddr";
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
regulator-initial-mode = <0x2>;
|
|
regulator-state-mem {
|
|
regulator-on-in-suspend;
|
|
};
|
|
};
|
|
|
|
vcc3v3_sys: DCDC_REG4 {
|
|
regulator-name = "vcc3v3_sys";
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
regulator-initial-mode = <0x2>;
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-state-mem {
|
|
regulator-on-in-suspend;
|
|
regulator-suspend-microvolt = <3300000>;
|
|
};
|
|
};
|
|
|
|
vcca1v8_pmu: LDO_REG1 {
|
|
regulator-name = "vcca1v8_pmu";
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
regulator-state-mem {
|
|
regulator-on-in-suspend;
|
|
regulator-suspend-microvolt = <1800000>;
|
|
};
|
|
};
|
|
|
|
vdda_0v9: LDO_REG2 {
|
|
regulator-name = "vdda_0v9";
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
regulator-min-microvolt = <900000>;
|
|
regulator-max-microvolt = <900000>;
|
|
regulator-state-mem {
|
|
regulator-off-in-suspend;
|
|
};
|
|
};
|
|
|
|
vdda0v9_pmu: LDO_REG3 {
|
|
regulator-name = "vdda0v9_pmu";
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
regulator-min-microvolt = <900000>;
|
|
regulator-max-microvolt = <900000>;
|
|
regulator-state-mem {
|
|
regulator-on-in-suspend;
|
|
regulator-suspend-microvolt = <900000>;
|
|
};
|
|
};
|
|
|
|
vccio_acodec: LDO_REG4 {
|
|
regulator-name = "vccio_acodec";
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-state-mem {
|
|
regulator-off-in-suspend;
|
|
};
|
|
};
|
|
|
|
vccio_sd: LDO_REG5 {
|
|
regulator-name = "vccio_sd";
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-state-mem {
|
|
regulator-off-in-suspend;
|
|
};
|
|
};
|
|
|
|
vcc3v3_pmu: LDO_REG6 {
|
|
regulator-name = "vcc3v3_pmu";
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-state-mem {
|
|
regulator-on-in-suspend;
|
|
regulator-suspend-microvolt = <3300000>;
|
|
};
|
|
};
|
|
|
|
vcc_1v8_p: LDO_REG7 {
|
|
regulator-name = "vcc_1v8_p";
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
regulator-state-mem {
|
|
regulator-off-in-suspend;
|
|
};
|
|
};
|
|
|
|
vcc1v8_dvp: LDO_REG8 {
|
|
regulator-name = "vcc1v8_dvp";
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
regulator-state-mem {
|
|
regulator-off-in-suspend;
|
|
};
|
|
};
|
|
|
|
vcc2v8_dvp: LDO_REG9 {
|
|
regulator-name = "vcc2v8_dvp";
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
regulator-min-microvolt = <2800000>;
|
|
regulator-max-microvolt = <2800000>;
|
|
regulator-state-mem {
|
|
regulator-off-in-suspend;
|
|
};
|
|
};
|
|
|
|
};
|
|
};
|
|
};
|
|
|
|
&pinctrl {
|
|
bluetooth {
|
|
bt_host_wake_h: bt-host-wake-h {
|
|
rockchip,pins = <2 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
|
|
};
|
|
|
|
bt_reg_on_h: bt-reg-on-h {
|
|
rockchip,pins = <2 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>;
|
|
};
|
|
|
|
bt_wake_host_h: bt-wake-host-h {
|
|
rockchip,pins = <2 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
|
|
};
|
|
};
|
|
|
|
pmic {
|
|
pmic_int_l: pmic-int-l {
|
|
rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
|
|
};
|
|
};
|
|
|
|
leds {
|
|
user_led2: user-led2 {
|
|
rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
|
|
};
|
|
};
|
|
|
|
wifi {
|
|
wifi_reg_on_h: wifi-reg-on-h {
|
|
rockchip,pins = <2 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
|
|
};
|
|
|
|
wifi_host_wake_h: wifi-host-wake-h {
|
|
rockchip,pins = <2 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
|
|
};
|
|
};
|
|
};
|
|
|
|
&pmu_io_domains {
|
|
pmuio1-supply = <&vcc3v3_pmu>;
|
|
pmuio2-supply = <&vcc_3v3>;
|
|
vccio1-supply = <&vccio_acodec>;
|
|
vccio2-supply = <&vcc_1v8>;
|
|
vccio3-supply = <&vccio_sd>;
|
|
vccio4-supply = <&vcc_1v8>;
|
|
vccio5-supply = <&vcc_3v3>;
|
|
vccio6-supply = <&vcc_3v3>;
|
|
vccio7-supply = <&vcc_3v3>;
|
|
status = "okay";
|
|
};
|
|
|
|
&saradc {
|
|
vref-supply = <&vcca_1v8>;
|
|
status = "okay";
|
|
};
|
|
|
|
&sdmmc1 {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
bus-width = <4>;
|
|
disable-wp;
|
|
cap-sd-highspeed;
|
|
cap-sdio-irq;
|
|
keep-power-in-suspend;
|
|
mmc-pwrseq = <&sdio_pwrseq>;
|
|
non-removable;
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_clk &sdmmc1_cmd>;
|
|
sd-uhs-sdr104;
|
|
vmmc-supply = <&vcc_3v3>;
|
|
vqmmc-supply = <&vcc_1v8>;
|
|
status = "okay";
|
|
|
|
wifi@1 {
|
|
compatible = "brcm,bcm43455-fmac";
|
|
reg = <1>;
|
|
interrupt-parent = <&gpio2>;
|
|
interrupts = <RK_PC1 IRQ_TYPE_LEVEL_HIGH>;
|
|
interrupt-names = "host-wake";
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&wifi_host_wake_h>;
|
|
};
|
|
};
|
|
|
|
&sdhci {
|
|
bus-width = <8>;
|
|
max-frequency = <200000000>;
|
|
mmc-hs200-1_8v;
|
|
non-removable;
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe>;
|
|
vmmc-supply = <&vcc_3v3>;
|
|
vqmmc-supply = <&vcc_1v8>;
|
|
status = "okay";
|
|
};
|
|
|
|
&uart1 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&uart1m0_ctsn &uart1m0_rtsn &uart1m0_xfer>;
|
|
status = "okay";
|
|
|
|
bluetooth {
|
|
compatible = "brcm,bcm4345c5";
|
|
clocks = <&rk817 1>;
|
|
clock-names = "lpo";
|
|
device-wakeup-gpios = <&gpio2 RK_PB2 GPIO_ACTIVE_HIGH>;
|
|
host-wakeup-gpios = <&gpio2 RK_PB1 GPIO_ACTIVE_HIGH>;
|
|
reset-gpios = <&gpio2 RK_PC0 GPIO_ACTIVE_LOW>;
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&bt_host_wake_h &bt_reg_on_h &bt_wake_host_h>;
|
|
vbat-supply = <&vcc_3v3>;
|
|
vddio-supply = <&vcc_1v8>;
|
|
};
|
|
};
|
|
|
|
&usb2phy0 {
|
|
status = "okay";
|
|
};
|
|
|
|
&usb2phy1 {
|
|
status = "okay";
|
|
};
|
|
|
|
&tsadc {
|
|
rockchip,hw-tshut-mode = <1>;
|
|
rockchip,hw-tshut-polarity = <0>;
|
|
status = "okay";
|
|
};
|