From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Aditya Prayoga Date: Tue, 15 Sep 2020 20:04:22 +0700 Subject: Add board Helios64 note: rpardini: this patch was rebased on top of 6.3.1, finally admitting that it used to blindly overwrite the mainline dts (it was added when helios64 was not in the tree, and thus a "file addition"). the resulting patch is the complete set of changes actually done. Signed-off-by: Aditya Prayoga --- arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts | 716 ++++++++-- 1 file changed, 635 insertions(+), 81 deletions(-) diff --git a/arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts b/arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts +++ b/arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts @@ -11,6 +11,10 @@ */ /dts-v1/; +#include +#include +#include +#include #include "rk3399.dtsi" / { @@ -47,6 +51,25 @@ chosen { stdout-path = "serial2:1500000n8"; }; + adc-keys { + compatible = "adc-keys"; + io-channels = <&saradc 1>; + io-channel-names = "buttons"; + keyup-threshold-microvolt = <1800000>; + poll-interval = <100>; + + user2-button { + label = "User Button 2"; + linux,code = ; + press-threshold-microvolt = <100000>; + }; + }; + + beeper: beeper { + compatible = "gpio-beeper"; + gpios = <&gpio4 RK_PD3 GPIO_ACTIVE_HIGH>; + }; + clkin_gmac: external-gmac-clock { compatible = "fixed-clock"; clock-frequency = <125000000>; @@ -54,35 +77,119 @@ clkin_gmac: external-gmac-clock { #clock-cells = <0>; }; - fan1 { + fan1: p7-fan { /* fan connected to P7 */ compatible = "pwm-fan"; pwms = <&pwm0 0 40000 0>; + cooling-min-state = <0>; + cooling-max-state = <3>; + #cooling-cells = <2>; cooling-levels = <0 80 170 255>; }; - fan2 { + fan2: p6-fan { /* fan connected to P6 */ compatible = "pwm-fan"; pwms = <&pwm1 0 40000 0>; + cooling-min-state = <0>; + cooling-max-state = <3>; + #cooling-cells = <2>; cooling-levels = <0 80 170 255>; }; - leds { + io_leds: io-gpio-leds { + status = "okay"; compatible = "gpio-leds"; pinctrl-names = "default"; - pinctrl-0 = <&sys_grn_led_on &sys_red_led_on>; + pinctrl-0 = <&network_act>, <&usb3_act>, + <&sata_act>, <&sata_err_led>; + + network { + label = "helios64:blue:net"; + gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "netdev"; + default-state = "off"; + }; - led-0 { - label = "helios64:green:status"; + sata { + label = "helios64:blue:hdd-status"; + gpios = <&gpio4 RK_PD4 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "disk-activity"; + default-state = "off"; + }; + + sata_err1 { + label = "helios64:red:ata1-err"; + gpios = <&gpio2 RK_PA2 GPIO_ACTIVE_HIGH>; + default-state = "keep"; + }; + + sata_err2 { + label = "helios64:red:ata2-err"; + gpios = <&gpio2 RK_PA3 GPIO_ACTIVE_HIGH>; + default-state = "keep"; + }; + + sata_err3 { + label = "helios64:red:ata3-err"; + gpios = <&gpio2 RK_PA4 GPIO_ACTIVE_HIGH>; + default-state = "keep"; + }; + + sata_err4 { + label = "helios64:red:ata4-err"; + gpios = <&gpio2 RK_PA5 GPIO_ACTIVE_HIGH>; + default-state = "keep"; + }; + + sata_err5 { + label = "helios64:red:ata5-err"; + gpios = <&gpio2 RK_PA6 GPIO_ACTIVE_HIGH>; + default-state = "keep"; + }; + + usb3 { + label = "helios64:blue:usb3"; + gpios = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>; + trigger-sources = <&int_hub_port1>, + <&int_hub_port2>, + <&int_hub_port3>; + linux,default-trigger = "usbport"; + default-state = "off"; + }; + }; + + pwmleds { + compatible = "pwm-leds"; + status = "okay"; + + power-led { + label = "helios64:blue:power-status"; + pwms = <&pwm3 0 2000000000 0>; + max-brightness = <255>; + }; + }; + + system_leds: system-gpio-leds { + status = "okay"; + compatible = "gpio-leds"; + pinctrl-names = "default"; + pinctrl-0 = <&system_led>; + + status-led { + label = "helios64::status"; gpios = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "none"; default-state = "on"; + mode = <0x23>; }; - led-1 { + fault-led { label = "helios64:red:fault"; gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "panic"; default-state = "keep"; + mode = <0x23>; }; }; @@ -114,7 +221,7 @@ pcie_power: regulator-pcie-power { compatible = "regulator-fixed"; enable-active-high; gpio = <&gpio1 RK_PD0 GPIO_ACTIVE_HIGH>; - pinctrl-0 = <&pcie_pwr>; + pinctrl-0 = <&pcie_pwr_en>; pinctrl-names = "default"; regulator-boot-on; regulator-name = "pcie_power"; @@ -134,6 +241,7 @@ usblan_power: regulator-usblan-power { vin-supply = <&vcc5v0_usb>; }; + /* switched by pmic_sleep */ vcc1v8_sys_s0: regulator-vcc1v8-sys-s0 { compatible = "regulator-fixed"; regulator-name = "vcc1v8_sys_s0"; @@ -144,6 +252,16 @@ vcc1v8_sys_s0: regulator-vcc1v8-sys-s0 { vin-supply = <&vcc1v8_sys_s3>; }; + vcc0v9_s3: vcc0v9-s3 { + compatible = "regulator-fixed"; + regulator-name = "vcc0v9_s3"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + vin-supply = <&vcc3v3_sys_s3>; + }; + vcc3v0_sd: regulator-vcc3v0-sd { compatible = "regulator-fixed"; enable-active-high; @@ -209,6 +327,36 @@ vcc5v0_usb: regulator-vcc5v0-usb { vin-supply = <&vcc5v0_perdev>; }; + vcc5v0_typec: vcc5v0-typec-regulator { + compatible = "regulator-fixed"; + enable-active-high; + gpio = <&gpio1 RK_PA3 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&fusb0_vbus_en>; + regulator-name = "vcc5v0_typec"; + vin-supply = <&vcc5v0_usb>; + }; + + vcc5v0_hdd: vcc5v0-hdd { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_hdd"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + vin-supply = <&vcc12v_dcin_bkup>; + }; + + vcc12v_hdd: vcc12v-hdd { + compatible = "regulator-fixed"; + regulator-name = "vcc12v_hdd"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <12000000>; + regulator-max-microvolt = <12000000>; + vin-supply = <&vcc12v_dcin_bkup>; + }; + vcc12v_dcin: regulator-vcc12v-dcin { compatible = "regulator-fixed"; regulator-name = "vcc12v_dcin"; @@ -227,36 +375,60 @@ vcc12v_dcin_bkup: regulator-vcc12v-dcin-bkup { regulator-max-microvolt = <12000000>; vin-supply = <&vcc12v_dcin>; }; -}; -/* - * The system doesn't run stable with cpu freq enabled, so disallow the lower - * frequencies until this problem is properly understood and resolved. - */ -&cluster0_opp { - /delete-node/ opp00; - /delete-node/ opp01; - /delete-node/ opp02; - /delete-node/ opp03; - /delete-node/ opp04; -}; + vdd_log: vdd-log { + compatible = "pwm-regulator"; + pwms = <&pwm2 0 25000 1>; + pwm-supply = <&vcc5v0_sys>; + regulator-name = "vdd_log"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <830000>; + regulator-max-microvolt = <1400000>; + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <900000>; + }; + }; -&cluster1_opp { - /delete-node/ opp00; - /delete-node/ opp01; - /delete-node/ opp02; - /delete-node/ opp03; - /delete-node/ opp04; - /delete-node/ opp05; - /delete-node/ opp06; -}; + gpio-charger { + compatible = "gpio-charger"; + charger-type = "mains"; + gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>; + charge-status-gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&ac_present_ap>, <&charger_status>; + }; -&cpu_b0 { - cpu-supply = <&vdd_cpu_b>; -}; + gpio-keys { + compatible = "gpio-keys"; + autorepeat; + pinctrl-names = "default"; + pinctrl-0 = <&pwrbtn>, <&user1btn>, <&wake_on_lan>; + + power { + debounce-interval = <100>; + gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>; + label = "Power"; + linux,code = ; + wakeup-source; + }; -&cpu_b1 { - cpu-supply = <&vdd_cpu_b>; + user1-button { + debounce-interval = <100>; + gpios = <&gpio0 RK_PA3 GPIO_ACTIVE_LOW>; + label = "User Button 1"; + linux,code = ; + wakeup-source; + }; + }; + + hdmi_dp_sound: hdmi-dp-sound { + status = "okay"; + compatible = "rockchip,rk3399-hdmi-dp"; + rockchip,cpu = <&i2s2>; + rockchip,codec = <&cdn_dp>; + }; }; &cpu_l0 { @@ -275,7 +447,22 @@ &cpu_l3 { cpu-supply = <&vdd_cpu_l>; }; +&cpu_b0 { + cpu-supply = <&vdd_cpu_b>; +}; + +&cpu_b1 { + cpu-supply = <&vdd_cpu_b>; +}; + +&cdn_dp { + status = "okay"; + extcon = <&fusb0>; + phys = <&tcphy0_dp>; +}; + &emmc_phy { + rockchip,enable-strobe-pulldown; status = "okay"; }; @@ -295,6 +482,11 @@ &gmac { status = "okay"; }; +&gpu { + mali-supply = <&vdd_gpu>; + status = "okay"; +}; + &i2c0 { clock-frequency = <400000>; i2c-scl-rising-time-ns = <168>; @@ -310,6 +502,7 @@ rk808: pmic@1b { pinctrl-names = "default"; pinctrl-0 = <&pmic_int_l>; system-power-controller; + vcc1-supply = <&vcc5v0_sys>; vcc2-supply = <&vcc5v0_sys>; vcc3-supply = <&vcc5v0_sys>; @@ -326,6 +519,19 @@ rk808: pmic@1b { #clock-cells = <1>; regulators { + vdd_center: DCDC_REG1 { + regulator-name = "vdd_center"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <800000>; + regulator-max-microvolt = <1000000>; + regulator-ramp-delay = <6001>; + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <950000>; + }; + }; + vdd_cpu_l: DCDC_REG2 { regulator-name = "vdd_cpu_l"; regulator-always-on; @@ -333,19 +539,48 @@ vdd_cpu_l: DCDC_REG2 { regulator-min-microvolt = <750000>; regulator-max-microvolt = <1350000>; regulator-ramp-delay = <6001>; - regulator-state-mem { regulator-off-in-suspend; }; }; + vcc_ddr_s3: DCDC_REG3 { + regulator-name = "vcc_ddr_s3"; + regulator-always-on; + regulator-boot-on; + regulator-state-mem { + regulator-on-in-suspend; + }; + }; + vcc1v8_sys_s3: DCDC_REG4 { regulator-name = "vcc1v8_sys_s3"; 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>; + }; + }; + + /* not used */ + vcc1v8_dvp: LDO_REG1 { + regulator-name = "vcc1v8_dvp"; + }; + + /* not used */ + vcc3v0_touch: LDO_REG2 { + regulator-name = "vcc3v0_touch"; + }; + vcc1v8_s3: LDO_REG3 { + regulator-name = "vcc1v8_s3"; + 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>; @@ -358,25 +593,61 @@ vcc_sdio_s0: LDO_REG4 { regulator-boot-on; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <3000000>; - regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <3000000>; }; }; + /* not used */ + vcca3v0_codec: LDO_REG5 { + regulator-name = "vcca3v0_codec"; + }; + + vcc1v5_s3: LDO_REG6 { + regulator-name = "vcc1v5_s3"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1500000>; + regulator-max-microvolt = <1500000>; + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <1500000>; + }; + }; + + /* not used */ + vcca1v8_codec: LDO_REG7 { + regulator-name = "vcca1v8_codec"; + }; + vcc3v0_s3: LDO_REG8 { regulator-name = "vcc3v0_s3"; regulator-always-on; regulator-boot-on; regulator-min-microvolt = <3000000>; regulator-max-microvolt = <3000000>; - regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <3000000>; }; }; + + vcc3v3_sys_s0: SWITCH_REG1 { + regulator-name = "vcc3v3_sys_s0"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + /* not used */ + vcc3v3_s0: SWITCH_REG2 { + regulator-name = "vcc3v3_s0"; + }; }; }; @@ -384,12 +655,33 @@ vdd_cpu_b: regulator@40 { compatible = "silergy,syr827"; reg = <0x40>; fcs,suspend-voltage-selector = <1>; + pinctrl-names = "default"; + pinctrl-0 = <&vsel1_gpio>; regulator-name = "vdd_cpu_b"; + regulator-min-microvolt = <712500>; + regulator-max-microvolt = <1500000>; + regulator-ramp-delay = <40000>; regulator-always-on; regulator-boot-on; + vin-supply = <&vcc5v0_sys>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vdd_gpu: regulator@41 { + compatible = "silergy,syr828"; + reg = <0x41>; + fcs,suspend-voltage-selector = <1>; + pinctrl-names = "default"; + pinctrl-0 = <&vsel2_gpio>; + regulator-name = "vdd_gpu"; regulator-min-microvolt = <712500>; regulator-max-microvolt = <1500000>; regulator-ramp-delay = <1000>; + regulator-always-on; + regulator-boot-on; vin-supply = <&vcc5v0_sys>; regulator-state-mem { @@ -404,17 +696,101 @@ &i2c2 { i2c-scl-falling-time-ns = <30>; status = "okay"; + gpio-expander@20 { + compatible = "nxp,pca9555"; + reg = <0x20>; + gpio-controller; + #gpio-cells = <2>; + pinctrl-names = "default"; + pinctrl-0 = <&pca0_pins>; + interrupt-parent = <&gpio0>; + interrupts = <9 IRQ_TYPE_EDGE_FALLING>; + interrupt-controller; + #interrupt-cells = <2>; + vcc-supply = <&vcc3v3_sys_s3>; + }; + temp@4c { compatible = "national,lm75"; reg = <0x4c>; }; }; +&i2c4 { + clock-frequency = <400000>; + i2c-scl-rising-time-ns = <160>; + i2c-scl-falling-time-ns = <30>; + status = "okay"; + + fusb0: typec-portc@22 { + compatible = "fcs,fusb302"; + reg = <0x22>; + interrupt-parent = <&gpio1>; + interrupts = ; + pinctrl-names = "default"; + pinctrl-0 = <&fusb0_int>; + vbus-supply = <&vcc5v0_typec>; + + connector { + compatible = "usb-c-connector"; + label = "USB-C"; + power-role = "dual"; + data-role = "dual"; + try-power-role = "sink"; + source-pdos = ; + sink-pdos = ; + op-sink-microwatt = <5000000>; + + extcon-cables = <1 2 5 6 9 10 12 44>; + typec-altmodes = <0xff01 1 0x001c0000 1>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + usb_con_hs: endpoint { + remote-endpoint = <&u2phy0_typec_hs>; + }; + }; + port@1 { + reg = <1>; + usb_con_ss: endpoint { + remote-endpoint = <&tcphy0_typec_ss>; + }; + }; + port@2 { + reg = <2>; + usb_con_sbu: endpoint { + remote-endpoint = <&tcphy0_typec_dp>; + }; + }; + }; + }; + }; +}; + +/* I2C on UEXT */ +&i2c7 { + status = "okay"; +}; + +/* External I2C */ +&i2c8 { + status = "okay"; +}; + +&i2s2 { + #sound-dai-cells = <0>; + status = "okay"; +}; + &io_domains { - audio-supply = <&vcc1v8_sys_s0>; bt656-supply = <&vcc1v8_sys_s0>; - gpio1830-supply = <&vcc3v0_s3>; + audio-supply = <&vcc1v8_sys_s0>; sdmmc-supply = <&vcc_sdio_s0>; + gpio1830-supply = <&vcc3v0_s3>; status = "okay"; }; @@ -427,6 +803,7 @@ &pcie0 { max-link-speed = <2>; num-lanes = <2>; pinctrl-names = "default"; + pinctrl-0 = <&pcie_prst &pcie_clkreqn_cpm>; status = "okay"; vpcie12v-supply = <&vcc12v_dcin>; @@ -436,36 +813,116 @@ &pcie0 { }; &pinctrl { + buttons { + pwrbtn: pwrbtn { + rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>; + }; + + user1btn: usr1btn { + rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + charger { + ac_present_ap: ac-present-ap { + rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>; + }; + + charger_status: charger-status { + rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + fan { + fan1_sense: fan1-sense { + rockchip,pins = <4 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>; + }; + + fan2_sense: fan2-sense { + rockchip,pins = <4 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + fusb30x { + fusb0_int: fusb0-int { + rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>; + }; + + fusb0_vbus_en: fusb0-vbus-en { + rockchip,pins = <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>; + }; + }; + gmac { gphy_reset: gphy-reset { - rockchip,pins = <3 RK_PB7 RK_FUNC_GPIO &pcfg_output_low>; + rockchip,pins = + <3 RK_PB7 RK_FUNC_GPIO &pcfg_output_low>; }; }; leds { - sys_grn_led_on: sys-grn-led-on { - rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_down>; + network_act: network-act { + rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_down>; + }; + + usb3_act: usb3-act { + rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_down>; + }; + + sata_act: sata-act { + rockchip,pins = <4 RK_PD4 RK_FUNC_GPIO &pcfg_pull_down>; + }; + + system_led: sys-led { + rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_down>, + <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_down>; }; - sys_red_led_on: sys-red-led-on { - rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_down>; + sata_err_led: sata-err-led { + rockchip,pins = <2 RK_PA2 RK_FUNC_GPIO &pcfg_pull_down>, + <2 RK_PA3 RK_FUNC_GPIO &pcfg_pull_down>, + <2 RK_PA4 RK_FUNC_GPIO &pcfg_pull_down>, + <2 RK_PA5 RK_FUNC_GPIO &pcfg_pull_down>, + <2 RK_PA6 RK_FUNC_GPIO &pcfg_pull_down>; + }; + }; + + misc { + pca0_pins: pca0-pins { + rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>; + }; + + wake_on_lan: wake-on-lan { + rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; }; }; pcie { - pcie_pwr: pcie-pwr { + pcie_pwr_en: pcie-pwr-en { rockchip,pins = <1 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>; }; + + pcie_prst: pcie-prst { + rockchip,pins = <2 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>; + }; }; pmic { pmic_int_l: pmic-int-l { - rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>; + rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>; + }; + + vsel1_gpio: vsel1-gpio { + rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>; + }; + + vsel2_gpio: vsel2-gpio { + rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>; }; }; - power { + power { hdd_a_power_en: hdd-a-power-en { rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>; }; @@ -485,7 +942,7 @@ usb_lan_en: usb-lan-en { vcc3v0-sd { sdmmc0_pwr_h: sdmmc0-pwr-h { - rockchip,pins = <0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>; + rockchip,pins = <0 RK_PA1 RK_FUNC_GPIO &pcfg_output_high>; }; }; }; @@ -505,10 +962,28 @@ &pwm1 { status = "okay"; }; +&pwm2 { + status = "okay"; +}; + +&pwm3 { + status = "okay"; +}; + +&saradc { + vref-supply = <&vcc1v8_s3>; + status = "okay"; +}; + &sdhci { + assigned-clock-rates = <150000000>; bus-width = <8>; mmc-hs200-1_8v; + mmc-hs400-1_8v; + mmc-hs400-enhanced-strobe; + supports-emmc; non-removable; + disable-wp; vqmmc-supply = <&vcc1v8_sys_s0>; status = "okay"; }; @@ -516,8 +991,9 @@ &sdhci { &sdmmc { bus-width = <4>; cap-sd-highspeed; - cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>; + cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>; // TODO: verify what needs to be done to use implicit CD definition disable-wp; + sd-uhs-sdr104; pinctrl-names = "default"; pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>; vmmc-supply = <&vcc3v0_sd>; @@ -546,6 +1022,27 @@ &spi5 { status = "okay"; }; +&tcphy0 { + extcon = <&fusb0>; + status = "okay"; +}; + +&tcphy0_dp { + port { + tcphy0_typec_dp: endpoint { + remote-endpoint = <&usb_con_sbu>; + }; + }; +}; + +&tcphy0_usb3 { + port { + tcphy0_typec_ss: endpoint { + remote-endpoint = <&usb_con_ss>; + }; + }; +}; + &tcphy1 { /* phy for &usbdrd_dwc3_1 */ status = "okay"; @@ -559,61 +1056,118 @@ &tsadc { status = "okay"; }; -&u2phy1 { +&u2phy0 { status = "okay"; - otg-port { - /* phy for &usbdrd_dwc3_1 */ + u2phy0_otg: otg-port { + status = "okay"; + }; + + u2phy0_host: host-port { phy-supply = <&vcc5v0_usb>; status = "okay"; }; + + port { + u2phy0_typec_hs: endpoint { + remote-endpoint = <&usb_con_hs>; + }; + }; +}; + +&u2phy1 { + status = "okay"; + + u2phy1_otg: otg-port { + status = "okay"; + }; +}; + +&uart0 { + pinctrl-names = "default"; + pinctrl-0 = <&uart0_xfer>; + status = "okay"; }; &uart2 { status = "okay"; }; +&usb_host0_ehci { + status = "okay"; +}; + +&usb_host0_ohci { + status = "okay"; +}; + +&usbdrd3_0 { + status = "okay"; +}; + +&usbdrd_dwc3_0 { + status = "okay"; + dr_mode = "otg"; +}; + &usbdrd3_1 { status = "okay"; +}; - usb@fe900000 { - dr_mode = "host"; - status = "okay"; +&usbdrd_dwc3_1 { + dr_mode = "host"; + status = "okay"; + + #address-cells = <1>; + #size-cells = <0>; + + int_hub: hub@1 { + compatible = "usb2109,0815"; + reg = <1>; #address-cells = <1>; #size-cells = <0>; - hub@1 { - compatible = "usb2109,0815"; + int_hub_port1: port@1 { reg = <1>; - #address-cells = <1>; - #size-cells = <0>; - - port@1 { - reg = <1>; - #trigger-source-cells = <0>; - }; + #trigger-source-cells = <0>; + }; - port@2 { - reg = <2>; - #trigger-source-cells = <0>; - }; + int_hub_port2: port@2 { + reg = <2>; + #trigger-source-cells = <0>; + }; - port@3 { - reg = <3>; - #trigger-source-cells = <0>; - }; + int_hub_port3: port@3 { + reg = <3>; + #trigger-source-cells = <0>; + }; - device@4 { - compatible = "usbbda,8156"; - reg = <4>; - #address-cells = <2>; - #size-cells = <0>; + usb_lan: device@4 { + compatible = "usbbda,8156"; + reg = <4>; + #address-cells = <2>; + #size-cells = <0>; - interface@0 { /* interface 0 of configuration 1 */ - compatible = "usbifbda,8156.config1.0"; - reg = <0 1>; - }; + interface@0 { /* interface 0 of configuration 1 */ + compatible = "usbifbda,8156.config1.0"; + reg = <0 1>; }; }; }; }; + +&vopb { + status = "okay"; +}; + +&vopb_mmu { + status = "okay"; +}; + +&vopl { + status = "okay"; +}; + +&vopl_mmu { + status = "okay"; +}; -- Armbian