diff --git a/config/boards/firefly-rk3399.csc b/config/boards/firefly-rk3399.csc index 41a87c58990c..1e2aa29f579a 100644 --- a/config/boards/firefly-rk3399.csc +++ b/config/boards/firefly-rk3399.csc @@ -1,29 +1,11 @@ # Rockchip RK3399 hexa core 4GB SoC eMMC GBE USB3 WiFi BOARD_NAME="Firefly RK3399" -BOARDFAMILY="media" -BOARD_MAINTAINER="150balbes" +BOARDFAMILY="rockchip64" +BOARD_MAINTAINER="" BOOTCONFIG="firefly-rk3399_defconfig" -KERNEL_TARGET="legacy,current,edge" +KERNEL_TARGET="current,edge" FULL_DESKTOP="yes" BOOT_LOGO="desktop" BOOT_FDT_FILE="rockchip/rk3399-firefly.dtb" SRC_EXTLINUX="yes" SRC_CMDLINE="console=ttyS2,1500000 console=tty0" -#ASOUND_STATE="asound.state.station-p1" - -function post_family_tweaks_bsp__firefly-rk3399_BSP() { - display_alert "Installing BSP firmware and fixups" - - if [[ $BRANCH == legacy ]]; then - - # Bluetooth for most of others (custom patchram is needed only in legacy) - install -m 755 $SRC/packages/bsp/rk3399/brcm_patchram_plus_rk3399 $destination/usr/bin - cp $SRC/packages/bsp/rk3399/rk3399-bluetooth.service $destination/lib/systemd/system/ - - # need to swap chips in the service - sed -i s%BCM4345C5%BCM4356A2%g $destination/lib/systemd/system/rk3399-bluetooth.service - - fi - - return 0 -} diff --git a/lib/functions/rootfs/distro-agnostic.sh b/lib/functions/rootfs/distro-agnostic.sh index d9a54f5d939e..6b6f26b510b3 100644 --- a/lib/functions/rootfs/distro-agnostic.sh +++ b/lib/functions/rootfs/distro-agnostic.sh @@ -413,6 +413,11 @@ function install_distribution_agnostic() { # @TODO: rpardini: still needed? people might want working Samba disable_systemd_service_sdcard nmbd + # move sshd activation from ssh.service to ssh.socket (more realiable, avoids possible race condition on first boot) supplementary to ffee50a8a6b99bb4f35af90895e019eced7ff71b and 67250321918e59582b8f1003d331f4b1db253b21 + display_alert "Moving SSH activation from service to socket" "systemd" "info" + disable_systemd_service_sdcard ssh + chroot_sdcard systemctl enable ssh.socket + # disable low-level kernel messages for non betas if [[ -z $BETA ]]; then sed -i "s/^#kernel.printk*/kernel.printk/" "${SDCARD}"/etc/sysctl.conf diff --git a/packages/bsp/common/usr/lib/armbian/armbian-firstlogin b/packages/bsp/common/usr/lib/armbian/armbian-firstlogin index 0c4d90aeb809..7e89378ecfa6 100755 --- a/packages/bsp/common/usr/lib/armbian/armbian-firstlogin +++ b/packages/bsp/common/usr/lib/armbian/armbian-firstlogin @@ -579,7 +579,7 @@ if [[ -f /root/.not_logged_in_yet && -n $(tty) ]]; then # re-enable passing locale environment via ssh sed -e '/^#AcceptEnv LANG/ s/^#//' -i /etc/ssh/sshd_config # restart sshd daemon - systemctl reload ssh.service + systemctl restart ssh.service # rpardini: hacks per-dm, very much legacy stuff that works by a miracle if [[ "${desktop_dm}" == "lightdm" ]] && [ -n "$RealName" ]; then diff --git a/patch/kernel/archive/rockchip64-6.6/board-firefly-rk3399-dts.patch b/patch/kernel/archive/rockchip64-6.6/board-firefly-rk3399-dts.patch new file mode 100644 index 000000000000..4d2ea713a60d --- /dev/null +++ b/patch/kernel/archive/rockchip64-6.6/board-firefly-rk3399-dts.patch @@ -0,0 +1,1073 @@ +index c654b6b02f3..f73f792eb44 100644 +--- a/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts ++++ b/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts +@@ -1,13 +1,11 @@ + // SPDX-License-Identifier: (GPL-2.0+ OR MIT) + /* +- * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd. ++ * Copyright (c) 2017 T-Chip Intelligent Technology Co., Ltd + */ + + /dts-v1/; + #include +-#include + #include +-#include + #include "rk3399.dtsi" + #include "rk3399-opp.dtsi" + +@@ -16,9 +14,9 @@ + compatible = "firefly,firefly-rk3399", "rockchip,rk3399"; + + aliases { +- mmc0 = &sdio0; +- mmc1 = &sdmmc; +- mmc2 = &sdhci; ++ mmc0 = &sdmmc; ++ mmc1 = &sdhci; ++ mmc2 = &sdio0; + }; + + chosen { +@@ -27,42 +25,7 @@ + + backlight: backlight { + compatible = "pwm-backlight"; +- enable-gpios = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>; + pwms = <&pwm0 0 25000 0>; +- brightness-levels = < +- 0 1 2 3 4 5 6 7 +- 8 9 10 11 12 13 14 15 +- 16 17 18 19 20 21 22 23 +- 24 25 26 27 28 29 30 31 +- 32 33 34 35 36 37 38 39 +- 40 41 42 43 44 45 46 47 +- 48 49 50 51 52 53 54 55 +- 56 57 58 59 60 61 62 63 +- 64 65 66 67 68 69 70 71 +- 72 73 74 75 76 77 78 79 +- 80 81 82 83 84 85 86 87 +- 88 89 90 91 92 93 94 95 +- 96 97 98 99 100 101 102 103 +- 104 105 106 107 108 109 110 111 +- 112 113 114 115 116 117 118 119 +- 120 121 122 123 124 125 126 127 +- 128 129 130 131 132 133 134 135 +- 136 137 138 139 140 141 142 143 +- 144 145 146 147 148 149 150 151 +- 152 153 154 155 156 157 158 159 +- 160 161 162 163 164 165 166 167 +- 168 169 170 171 172 173 174 175 +- 176 177 178 179 180 181 182 183 +- 184 185 186 187 188 189 190 191 +- 192 193 194 195 196 197 198 199 +- 200 201 202 203 204 205 206 207 +- 208 209 210 211 212 213 214 215 +- 216 217 218 219 220 221 222 223 +- 224 225 226 227 228 229 230 231 +- 232 233 234 235 236 237 238 239 +- 240 241 242 243 244 245 246 247 +- 248 249 250 251 252 253 254 255>; +- default-brightness-level = <200>; + }; + + clkin_gmac: external-gmac-clock { +@@ -72,13 +35,18 @@ + #clock-cells = <0>; + }; + +- dc_12v: dc-12v { +- compatible = "regulator-fixed"; +- regulator-name = "dc_12v"; +- regulator-always-on; +- regulator-boot-on; +- regulator-min-microvolt = <12000000>; +- regulator-max-microvolt = <12000000>; ++ adc-keys { ++ compatible = "adc-keys"; ++ io-channels = <&saradc 1>; ++ io-channel-names = "buttons"; ++ keyup-threshold-microvolt = <1500000>; ++ poll-interval = <100>; ++ ++ button-recovery { ++ label = "Recovery"; ++ linux,code = ; ++ press-threshold-microvolt = <18000>; ++ }; + }; + + gpio-keys { +@@ -103,47 +71,6 @@ + pinctrl-names = "default"; + }; + +- leds { +- compatible = "gpio-leds"; +- pinctrl-names = "default"; +- pinctrl-0 = <&work_led_pin>, <&diy_led_pin>; +- +- work_led: led-0 { +- label = "work"; +- default-state = "on"; +- gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>; +- }; +- +- diy_led: led-1 { +- label = "diy"; +- default-state = "off"; +- gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>; +- }; +- }; +- +- rt5640-sound { +- compatible = "simple-audio-card"; +- simple-audio-card,name = "rockchip,rt5640-codec"; +- simple-audio-card,format = "i2s"; +- simple-audio-card,mclk-fs = <256>; +- simple-audio-card,widgets = +- "Microphone", "Mic Jack", +- "Headphone", "Headphone Jack"; +- simple-audio-card,routing = +- "Mic Jack", "MICBIAS1", +- "IN1P", "Mic Jack", +- "Headphone Jack", "HPOL", +- "Headphone Jack", "HPOR"; +- +- simple-audio-card,cpu { +- sound-dai = <&i2s1>; +- }; +- +- simple-audio-card,codec { +- sound-dai = <&rt5640>; +- }; +- }; +- + sdio_pwrseq: sdio-pwrseq { + compatible = "mmc-pwrseq-simple"; + clocks = <&rk808 1>; +@@ -160,21 +87,21 @@ + reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>; + }; + +- sound-dit { +- compatible = "audio-graph-card"; +- label = "SPDIF"; +- dais = <&spdif_p0>; ++ vcc_vbus_typec0: vcc-vbus-typec0 { ++ compatible = "regulator-fixed"; ++ regulator-name = "vcc_vbus_typec0"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt = <5000000>; ++ regulator-max-microvolt = <5000000>; + }; + +- spdif-dit { +- compatible = "linux,spdif-dit"; +- #sound-dai-cells = <0>; +- +- port { +- dit_p0_0: endpoint { +- remote-endpoint = <&spdif_p0_0>; +- }; +- }; ++ sys_12v: sys-12v { ++ compatible = "regulator-fixed"; ++ regulator-name = "sys_12v"; ++ regulator-always-on; ++ regulator-boot-on; ++ vin-supply = <&dc_12v>; + }; + + /* switched by pmic_sleep */ +@@ -188,16 +115,17 @@ + vin-supply = <&vcc_1v8>; + }; + +- vcc3v3_pcie: vcc3v3-pcie-regulator { ++ vcc3v0_sd: vcc3v0-sd { + compatible = "regulator-fixed"; + enable-active-high; +- gpio = <&gpio1 RK_PC1 GPIO_ACTIVE_HIGH>; ++ gpio = <&gpio4 RK_PD6 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; +- pinctrl-0 = <&pcie_pwr_en>; +- regulator-name = "vcc3v3_pcie"; +- regulator-always-on; ++ pinctrl-0 = <&vcc3v0_sd_en>; ++ regulator-name = "vcc3v0_sd"; + regulator-boot-on; +- vin-supply = <&dc_12v>; ++ regulator-min-microvolt = <3000000>; ++ regulator-max-microvolt = <3000000>; ++ vin-supply = <&vcc3v3_sys>; + }; + + vcc3v3_sys: vcc3v3-sys { +@@ -207,7 +135,17 @@ + regulator-boot-on; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; +- vin-supply = <&vcc_sys>; ++ vin-supply = <&sys_12v>; ++ }; ++ ++ vcca_0v9: vcca-0v9 { ++ compatible = "regulator-fixed"; ++ regulator-name = "vcca_0v9"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt = <900000>; ++ regulator-max-microvolt = <900000>; ++ vin-supply = <&vcc3v3_sys>; + }; + + /* Actually 3 regulators (host0, 1, 2) controlled by the same gpio */ +@@ -216,42 +154,132 @@ + enable-active-high; + gpio = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; +- pinctrl-0 = <&vcc5v0_host_en>; ++ pinctrl-0 = <&vcc5v0_host_en &hub_rst>; + regulator-name = "vcc5v0_host"; +- regulator-always-on; + vin-supply = <&vcc_sys>; + }; + +- vcc5v0_typec: vcc5v0-typec-regulator { ++ vcc_vbus_typec1: vcc-vbus-typec1 { + compatible = "regulator-fixed"; + enable-active-high; +- gpio = <&gpio1 RK_PA3 GPIO_ACTIVE_HIGH>; ++ gpio = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; +- pinctrl-0 = <&vcc5v0_typec_en>; +- regulator-name = "vcc5v0_typec"; ++ pinctrl-0 = <&vcc_vbus_typec1_en>; ++ regulator-name = "vcc_vbus_typec1"; + regulator-always-on; + vin-supply = <&vcc_sys>; + }; + + vcc_sys: vcc-sys { + compatible = "regulator-fixed"; ++ enable-active-high; ++ gpio = <&gpio2 RK_PA6 GPIO_ACTIVE_HIGH>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&vcc_sys_en>; + regulator-name = "vcc_sys"; +- regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; +- vin-supply = <&dc_12v>; ++ vin-supply = <&sys_12v>; + }; + + vdd_log: vdd-log { + compatible = "pwm-regulator"; + pwms = <&pwm2 0 25000 1>; +- pwm-supply = <&vcc_sys>; + regulator-name = "vdd_log"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <430000>; + regulator-max-microvolt = <1400000>; ++ pwm-supply = <&vcc3v3_sys>; ++ }; ++ ++ /* MP8009 PoE PD */ ++ poe_12v: poe-12v { ++ compatible = "regulator-fixed"; ++ regulator-name = "poe_12v"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt = <12000000>; ++ regulator-max-microvolt = <12000000>; ++ }; ++ ++ vcc3v3_ngff: vcc3v3-ngff { ++ compatible = "regulator-fixed"; ++ regulator-name = "vcc3v3_ngff"; ++ enable-active-high; ++ gpio = <&gpio4 RK_PD3 GPIO_ACTIVE_HIGH>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&vcc3v3_ngff_en>; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ vin-supply = <&sys_12v>; ++ }; ++ ++ vcc3v3_pcie: vcc3v3-pcie { ++ compatible = "regulator-fixed"; ++ regulator-name = "vcc3v3_pcie"; ++ enable-active-high; ++ gpio = <&gpio1 RK_PC1 GPIO_ACTIVE_HIGH>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&vcc3v3_pcie_en>; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ vin-supply = <&sys_12v>; ++ }; ++ ++ leds { ++ compatible = "gpio-leds"; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&work_led_pin>, <&diy_led_pin>; ++ ++ work_led: led-0 { ++ label = "work"; ++ default-state = "on"; ++ gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>; ++ }; ++ ++ diy_led: led-1 { ++ label = "diy"; ++ default-state = "off"; ++ gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>; ++ }; ++ }; ++ ++ rt5640-sound { ++ compatible = "simple-audio-card"; ++ simple-audio-card,name = "rockchip,rt5640-codec"; ++ simple-audio-card,format = "i2s"; ++ simple-audio-card,mclk-fs = <256>; ++ simple-audio-card,widgets = ++ "Microphone", "Mic Jack", ++ "Headphone", "Headphone Jack"; ++ simple-audio-card,routing = ++ "Mic Jack", "MICBIAS1", ++ "IN1P", "Mic Jack", ++ "Headphone Jack", "HPOL", ++ "Headphone Jack", "HPOR"; ++ ++ simple-audio-card,cpu { ++ sound-dai = <&i2s1>; ++ }; ++ ++ simple-audio-card,codec { ++ sound-dai = <&rt5640>; ++ }; ++ }; ++ ++ vcc3v3_3g: vcc3v3-3g-regulator { ++ compatible = "regulator-fixed"; ++ enable-active-high; ++ gpio = <&gpio0 2 GPIO_ACTIVE_HIGH>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pcie_3g_drv>; ++ regulator-name = "vcc3v3_3g"; ++ regulator-always-on; ++ regulator-boot-on; + }; + }; + +@@ -305,12 +333,18 @@ + }; + + &hdmi { ++ avdd-0v9-supply = <&vcca0v9_hdmi>; ++ avdd-1v8-supply = <&vcca1v8_hdmi>; + ddc-i2c-bus = <&i2c3>; + pinctrl-names = "default"; + pinctrl-0 = <&hdmi_cec>; + status = "okay"; + }; + ++&hdmi_sound { ++ status = "okay"; ++}; ++ + &i2c0 { + clock-frequency = <400000>; + i2c-scl-rising-time-ns = <168>; +@@ -329,18 +363,18 @@ + rockchip,system-power-controller; + wakeup-source; + +- vcc1-supply = <&vcc_sys>; +- vcc2-supply = <&vcc_sys>; +- vcc3-supply = <&vcc_sys>; +- vcc4-supply = <&vcc_sys>; +- vcc6-supply = <&vcc_sys>; +- vcc7-supply = <&vcc_sys>; ++ vcc1-supply = <&vcc3v3_sys>; ++ vcc2-supply = <&vcc3v3_sys>; ++ vcc3-supply = <&vcc3v3_sys>; ++ vcc4-supply = <&vcc3v3_sys>; ++ vcc6-supply = <&vcc3v3_sys>; ++ vcc7-supply = <&vcc3v3_sys>; + vcc8-supply = <&vcc3v3_sys>; +- vcc9-supply = <&vcc_sys>; +- vcc10-supply = <&vcc_sys>; +- vcc11-supply = <&vcc_sys>; ++ vcc9-supply = <&vcc3v3_sys>; ++ vcc10-supply = <&vcc3v3_sys>; ++ vcc11-supply = <&vcc3v3_sys>; + vcc12-supply = <&vcc3v3_sys>; +- vddio-supply = <&vcc1v8_pmu>; ++ vddio-supply = <&vcc_3v0>; + + regulators { + vdd_center: DCDC_REG1 { +@@ -388,8 +422,8 @@ + }; + }; + +- vcc1v8_dvp: LDO_REG1 { +- regulator-name = "vcc1v8_dvp"; ++ vcca1v8_codec: LDO_REG1 { ++ regulator-name = "vcca1v8_codec"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1800000>; +@@ -399,12 +433,12 @@ + }; + }; + +- vcc2v8_dvp: LDO_REG2 { +- regulator-name = "vcc2v8_dvp"; ++ vcca1v8_hdmi: LDO_REG2 { ++ regulator-name = "vcca1v8_hdmi"; + regulator-always-on; + regulator-boot-on; +- regulator-min-microvolt = <2800000>; +- regulator-max-microvolt = <2800000>; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; + regulator-state-mem { + regulator-off-in-suspend; + }; +@@ -457,12 +491,12 @@ + }; + }; + +- vcca1v8_codec: LDO_REG7 { +- regulator-name = "vcca1v8_codec"; ++ vcca0v9_hdmi: LDO_REG7 { ++ regulator-name = "vcca0v9_hdmi"; + regulator-always-on; + regulator-boot-on; +- regulator-min-microvolt = <1800000>; +- regulator-max-microvolt = <1800000>; ++ regulator-min-microvolt = <900000>; ++ regulator-max-microvolt = <900000>; + regulator-state-mem { + regulator-off-in-suspend; + }; +@@ -503,14 +537,16 @@ + vdd_cpu_b: regulator@40 { + compatible = "silergy,syr827"; + reg = <0x40>; +- fcs,suspend-voltage-selector = <0>; ++ fcs,suspend-voltage-selector = <1>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&vsel1_pin>; + regulator-name = "vdd_cpu_b"; + regulator-min-microvolt = <712500>; + regulator-max-microvolt = <1500000>; + regulator-ramp-delay = <1000>; + regulator-always-on; + regulator-boot-on; +- vin-supply = <&vcc_sys>; ++ vin-supply = <&vcc3v3_sys>; + + regulator-state-mem { + regulator-off-in-suspend; +@@ -521,13 +557,15 @@ + compatible = "silergy,syr828"; + reg = <0x41>; + fcs,suspend-voltage-selector = <1>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&vsel2_pin>; + regulator-name = "vdd_gpu"; + regulator-min-microvolt = <712500>; + regulator-max-microvolt = <1500000>; + regulator-ramp-delay = <1000>; + regulator-always-on; + regulator-boot-on; +- vin-supply = <&vcc_sys>; ++ vin-supply = <&vcc3v3_sys>; + + regulator-state-mem { + regulator-off-in-suspend; +@@ -539,17 +577,6 @@ + i2c-scl-rising-time-ns = <300>; + i2c-scl-falling-time-ns = <15>; + status = "okay"; +- +- rt5640: rt5640@1c { +- compatible = "realtek,rt5640"; +- reg = <0x1c>; +- clocks = <&cru SCLK_I2S_8CH_OUT>; +- clock-names = "mclk"; +- realtek,in1-differential; +- #sound-dai-cells = <0>; +- pinctrl-names = "default"; +- pinctrl-0 = <&rt5640_hpcon>; +- }; + }; + + &i2c3 { +@@ -563,59 +590,51 @@ + i2c-scl-falling-time-ns = <20>; + status = "okay"; + +- fusb0: typec-portc@22 { +- compatible = "fcs,fusb302"; ++ fusb1: usb-typec@22 { ++ compatible = "fairchild,fusb302"; ++ reg = <0x22>; ++ interrupt-parent = <&gpio1>; ++ interrupts = <1 IRQ_TYPE_LEVEL_LOW>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&fusb1_int>; ++ vbus-supply = <&vcc_vbus_typec1>; ++ status = "disabled"; ++ }; ++}; ++ ++&i2c7 { ++ i2c-scl-rising-time-ns = <600>; ++ i2c-scl-falling-time-ns = <20>; ++ status = "okay"; ++ ++ fusb0: usb-typec@22 { ++ compatible = "fairchild,fusb302"; + reg = <0x22>; + interrupt-parent = <&gpio1>; +- interrupts = ; ++ interrupts = <2 IRQ_TYPE_LEVEL_LOW>; + pinctrl-names = "default"; + pinctrl-0 = <&fusb0_int>; +- vbus-supply = <&vcc5v0_typec>; +- status = "okay"; ++ vbus-supply = <&vcc_vbus_typec0>; ++ status = "disabled"; ++ }; + +- connector { +- compatible = "usb-c-connector"; +- data-role = "host"; +- label = "USB-C"; +- op-sink-microwatt = <1000000>; +- power-role = "dual"; +- sink-pdos = +- ; +- source-pdos = +- ; +- try-power-role = "sink"; +- +- ports { +- #address-cells = <1>; +- #size-cells = <0>; +- +- port@0 { +- reg = <0>; +- +- usbc_hs: endpoint { +- remote-endpoint = +- <&u2phy0_typec_hs>; +- }; +- }; +- +- port@1 { +- reg = <1>; +- +- usbc_ss: endpoint { +- remote-endpoint = +- <&tcphy0_typec_ss>; +- }; +- }; ++ mp8859: regulator@66 { ++ compatible = "mps,mp8859"; ++ reg = <0x66>; ++ dc_12v: mp8859_dcdc { ++ regulator-name = "dc_12v"; ++ regulator-min-microvolt = <12000000>; ++ regulator-max-microvolt = <12000000>; ++ regulator-always-on; ++ regulator-boot-on; ++ vin-supply = <&vcc_vbus_typec0>; ++ ++ regulator-state-mem { ++ regulator-on-in-suspend; ++ regulator-suspend-microvolt = <12000000>; + }; + }; + }; +- +- accelerometer@68 { +- compatible = "invensense,mpu6500"; +- reg = <0x68>; +- interrupt-parent = <&gpio1>; +- interrupts = ; +- }; + }; + + &i2s0 { +@@ -635,23 +654,10 @@ + }; + + &io_domains { +- status = "okay"; +- +- bt656-supply = <&vcc1v8_dvp>; + audio-supply = <&vcca1v8_codec>; +- sdmmc-supply = <&vcc_sdio>; ++ bt656-supply = <&vcc_3v0>; + gpio1830-supply = <&vcc_3v0>; +-}; +- +-&pcie_phy { +- status = "okay"; +-}; +- +-&pcie0 { +- ep-gpios = <&gpio4 RK_PD1 GPIO_ACTIVE_HIGH>; +- num-lanes = <4>; +- pinctrl-names = "default"; +- pinctrl-0 = <&pcie_clkreqn_cpm>; ++ sdmmc-supply = <&vcc_sdio>; + status = "okay"; + }; + +@@ -662,14 +668,12 @@ + + &pinctrl { + buttons { +- pwrbtn: pwrbtn { ++ pwr_key_l: pwr-key-l { + rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>; + }; +- }; + +- fusb302x { +- fusb0_int: fusb0-int { +- rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>; ++ pwrbtn: pwrbtn { ++ rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>; + }; + }; + +@@ -685,17 +689,77 @@ + }; + }; + +- leds { +- work_led_pin: work-led-pin { +- rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>; ++ pmic { ++ vsel1_pin: vsel1-pin { ++ rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>; + }; + +- diy_led_pin: diy-led-pin { +- rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; ++ vsel2_pin: vsel2-pin { ++ rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>; ++ }; ++ ++ pmic_int_l: pmic-int-l { ++ rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>; ++ }; ++ }; ++ ++ sdio-pwrseq { ++ wifi_enable_h: wifi-enable-h { ++ rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ }; ++ ++ sdmmc { ++ vcc3v0_sd_en: vcc3v0-sd-en { ++ rockchip,pins = <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ }; ++ ++ usb2 { ++ vcc5v0_host_en: vcc5v0-host-en { ++ rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ ++ vcc_sys_en: vcc-sys-en { ++ rockchip,pins = <2 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ ++ hub_rst: hub-rst { ++ rockchip,pins = <2 RK_PA4 RK_FUNC_GPIO &pcfg_output_high>; ++ }; ++ }; ++ ++ usb-typec { ++ vcc_vbus_typec1_en: vcc-vbus-typec1-en { ++ rockchip,pins = <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ }; ++ ++ fusb30x { ++ fusb0_int: fusb0-int { ++ rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>; ++ }; ++ ++ fusb1_int: fusb1-int { ++ rockchip,pins = <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>; ++ }; ++ }; ++ ++ ngff { ++ vcc3v3_ngff_en: vcc3v3-ngff-en { ++ rockchip,pins = <4 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + pcie { ++ vcc3v3_pcie_en: vcc3v3-pcie-en { ++ rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ ++ pcie_perst: pcie-perst { ++ rockchip,pins = <4 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ + pcie_pwr_en: pcie-pwr-en { + rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>; + }; +@@ -705,17 +769,17 @@ + }; + }; + +- pmic { +- pmic_int_l: pmic-int-l { +- rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>; ++ bt { ++ bt_host_wake_l: bt-host-wake-l { ++ rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>; + }; + +- vsel1_pin: vsel1-pin { +- rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>; ++ bt_reg_on_h: bt-reg-on-h { ++ rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>; + }; + +- vsel2_pin: vsel2-pin { +- rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>; ++ bt_wake_l: bt-wake-l { ++ rockchip,pins = <2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + +@@ -725,27 +789,19 @@ + }; + }; + +- sdio-pwrseq { +- wifi_enable_h: wifi-enable-h { +- rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>; +- }; +- }; +- +- usb-typec { +- vcc5v0_typec_en: vcc5v0_typec_en { +- rockchip,pins = <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>; ++ wifi { ++ wifi_host_wake_l: wifi-host-wake-l { ++ rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + +- usb2 { +- vcc5v0_host_en: vcc5v0-host-en { +- rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>; ++ leds { ++ work_led_pin: work-led-pin { ++ rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>; + }; +- }; + +- wifi { +- wifi_host_wake_l: wifi-host-wake-l { +- rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>; ++ diy_led_pin: diy-led-pin { ++ rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + }; +@@ -763,66 +819,33 @@ + status = "okay"; + }; + +-&sdio0 { +- /* WiFi & BT combo module Ampak AP6356S */ +- bus-width = <4>; +- cap-sdio-irq; +- cap-sd-highspeed; +- keep-power-in-suspend; +- mmc-pwrseq = <&sdio_pwrseq>; +- non-removable; +- pinctrl-names = "default"; +- pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>; +- sd-uhs-sdr104; +- +- /* Power supply */ +- vqmmc-supply = <&vcc1v8_s3>; /* IO line */ +- vmmc-supply = <&vcc_sdio>; /* card's power */ +- +- #address-cells = <1>; +- #size-cells = <0>; +- status = "okay"; +- +- brcmf: wifi@1 { +- reg = <1>; +- compatible = "brcm,bcm4329-fmac"; +- interrupt-parent = <&gpio0>; +- interrupts = ; +- interrupt-names = "host-wake"; +- brcm,drive-strength = <5>; +- pinctrl-names = "default"; +- pinctrl-0 = <&wifi_host_wake_l>; +- }; +-}; +- + &sdmmc { + bus-width = <4>; +- cap-mmc-highspeed; + cap-sd-highspeed; +- cd-gpios = <&gpio0 7 GPIO_ACTIVE_LOW>; ++ cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>; + disable-wp; + max-frequency = <150000000>; + pinctrl-names = "default"; + pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>; ++ sd-uhs-sdr104; ++ vmmc-supply = <&vcc3v0_sd>; ++ vqmmc-supply = <&vcc_sdio>; + status = "okay"; + }; + + &sdhci { + bus-width = <8>; +- mmc-hs400-1_8v; +- mmc-hs400-enhanced-strobe; + non-removable; + status = "okay"; + }; + +-&spdif { +- pinctrl-0 = <&spdif_bus_1>; ++&spi1 { + status = "okay"; + +- spdif_p0: port { +- spdif_p0_0: endpoint { +- remote-endpoint = <&dit_p0_0>; +- }; ++ flash@0 { ++ compatible = "jedec,spi-nor"; ++ reg = <0>; ++ spi-max-frequency = <10000000>; + }; + }; + +@@ -830,14 +853,6 @@ + status = "okay"; + }; + +-&tcphy0_usb3 { +- port { +- tcphy0_typec_ss: endpoint { +- remote-endpoint = <&usbc_ss>; +- }; +- }; +-}; +- + &tcphy1 { + status = "okay"; + }; +@@ -854,6 +869,7 @@ + status = "okay"; + + u2phy0_otg: otg-port { ++ phy-supply = <&vcc_vbus_typec0>; + status = "okay"; + }; + +@@ -861,18 +877,13 @@ + phy-supply = <&vcc5v0_host>; + status = "okay"; + }; +- +- port { +- u2phy0_typec_hs: endpoint { +- remote-endpoint = <&usbc_hs>; +- }; +- }; + }; + + &u2phy1 { + status = "okay"; + + u2phy1_otg: otg-port { ++ phy-supply = <&vcc_vbus_typec1>; + status = "okay"; + }; + +@@ -914,7 +925,6 @@ + + &usbdrd_dwc3_0 { + status = "okay"; +- dr_mode = "otg"; + }; + + &usbdrd3_1 { +@@ -941,3 +951,144 @@ + &vopl_mmu { + status = "okay"; + }; ++ ++&sys_12v { ++ vin-supply = <&poe_12v>; ++}; ++ ++&pcie_phy { ++ status = "okay"; ++}; ++ ++&pcie0 { ++ ep-gpios = <&gpio4 RK_PD1 GPIO_ACTIVE_HIGH>; ++ num-lanes = <4>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pcie_perst>; ++ vpcie3v3-supply = <&vcc3v3_pcie>; ++ vpcie1v8-supply = <&vcc1v8_pmu>; ++ vpcie0v9-supply = <&vcca_0v9>; ++ status = "okay"; ++}; ++ ++&sdio0 { ++ bus-width = <4>; ++ cap-sd-highspeed; ++ cap-sdio-irq; ++ keep-power-in-suspend; ++ mmc-pwrseq = <&sdio_pwrseq>; ++ non-removable; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>; ++ sd-uhs-sdr104; ++ vmmc-supply = <&vcc3v3_ngff>; ++ vqmmc-supply = <&vcc_1v8>; ++ status = "okay"; ++}; ++ ++&uart0 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>; ++ status = "okay"; ++}; ++ ++&rk808{ ++ rtc { ++ compatible = "rk808-rtc"; ++ status = "disabled"; ++ }; ++}; ++ ++&i2c0 { ++ status = "okay"; ++ hym8563: hym8563@51 { ++ compatible = "haoyu,hym8563"; ++ reg = <0x51>; ++ interrupt-parent = <&gpio0>; ++ interrupts = <5 IRQ_TYPE_EDGE_FALLING>; ++ pinctrl-names = "default"; ++ #clock-cells = <0>; ++ clock-frequency = <32768>; ++ clock-output-names = "xin32k"; ++ }; ++}; ++ ++&i2c1 { ++ i2c-scl-rising-time-ns = <300>; ++ i2c-scl-falling-time-ns = <15>; ++ status = "okay"; ++ ++ rt5640: rt5640@1c { ++ compatible = "realtek,rt5640"; ++ reg = <0x1c>; ++ clocks = <&cru SCLK_I2S_8CH_OUT>; ++ clock-names = "mclk"; ++ realtek,in1-differential; ++ #sound-dai-cells = <0>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&rt5640_hpcon>; ++ }; ++}; ++ ++&i2c4 { ++ i2c-scl-rising-time-ns = <600>; ++ i2c-scl-falling-time-ns = <20>; ++ status = "okay"; ++ ++ accelerometer@68 { ++ compatible = "invensense,mpu6500"; ++ reg = <0x68>; ++ interrupt-parent = <&gpio1>; ++ interrupts = ; ++ }; ++}; ++ ++&sdio0 { ++ /* WiFi & BT combo module Ampak AP6356S */ ++ bus-width = <4>; ++ cap-sdio-irq; ++ cap-sd-highspeed; ++ keep-power-in-suspend; ++ mmc-pwrseq = <&sdio_pwrseq>; ++ non-removable; ++ num-slots = <1>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>; ++ sd-uhs-sdr104; ++ ++ /* Power supply */ ++ vqmmc-supply = <&vcc1v8_s3>; /* IO line */ ++ vmmc-supply = <&vcc_sdio>; /* card's power */ ++ ++ status = "okay"; ++ ++ brcmf: wifi@1 { ++ compatible = "brcm,bcm4329-fmac"; ++ interrupt-parent = <&gpio0>; ++ interrupts = ; ++ interrupt-names = "host-wake"; ++ brcm,drive-strength = <5>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&wifi_host_wake_l>; ++ }; ++}; ++ ++&uart0 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&uart0_xfer &uart0_rts &uart0_cts>; ++ status = "okay"; ++ ++ bluetooth { ++ compatible = "brcm,bcm43438-bt"; ++ clocks = <&rk808 1>; ++ clock-names = "lpo"; ++ device-wakeup-gpios = <&gpio2 RK_PD2 GPIO_ACTIVE_HIGH>; ++ host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>; ++ shutdown-gpios = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>; ++ max-speed = <4000000>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&bt_reg_on_h &bt_host_wake_l &bt_wake_l>; ++ vbat-supply = <&vcc3v3_sys>; ++ vddio-supply = <&vcc_1v8>; ++ }; ++}; + diff --git a/patch/kernel/archive/rockchip64-6.8/board-firefly-rk3399-dts.patch b/patch/kernel/archive/rockchip64-6.8/board-firefly-rk3399-dts.patch new file mode 100644 index 000000000000..50ec88cf25cf --- /dev/null +++ b/patch/kernel/archive/rockchip64-6.8/board-firefly-rk3399-dts.patch @@ -0,0 +1,1074 @@ +index c654b6b02f3..f73f792eb44 100644 +--- a/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts ++++ b/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts +@@ -1,13 +1,11 @@ + // SPDX-License-Identifier: (GPL-2.0+ OR MIT) + /* +- * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd. ++ * Copyright (c) 2017 T-Chip Intelligent Technology Co., Ltd + */ + + /dts-v1/; + #include +-#include + #include +-#include + #include "rk3399.dtsi" + #include "rk3399-opp.dtsi" + +@@ -18,9 +16,9 @@ + compatible = "firefly,firefly-rk3399", "rockchip,rk3399"; + + aliases { + ethernet0 = &gmac; +- mmc0 = &sdio0; +- mmc1 = &sdmmc; +- mmc2 = &sdhci; ++ mmc0 = &sdmmc; ++ mmc1 = &sdhci; ++ mmc2 = &sdio0; + }; + + chosen { +@@ -27,42 +25,7 @@ + + backlight: backlight { + compatible = "pwm-backlight"; +- enable-gpios = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>; + pwms = <&pwm0 0 25000 0>; +- brightness-levels = < +- 0 1 2 3 4 5 6 7 +- 8 9 10 11 12 13 14 15 +- 16 17 18 19 20 21 22 23 +- 24 25 26 27 28 29 30 31 +- 32 33 34 35 36 37 38 39 +- 40 41 42 43 44 45 46 47 +- 48 49 50 51 52 53 54 55 +- 56 57 58 59 60 61 62 63 +- 64 65 66 67 68 69 70 71 +- 72 73 74 75 76 77 78 79 +- 80 81 82 83 84 85 86 87 +- 88 89 90 91 92 93 94 95 +- 96 97 98 99 100 101 102 103 +- 104 105 106 107 108 109 110 111 +- 112 113 114 115 116 117 118 119 +- 120 121 122 123 124 125 126 127 +- 128 129 130 131 132 133 134 135 +- 136 137 138 139 140 141 142 143 +- 144 145 146 147 148 149 150 151 +- 152 153 154 155 156 157 158 159 +- 160 161 162 163 164 165 166 167 +- 168 169 170 171 172 173 174 175 +- 176 177 178 179 180 181 182 183 +- 184 185 186 187 188 189 190 191 +- 192 193 194 195 196 197 198 199 +- 200 201 202 203 204 205 206 207 +- 208 209 210 211 212 213 214 215 +- 216 217 218 219 220 221 222 223 +- 224 225 226 227 228 229 230 231 +- 232 233 234 235 236 237 238 239 +- 240 241 242 243 244 245 246 247 +- 248 249 250 251 252 253 254 255>; +- default-brightness-level = <200>; + }; + + clkin_gmac: external-gmac-clock { +@@ -72,13 +35,18 @@ + #clock-cells = <0>; + }; + +- dc_12v: dc-12v { +- compatible = "regulator-fixed"; +- regulator-name = "dc_12v"; +- regulator-always-on; +- regulator-boot-on; +- regulator-min-microvolt = <12000000>; +- regulator-max-microvolt = <12000000>; ++ adc-keys { ++ compatible = "adc-keys"; ++ io-channels = <&saradc 1>; ++ io-channel-names = "buttons"; ++ keyup-threshold-microvolt = <1500000>; ++ poll-interval = <100>; ++ ++ button-recovery { ++ label = "Recovery"; ++ linux,code = ; ++ press-threshold-microvolt = <18000>; ++ }; + }; + + gpio-keys { +@@ -103,47 +71,6 @@ + pinctrl-names = "default"; + }; + +- leds { +- compatible = "gpio-leds"; +- pinctrl-names = "default"; +- pinctrl-0 = <&work_led_pin>, <&diy_led_pin>; +- +- work_led: led-0 { +- label = "work"; +- default-state = "on"; +- gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>; +- }; +- +- diy_led: led-1 { +- label = "diy"; +- default-state = "off"; +- gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>; +- }; +- }; +- +- rt5640-sound { +- compatible = "simple-audio-card"; +- simple-audio-card,name = "rockchip,rt5640-codec"; +- simple-audio-card,format = "i2s"; +- simple-audio-card,mclk-fs = <256>; +- simple-audio-card,widgets = +- "Microphone", "Mic Jack", +- "Headphone", "Headphone Jack"; +- simple-audio-card,routing = +- "Mic Jack", "MICBIAS1", +- "IN1P", "Mic Jack", +- "Headphone Jack", "HPOL", +- "Headphone Jack", "HPOR"; +- +- simple-audio-card,cpu { +- sound-dai = <&i2s1>; +- }; +- +- simple-audio-card,codec { +- sound-dai = <&rt5640>; +- }; +- }; +- + sdio_pwrseq: sdio-pwrseq { + compatible = "mmc-pwrseq-simple"; + clocks = <&rk808 1>; +@@ -160,21 +87,21 @@ + reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>; + }; + +- sound-dit { +- compatible = "audio-graph-card"; +- label = "SPDIF"; +- dais = <&spdif_p0>; ++ vcc_vbus_typec0: vcc-vbus-typec0 { ++ compatible = "regulator-fixed"; ++ regulator-name = "vcc_vbus_typec0"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt = <5000000>; ++ regulator-max-microvolt = <5000000>; + }; + +- spdif-dit { +- compatible = "linux,spdif-dit"; +- #sound-dai-cells = <0>; +- +- port { +- dit_p0_0: endpoint { +- remote-endpoint = <&spdif_p0_0>; +- }; +- }; ++ sys_12v: sys-12v { ++ compatible = "regulator-fixed"; ++ regulator-name = "sys_12v"; ++ regulator-always-on; ++ regulator-boot-on; ++ vin-supply = <&dc_12v>; + }; + + /* switched by pmic_sleep */ +@@ -188,16 +115,17 @@ + vin-supply = <&vcc_1v8>; + }; + +- vcc3v3_pcie: vcc3v3-pcie-regulator { ++ vcc3v0_sd: vcc3v0-sd { + compatible = "regulator-fixed"; + enable-active-high; +- gpio = <&gpio1 RK_PC1 GPIO_ACTIVE_HIGH>; ++ gpio = <&gpio4 RK_PD6 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; +- pinctrl-0 = <&pcie_pwr_en>; +- regulator-name = "vcc3v3_pcie"; +- regulator-always-on; ++ pinctrl-0 = <&vcc3v0_sd_en>; ++ regulator-name = "vcc3v0_sd"; + regulator-boot-on; +- vin-supply = <&dc_12v>; ++ regulator-min-microvolt = <3000000>; ++ regulator-max-microvolt = <3000000>; ++ vin-supply = <&vcc3v3_sys>; + }; + + vcc3v3_sys: vcc3v3-sys { +@@ -207,7 +135,17 @@ + regulator-boot-on; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; +- vin-supply = <&vcc_sys>; ++ vin-supply = <&sys_12v>; ++ }; ++ ++ vcca_0v9: vcca-0v9 { ++ compatible = "regulator-fixed"; ++ regulator-name = "vcca_0v9"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt = <900000>; ++ regulator-max-microvolt = <900000>; ++ vin-supply = <&vcc3v3_sys>; + }; + + /* Actually 3 regulators (host0, 1, 2) controlled by the same gpio */ +@@ -216,42 +154,132 @@ + enable-active-high; + gpio = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; +- pinctrl-0 = <&vcc5v0_host_en>; ++ pinctrl-0 = <&vcc5v0_host_en &hub_rst>; + regulator-name = "vcc5v0_host"; +- regulator-always-on; + vin-supply = <&vcc_sys>; + }; + +- vcc5v0_typec: vcc5v0-typec-regulator { ++ vcc_vbus_typec1: vcc-vbus-typec1 { + compatible = "regulator-fixed"; + enable-active-high; +- gpio = <&gpio1 RK_PA3 GPIO_ACTIVE_HIGH>; ++ gpio = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; +- pinctrl-0 = <&vcc5v0_typec_en>; +- regulator-name = "vcc5v0_typec"; ++ pinctrl-0 = <&vcc_vbus_typec1_en>; ++ regulator-name = "vcc_vbus_typec1"; + regulator-always-on; + vin-supply = <&vcc_sys>; + }; + + vcc_sys: vcc-sys { + compatible = "regulator-fixed"; ++ enable-active-high; ++ gpio = <&gpio2 RK_PA6 GPIO_ACTIVE_HIGH>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&vcc_sys_en>; + regulator-name = "vcc_sys"; +- regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; +- vin-supply = <&dc_12v>; ++ vin-supply = <&sys_12v>; + }; + + vdd_log: vdd-log { + compatible = "pwm-regulator"; + pwms = <&pwm2 0 25000 1>; +- pwm-supply = <&vcc_sys>; + regulator-name = "vdd_log"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <430000>; + regulator-max-microvolt = <1400000>; ++ pwm-supply = <&vcc3v3_sys>; ++ }; ++ ++ /* MP8009 PoE PD */ ++ poe_12v: poe-12v { ++ compatible = "regulator-fixed"; ++ regulator-name = "poe_12v"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt = <12000000>; ++ regulator-max-microvolt = <12000000>; ++ }; ++ ++ vcc3v3_ngff: vcc3v3-ngff { ++ compatible = "regulator-fixed"; ++ regulator-name = "vcc3v3_ngff"; ++ enable-active-high; ++ gpio = <&gpio4 RK_PD3 GPIO_ACTIVE_HIGH>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&vcc3v3_ngff_en>; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ vin-supply = <&sys_12v>; ++ }; ++ ++ vcc3v3_pcie: vcc3v3-pcie { ++ compatible = "regulator-fixed"; ++ regulator-name = "vcc3v3_pcie"; ++ enable-active-high; ++ gpio = <&gpio1 RK_PC1 GPIO_ACTIVE_HIGH>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&vcc3v3_pcie_en>; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ vin-supply = <&sys_12v>; ++ }; ++ ++ leds { ++ compatible = "gpio-leds"; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&work_led_pin>, <&diy_led_pin>; ++ ++ work_led: led-0 { ++ label = "work"; ++ default-state = "on"; ++ gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>; ++ }; ++ ++ diy_led: led-1 { ++ label = "diy"; ++ default-state = "off"; ++ gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>; ++ }; ++ }; ++ ++ rt5640-sound { ++ compatible = "simple-audio-card"; ++ simple-audio-card,name = "rockchip,rt5640-codec"; ++ simple-audio-card,format = "i2s"; ++ simple-audio-card,mclk-fs = <256>; ++ simple-audio-card,widgets = ++ "Microphone", "Mic Jack", ++ "Headphone", "Headphone Jack"; ++ simple-audio-card,routing = ++ "Mic Jack", "MICBIAS1", ++ "IN1P", "Mic Jack", ++ "Headphone Jack", "HPOL", ++ "Headphone Jack", "HPOR"; ++ ++ simple-audio-card,cpu { ++ sound-dai = <&i2s1>; ++ }; ++ ++ simple-audio-card,codec { ++ sound-dai = <&rt5640>; ++ }; ++ }; ++ ++ vcc3v3_3g: vcc3v3-3g-regulator { ++ compatible = "regulator-fixed"; ++ enable-active-high; ++ gpio = <&gpio0 2 GPIO_ACTIVE_HIGH>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pcie_3g_drv>; ++ regulator-name = "vcc3v3_3g"; ++ regulator-always-on; ++ regulator-boot-on; + }; + }; + +@@ -305,12 +333,18 @@ + }; + + &hdmi { ++ avdd-0v9-supply = <&vcca0v9_hdmi>; ++ avdd-1v8-supply = <&vcca1v8_hdmi>; + ddc-i2c-bus = <&i2c3>; + pinctrl-names = "default"; + pinctrl-0 = <&hdmi_cec>; + status = "okay"; + }; + ++&hdmi_sound { ++ status = "okay"; ++}; ++ + &i2c0 { + clock-frequency = <400000>; + i2c-scl-rising-time-ns = <168>; +@@ -329,18 +363,18 @@ + rockchip,system-power-controller; + wakeup-source; + +- vcc1-supply = <&vcc_sys>; +- vcc2-supply = <&vcc_sys>; +- vcc3-supply = <&vcc_sys>; +- vcc4-supply = <&vcc_sys>; +- vcc6-supply = <&vcc_sys>; +- vcc7-supply = <&vcc_sys>; ++ vcc1-supply = <&vcc3v3_sys>; ++ vcc2-supply = <&vcc3v3_sys>; ++ vcc3-supply = <&vcc3v3_sys>; ++ vcc4-supply = <&vcc3v3_sys>; ++ vcc6-supply = <&vcc3v3_sys>; ++ vcc7-supply = <&vcc3v3_sys>; + vcc8-supply = <&vcc3v3_sys>; +- vcc9-supply = <&vcc_sys>; +- vcc10-supply = <&vcc_sys>; +- vcc11-supply = <&vcc_sys>; ++ vcc9-supply = <&vcc3v3_sys>; ++ vcc10-supply = <&vcc3v3_sys>; ++ vcc11-supply = <&vcc3v3_sys>; + vcc12-supply = <&vcc3v3_sys>; +- vddio-supply = <&vcc1v8_pmu>; ++ vddio-supply = <&vcc_3v0>; + + regulators { + vdd_center: DCDC_REG1 { +@@ -388,8 +422,8 @@ + }; + }; + +- vcc1v8_dvp: LDO_REG1 { +- regulator-name = "vcc1v8_dvp"; ++ vcca1v8_codec: LDO_REG1 { ++ regulator-name = "vcca1v8_codec"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1800000>; +@@ -399,12 +433,12 @@ + }; + }; + +- vcc2v8_dvp: LDO_REG2 { +- regulator-name = "vcc2v8_dvp"; ++ vcca1v8_hdmi: LDO_REG2 { ++ regulator-name = "vcca1v8_hdmi"; + regulator-always-on; + regulator-boot-on; +- regulator-min-microvolt = <2800000>; +- regulator-max-microvolt = <2800000>; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; + regulator-state-mem { + regulator-off-in-suspend; + }; +@@ -457,12 +491,12 @@ + }; + }; + +- vcca1v8_codec: LDO_REG7 { +- regulator-name = "vcca1v8_codec"; ++ vcca0v9_hdmi: LDO_REG7 { ++ regulator-name = "vcca0v9_hdmi"; + regulator-always-on; + regulator-boot-on; +- regulator-min-microvolt = <1800000>; +- regulator-max-microvolt = <1800000>; ++ regulator-min-microvolt = <900000>; ++ regulator-max-microvolt = <900000>; + regulator-state-mem { + regulator-off-in-suspend; + }; +@@ -503,14 +537,16 @@ + vdd_cpu_b: regulator@40 { + compatible = "silergy,syr827"; + reg = <0x40>; +- fcs,suspend-voltage-selector = <0>; ++ fcs,suspend-voltage-selector = <1>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&vsel1_pin>; + regulator-name = "vdd_cpu_b"; + regulator-min-microvolt = <712500>; + regulator-max-microvolt = <1500000>; + regulator-ramp-delay = <1000>; + regulator-always-on; + regulator-boot-on; +- vin-supply = <&vcc_sys>; ++ vin-supply = <&vcc3v3_sys>; + + regulator-state-mem { + regulator-off-in-suspend; +@@ -521,13 +557,15 @@ + compatible = "silergy,syr828"; + reg = <0x41>; + fcs,suspend-voltage-selector = <1>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&vsel2_pin>; + regulator-name = "vdd_gpu"; + regulator-min-microvolt = <712500>; + regulator-max-microvolt = <1500000>; + regulator-ramp-delay = <1000>; + regulator-always-on; + regulator-boot-on; +- vin-supply = <&vcc_sys>; ++ vin-supply = <&vcc3v3_sys>; + + regulator-state-mem { + regulator-off-in-suspend; +@@ -539,17 +577,6 @@ + i2c-scl-rising-time-ns = <300>; + i2c-scl-falling-time-ns = <15>; + status = "okay"; +- +- rt5640: rt5640@1c { +- compatible = "realtek,rt5640"; +- reg = <0x1c>; +- clocks = <&cru SCLK_I2S_8CH_OUT>; +- clock-names = "mclk"; +- realtek,in1-differential; +- #sound-dai-cells = <0>; +- pinctrl-names = "default"; +- pinctrl-0 = <&rt5640_hpcon>; +- }; + }; + + &i2c3 { +@@ -563,59 +590,51 @@ + i2c-scl-falling-time-ns = <20>; + status = "okay"; + +- fusb0: typec-portc@22 { +- compatible = "fcs,fusb302"; ++ fusb1: usb-typec@22 { ++ compatible = "fairchild,fusb302"; ++ reg = <0x22>; ++ interrupt-parent = <&gpio1>; ++ interrupts = <1 IRQ_TYPE_LEVEL_LOW>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&fusb1_int>; ++ vbus-supply = <&vcc_vbus_typec1>; ++ status = "disabled"; ++ }; ++}; ++ ++&i2c7 { ++ i2c-scl-rising-time-ns = <600>; ++ i2c-scl-falling-time-ns = <20>; ++ status = "okay"; ++ ++ fusb0: usb-typec@22 { ++ compatible = "fairchild,fusb302"; + reg = <0x22>; + interrupt-parent = <&gpio1>; +- interrupts = ; ++ interrupts = <2 IRQ_TYPE_LEVEL_LOW>; + pinctrl-names = "default"; + pinctrl-0 = <&fusb0_int>; +- vbus-supply = <&vcc5v0_typec>; +- status = "okay"; ++ vbus-supply = <&vcc_vbus_typec0>; ++ status = "disabled"; ++ }; + +- connector { +- compatible = "usb-c-connector"; +- data-role = "host"; +- label = "USB-C"; +- op-sink-microwatt = <1000000>; +- power-role = "dual"; +- sink-pdos = +- ; +- source-pdos = +- ; +- try-power-role = "sink"; +- +- ports { +- #address-cells = <1>; +- #size-cells = <0>; +- +- port@0 { +- reg = <0>; +- +- usbc_hs: endpoint { +- remote-endpoint = +- <&u2phy0_typec_hs>; +- }; +- }; +- +- port@1 { +- reg = <1>; +- +- usbc_ss: endpoint { +- remote-endpoint = +- <&tcphy0_typec_ss>; +- }; +- }; ++ mp8859: regulator@66 { ++ compatible = "mps,mp8859"; ++ reg = <0x66>; ++ dc_12v: mp8859_dcdc { ++ regulator-name = "dc_12v"; ++ regulator-min-microvolt = <12000000>; ++ regulator-max-microvolt = <12000000>; ++ regulator-always-on; ++ regulator-boot-on; ++ vin-supply = <&vcc_vbus_typec0>; ++ ++ regulator-state-mem { ++ regulator-on-in-suspend; ++ regulator-suspend-microvolt = <12000000>; + }; + }; + }; +- +- accelerometer@68 { +- compatible = "invensense,mpu6500"; +- reg = <0x68>; +- interrupt-parent = <&gpio1>; +- interrupts = ; +- }; + }; + + &i2s0 { +@@ -635,23 +654,10 @@ + }; + + &io_domains { +- status = "okay"; +- +- bt656-supply = <&vcc1v8_dvp>; + audio-supply = <&vcca1v8_codec>; +- sdmmc-supply = <&vcc_sdio>; ++ bt656-supply = <&vcc_3v0>; + gpio1830-supply = <&vcc_3v0>; +-}; +- +-&pcie_phy { +- status = "okay"; +-}; +- +-&pcie0 { +- ep-gpios = <&gpio4 RK_PD1 GPIO_ACTIVE_HIGH>; +- num-lanes = <4>; +- pinctrl-names = "default"; +- pinctrl-0 = <&pcie_clkreqn_cpm>; ++ sdmmc-supply = <&vcc_sdio>; + status = "okay"; + }; + +@@ -662,14 +668,12 @@ + + &pinctrl { + buttons { +- pwrbtn: pwrbtn { ++ pwr_key_l: pwr-key-l { + rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>; + }; +- }; + +- fusb302x { +- fusb0_int: fusb0-int { +- rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>; ++ pwrbtn: pwrbtn { ++ rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>; + }; + }; + +@@ -685,17 +689,77 @@ + }; + }; + +- leds { +- work_led_pin: work-led-pin { +- rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>; ++ pmic { ++ vsel1_pin: vsel1-pin { ++ rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>; + }; + +- diy_led_pin: diy-led-pin { +- rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; ++ vsel2_pin: vsel2-pin { ++ rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>; ++ }; ++ ++ pmic_int_l: pmic-int-l { ++ rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>; ++ }; ++ }; ++ ++ sdio-pwrseq { ++ wifi_enable_h: wifi-enable-h { ++ rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ }; ++ ++ sdmmc { ++ vcc3v0_sd_en: vcc3v0-sd-en { ++ rockchip,pins = <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ }; ++ ++ usb2 { ++ vcc5v0_host_en: vcc5v0-host-en { ++ rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ ++ vcc_sys_en: vcc-sys-en { ++ rockchip,pins = <2 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ ++ hub_rst: hub-rst { ++ rockchip,pins = <2 RK_PA4 RK_FUNC_GPIO &pcfg_output_high>; ++ }; ++ }; ++ ++ usb-typec { ++ vcc_vbus_typec1_en: vcc-vbus-typec1-en { ++ rockchip,pins = <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ }; ++ ++ fusb30x { ++ fusb0_int: fusb0-int { ++ rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>; ++ }; ++ ++ fusb1_int: fusb1-int { ++ rockchip,pins = <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>; ++ }; ++ }; ++ ++ ngff { ++ vcc3v3_ngff_en: vcc3v3-ngff-en { ++ rockchip,pins = <4 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + pcie { ++ vcc3v3_pcie_en: vcc3v3-pcie-en { ++ rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ ++ pcie_perst: pcie-perst { ++ rockchip,pins = <4 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ + pcie_pwr_en: pcie-pwr-en { + rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>; + }; +@@ -705,17 +769,17 @@ + }; + }; + +- pmic { +- pmic_int_l: pmic-int-l { +- rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>; ++ bt { ++ bt_host_wake_l: bt-host-wake-l { ++ rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>; + }; + +- vsel1_pin: vsel1-pin { +- rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>; ++ bt_reg_on_h: bt-reg-on-h { ++ rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>; + }; + +- vsel2_pin: vsel2-pin { +- rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>; ++ bt_wake_l: bt-wake-l { ++ rockchip,pins = <2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + +@@ -725,27 +789,19 @@ + }; + }; + +- sdio-pwrseq { +- wifi_enable_h: wifi-enable-h { +- rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>; +- }; +- }; +- +- usb-typec { +- vcc5v0_typec_en: vcc5v0_typec_en { +- rockchip,pins = <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>; ++ wifi { ++ wifi_host_wake_l: wifi-host-wake-l { ++ rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + +- usb2 { +- vcc5v0_host_en: vcc5v0-host-en { +- rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>; ++ leds { ++ work_led_pin: work-led-pin { ++ rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>; + }; +- }; + +- wifi { +- wifi_host_wake_l: wifi-host-wake-l { +- rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>; ++ diy_led_pin: diy-led-pin { ++ rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + }; +@@ -763,66 +819,33 @@ + status = "okay"; + }; + +-&sdio0 { +- /* WiFi & BT combo module Ampak AP6356S */ +- bus-width = <4>; +- cap-sdio-irq; +- cap-sd-highspeed; +- keep-power-in-suspend; +- mmc-pwrseq = <&sdio_pwrseq>; +- non-removable; +- pinctrl-names = "default"; +- pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>; +- sd-uhs-sdr104; +- +- /* Power supply */ +- vqmmc-supply = <&vcc1v8_s3>; /* IO line */ +- vmmc-supply = <&vcc_sdio>; /* card's power */ +- +- #address-cells = <1>; +- #size-cells = <0>; +- status = "okay"; +- +- brcmf: wifi@1 { +- reg = <1>; +- compatible = "brcm,bcm4329-fmac"; +- interrupt-parent = <&gpio0>; +- interrupts = ; +- interrupt-names = "host-wake"; +- brcm,drive-strength = <5>; +- pinctrl-names = "default"; +- pinctrl-0 = <&wifi_host_wake_l>; +- }; +-}; +- + &sdmmc { + bus-width = <4>; +- cap-mmc-highspeed; + cap-sd-highspeed; +- cd-gpios = <&gpio0 7 GPIO_ACTIVE_LOW>; ++ cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>; + disable-wp; + max-frequency = <150000000>; + pinctrl-names = "default"; + pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>; ++ sd-uhs-sdr104; ++ vmmc-supply = <&vcc3v0_sd>; ++ vqmmc-supply = <&vcc_sdio>; + status = "okay"; + }; + + &sdhci { + bus-width = <8>; +- mmc-hs400-1_8v; +- mmc-hs400-enhanced-strobe; + non-removable; + status = "okay"; + }; + +-&spdif { +- pinctrl-0 = <&spdif_bus_1>; ++&spi1 { + status = "okay"; + +- spdif_p0: port { +- spdif_p0_0: endpoint { +- remote-endpoint = <&dit_p0_0>; +- }; ++ flash@0 { ++ compatible = "jedec,spi-nor"; ++ reg = <0>; ++ spi-max-frequency = <10000000>; + }; + }; + +@@ -830,14 +853,6 @@ + status = "okay"; + }; + +-&tcphy0_usb3 { +- port { +- tcphy0_typec_ss: endpoint { +- remote-endpoint = <&usbc_ss>; +- }; +- }; +-}; +- + &tcphy1 { + status = "okay"; + }; +@@ -854,6 +869,7 @@ + status = "okay"; + + u2phy0_otg: otg-port { ++ phy-supply = <&vcc_vbus_typec0>; + status = "okay"; + }; + +@@ -861,18 +877,13 @@ + phy-supply = <&vcc5v0_host>; + status = "okay"; + }; +- +- port { +- u2phy0_typec_hs: endpoint { +- remote-endpoint = <&usbc_hs>; +- }; +- }; + }; + + &u2phy1 { + status = "okay"; + + u2phy1_otg: otg-port { ++ phy-supply = <&vcc_vbus_typec1>; + status = "okay"; + }; + +@@ -914,7 +925,6 @@ + + &usbdrd_dwc3_0 { + status = "okay"; +- dr_mode = "otg"; + }; + + &usbdrd3_1 { +@@ -941,3 +951,144 @@ + &vopl_mmu { + status = "okay"; + }; ++ ++&sys_12v { ++ vin-supply = <&poe_12v>; ++}; ++ ++&pcie_phy { ++ status = "okay"; ++}; ++ ++&pcie0 { ++ ep-gpios = <&gpio4 RK_PD1 GPIO_ACTIVE_HIGH>; ++ num-lanes = <4>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pcie_perst>; ++ vpcie3v3-supply = <&vcc3v3_pcie>; ++ vpcie1v8-supply = <&vcc1v8_pmu>; ++ vpcie0v9-supply = <&vcca_0v9>; ++ status = "okay"; ++}; ++ ++&sdio0 { ++ bus-width = <4>; ++ cap-sd-highspeed; ++ cap-sdio-irq; ++ keep-power-in-suspend; ++ mmc-pwrseq = <&sdio_pwrseq>; ++ non-removable; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>; ++ sd-uhs-sdr104; ++ vmmc-supply = <&vcc3v3_ngff>; ++ vqmmc-supply = <&vcc_1v8>; ++ status = "okay"; ++}; ++ ++&uart0 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>; ++ status = "okay"; ++}; ++ ++&rk808{ ++ rtc { ++ compatible = "rk808-rtc"; ++ status = "disabled"; ++ }; ++}; ++ ++&i2c0 { ++ status = "okay"; ++ hym8563: hym8563@51 { ++ compatible = "haoyu,hym8563"; ++ reg = <0x51>; ++ interrupt-parent = <&gpio0>; ++ interrupts = <5 IRQ_TYPE_EDGE_FALLING>; ++ pinctrl-names = "default"; ++ #clock-cells = <0>; ++ clock-frequency = <32768>; ++ clock-output-names = "xin32k"; ++ }; ++}; ++ ++&i2c1 { ++ i2c-scl-rising-time-ns = <300>; ++ i2c-scl-falling-time-ns = <15>; ++ status = "okay"; ++ ++ rt5640: rt5640@1c { ++ compatible = "realtek,rt5640"; ++ reg = <0x1c>; ++ clocks = <&cru SCLK_I2S_8CH_OUT>; ++ clock-names = "mclk"; ++ realtek,in1-differential; ++ #sound-dai-cells = <0>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&rt5640_hpcon>; ++ }; ++}; ++ ++&i2c4 { ++ i2c-scl-rising-time-ns = <600>; ++ i2c-scl-falling-time-ns = <20>; ++ status = "okay"; ++ ++ accelerometer@68 { ++ compatible = "invensense,mpu6500"; ++ reg = <0x68>; ++ interrupt-parent = <&gpio1>; ++ interrupts = ; ++ }; ++}; ++ ++&sdio0 { ++ /* WiFi & BT combo module Ampak AP6356S */ ++ bus-width = <4>; ++ cap-sdio-irq; ++ cap-sd-highspeed; ++ keep-power-in-suspend; ++ mmc-pwrseq = <&sdio_pwrseq>; ++ non-removable; ++ num-slots = <1>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>; ++ sd-uhs-sdr104; ++ ++ /* Power supply */ ++ vqmmc-supply = <&vcc1v8_s3>; /* IO line */ ++ vmmc-supply = <&vcc_sdio>; /* card's power */ ++ ++ status = "okay"; ++ ++ brcmf: wifi@1 { ++ compatible = "brcm,bcm4329-fmac"; ++ interrupt-parent = <&gpio0>; ++ interrupts = ; ++ interrupt-names = "host-wake"; ++ brcm,drive-strength = <5>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&wifi_host_wake_l>; ++ }; ++}; ++ ++&uart0 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&uart0_xfer &uart0_rts &uart0_cts>; ++ status = "okay"; ++ ++ bluetooth { ++ compatible = "brcm,bcm43438-bt"; ++ clocks = <&rk808 1>; ++ clock-names = "lpo"; ++ device-wakeup-gpios = <&gpio2 RK_PD2 GPIO_ACTIVE_HIGH>; ++ host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>; ++ shutdown-gpios = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>; ++ max-speed = <4000000>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&bt_reg_on_h &bt_host_wake_l &bt_wake_l>; ++ vbat-supply = <&vcc3v3_sys>; ++ vddio-supply = <&vcc_1v8>; ++ }; ++}; + diff --git a/patch/kernel/media-current/00130-board-firefly-rk3399-dts.patch b/patch/kernel/media-current/00130-board-firefly-rk3399-dts.patch deleted file mode 100644 index 5cd45890f139..000000000000 --- a/patch/kernel/media-current/00130-board-firefly-rk3399-dts.patch +++ /dev/null @@ -1,970 +0,0 @@ -index c654b6b02f3..f73f792eb44 100644 ---- a/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts -@@ -1,85 +1,14 @@ - // SPDX-License-Identifier: (GPL-2.0+ OR MIT) - /* -- * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd. -+ * Copyright (c) 2017 T-Chip Intelligent Technology Co., Ltd - */ - - /dts-v1/; --#include --#include --#include --#include --#include "rk3399.dtsi" --#include "rk3399-opp.dtsi" -+#include "rk3399-roc-pc-mezzanine.dts" - - / { - model = "Firefly-RK3399 Board"; - compatible = "firefly,firefly-rk3399", "rockchip,rk3399"; -- -- aliases { -- mmc0 = &sdio0; -- mmc1 = &sdmmc; -- mmc2 = &sdhci; -- }; -- -- chosen { -- stdout-path = "serial2:1500000n8"; -- }; -- -- backlight: backlight { -- compatible = "pwm-backlight"; -- enable-gpios = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>; -- pwms = <&pwm0 0 25000 0>; -- brightness-levels = < -- 0 1 2 3 4 5 6 7 -- 8 9 10 11 12 13 14 15 -- 16 17 18 19 20 21 22 23 -- 24 25 26 27 28 29 30 31 -- 32 33 34 35 36 37 38 39 -- 40 41 42 43 44 45 46 47 -- 48 49 50 51 52 53 54 55 -- 56 57 58 59 60 61 62 63 -- 64 65 66 67 68 69 70 71 -- 72 73 74 75 76 77 78 79 -- 80 81 82 83 84 85 86 87 -- 88 89 90 91 92 93 94 95 -- 96 97 98 99 100 101 102 103 -- 104 105 106 107 108 109 110 111 -- 112 113 114 115 116 117 118 119 -- 120 121 122 123 124 125 126 127 -- 128 129 130 131 132 133 134 135 -- 136 137 138 139 140 141 142 143 -- 144 145 146 147 148 149 150 151 -- 152 153 154 155 156 157 158 159 -- 160 161 162 163 164 165 166 167 -- 168 169 170 171 172 173 174 175 -- 176 177 178 179 180 181 182 183 -- 184 185 186 187 188 189 190 191 -- 192 193 194 195 196 197 198 199 -- 200 201 202 203 204 205 206 207 -- 208 209 210 211 212 213 214 215 -- 216 217 218 219 220 221 222 223 -- 224 225 226 227 228 229 230 231 -- 232 233 234 235 236 237 238 239 -- 240 241 242 243 244 245 246 247 -- 248 249 250 251 252 253 254 255>; -- default-brightness-level = <200>; -- }; -- -- clkin_gmac: external-gmac-clock { -- compatible = "fixed-clock"; -- clock-frequency = <125000000>; -- clock-output-names = "clkin_gmac"; -- #clock-cells = <0>; -- }; -- -- dc_12v: dc-12v { -- compatible = "regulator-fixed"; -- regulator-name = "dc_12v"; -- regulator-always-on; -- regulator-boot-on; -- regulator-min-microvolt = <12000000>; -- regulator-max-microvolt = <12000000>; -- }; - - gpio-keys { - compatible = "gpio-keys"; -@@ -144,394 +73,26 @@ - }; - }; - -- sdio_pwrseq: sdio-pwrseq { -- compatible = "mmc-pwrseq-simple"; -- clocks = <&rk808 1>; -- clock-names = "ext_clock"; -- pinctrl-names = "default"; -- pinctrl-0 = <&wifi_enable_h>; -- -- /* -- * On the module itself this is one of these (depending -- * on the actual card populated): -- * - SDIO_RESET_L_WL_REG_ON -- * - PDN (power down when low) -- */ -- reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>; -- }; -- -- sound-dit { -- compatible = "audio-graph-card"; -- label = "SPDIF"; -- dais = <&spdif_p0>; -- }; -- -- spdif-dit { -- compatible = "linux,spdif-dit"; -- #sound-dai-cells = <0>; -- -- port { -- dit_p0_0: endpoint { -- remote-endpoint = <&spdif_p0_0>; -- }; -- }; -- }; -- -- /* switched by pmic_sleep */ -- vcc1v8_s3: vcca1v8_s3: vcc1v8-s3 { -- compatible = "regulator-fixed"; -- regulator-name = "vcc1v8_s3"; -- regulator-always-on; -- regulator-boot-on; -- regulator-min-microvolt = <1800000>; -- regulator-max-microvolt = <1800000>; -- vin-supply = <&vcc_1v8>; -- }; -- -- vcc3v3_pcie: vcc3v3-pcie-regulator { -- compatible = "regulator-fixed"; -- enable-active-high; -- gpio = <&gpio1 RK_PC1 GPIO_ACTIVE_HIGH>; -- pinctrl-names = "default"; -- pinctrl-0 = <&pcie_pwr_en>; -- regulator-name = "vcc3v3_pcie"; -- regulator-always-on; -- regulator-boot-on; -- vin-supply = <&dc_12v>; -- }; -- -- vcc3v3_sys: vcc3v3-sys { -- compatible = "regulator-fixed"; -- regulator-name = "vcc3v3_sys"; -- regulator-always-on; -- regulator-boot-on; -- regulator-min-microvolt = <3300000>; -- regulator-max-microvolt = <3300000>; -- vin-supply = <&vcc_sys>; -- }; -- -- /* Actually 3 regulators (host0, 1, 2) controlled by the same gpio */ -- vcc5v0_host: vcc5v0-host-regulator { -- compatible = "regulator-fixed"; -- enable-active-high; -- gpio = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>; -- pinctrl-names = "default"; -- pinctrl-0 = <&vcc5v0_host_en>; -- regulator-name = "vcc5v0_host"; -- regulator-always-on; -- vin-supply = <&vcc_sys>; -- }; -- -- vcc5v0_typec: vcc5v0-typec-regulator { -- compatible = "regulator-fixed"; -- enable-active-high; -- gpio = <&gpio1 RK_PA3 GPIO_ACTIVE_HIGH>; -- pinctrl-names = "default"; -- pinctrl-0 = <&vcc5v0_typec_en>; -- regulator-name = "vcc5v0_typec"; -- regulator-always-on; -- vin-supply = <&vcc_sys>; -- }; -- -- vcc_sys: vcc-sys { -- compatible = "regulator-fixed"; -- regulator-name = "vcc_sys"; -- regulator-always-on; -- regulator-boot-on; -- regulator-min-microvolt = <5000000>; -- regulator-max-microvolt = <5000000>; -- vin-supply = <&dc_12v>; -- }; -- -- vdd_log: vdd-log { -- compatible = "pwm-regulator"; -- pwms = <&pwm2 0 25000 1>; -- pwm-supply = <&vcc_sys>; -- regulator-name = "vdd_log"; -- regulator-always-on; -- regulator-boot-on; -- regulator-min-microvolt = <430000>; -- regulator-max-microvolt = <1400000>; -- }; --}; -- --&cpu_l0 { -- cpu-supply = <&vdd_cpu_l>; --}; -- --&cpu_l1 { -- cpu-supply = <&vdd_cpu_l>; --}; -- --&cpu_l2 { -- cpu-supply = <&vdd_cpu_l>; --}; -- --&cpu_l3 { -- cpu-supply = <&vdd_cpu_l>; --}; -- --&cpu_b0 { -- cpu-supply = <&vdd_cpu_b>; --}; -- --&cpu_b1 { -- cpu-supply = <&vdd_cpu_b>; --}; -- --&emmc_phy { -- status = "okay"; --}; -- --&gmac { -- assigned-clocks = <&cru SCLK_RMII_SRC>; -- assigned-clock-parents = <&clkin_gmac>; -- clock_in_out = "input"; -- phy-supply = <&vcc_lan>; -- phy-mode = "rgmii"; -- pinctrl-names = "default"; -- pinctrl-0 = <&rgmii_pins>; -- snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>; -- snps,reset-active-low; -- snps,reset-delays-us = <0 10000 50000>; -- tx_delay = <0x28>; -- rx_delay = <0x11>; -- status = "okay"; --}; -- --&gpu { -- mali-supply = <&vdd_gpu>; -- status = "okay"; --}; -- --&hdmi { -- ddc-i2c-bus = <&i2c3>; -- pinctrl-names = "default"; -- pinctrl-0 = <&hdmi_cec>; -- status = "okay"; -+}; -+ -+&rk808{ -+ rtc { -+ compatible = "rk808-rtc"; -+ status = "disabled"; -+ }; - }; - - &i2c0 { -- clock-frequency = <400000>; -- i2c-scl-rising-time-ns = <168>; -- i2c-scl-falling-time-ns = <4>; -- status = "okay"; -- -- rk808: pmic@1b { -- compatible = "rockchip,rk808"; -- reg = <0x1b>; -- interrupt-parent = <&gpio1>; -- interrupts = <21 IRQ_TYPE_LEVEL_LOW>; -- #clock-cells = <1>; -- clock-output-names = "xin32k", "rk808-clkout2"; -- 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>; -- vcc6-supply = <&vcc_sys>; -- vcc7-supply = <&vcc_sys>; -- vcc8-supply = <&vcc3v3_sys>; -- vcc9-supply = <&vcc_sys>; -- vcc10-supply = <&vcc_sys>; -- vcc11-supply = <&vcc_sys>; -- vcc12-supply = <&vcc3v3_sys>; -- vddio-supply = <&vcc1v8_pmu>; -- -- regulators { -- vdd_center: DCDC_REG1 { -- regulator-name = "vdd_center"; -- regulator-always-on; -- regulator-boot-on; -- regulator-min-microvolt = <750000>; -- regulator-max-microvolt = <1350000>; -- regulator-ramp-delay = <6001>; -- regulator-state-mem { -- regulator-off-in-suspend; -- }; -- }; -- -- vdd_cpu_l: DCDC_REG2 { -- regulator-name = "vdd_cpu_l"; -- regulator-always-on; -- regulator-boot-on; -- regulator-min-microvolt = <750000>; -- 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-state-mem { -- regulator-on-in-suspend; -- }; -- }; -- -- vcc_1v8: DCDC_REG4 { -- regulator-name = "vcc_1v8"; -- 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>; -- }; -- }; -- -- vcc1v8_dvp: LDO_REG1 { -- 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_REG2 { -- 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; -- }; -- }; -- -- vcc1v8_pmu: LDO_REG3 { -- regulator-name = "vcc1v8_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>; -- }; -- }; -- -- vcc_sdio: LDO_REG4 { -- regulator-name = "vcc_sdio"; -- regulator-always-on; -- regulator-boot-on; -- regulator-min-microvolt = <1800000>; -- regulator-max-microvolt = <3000000>; -- regulator-state-mem { -- regulator-on-in-suspend; -- regulator-suspend-microvolt = <3000000>; -- }; -- }; -- -- vcca3v0_codec: LDO_REG5 { -- regulator-name = "vcca3v0_codec"; -- regulator-always-on; -- regulator-boot-on; -- regulator-min-microvolt = <3000000>; -- regulator-max-microvolt = <3000000>; -- regulator-state-mem { -- regulator-off-in-suspend; -- }; -- }; -- -- vcc_1v5: LDO_REG6 { -- regulator-name = "vcc_1v5"; -- 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>; -- }; -- }; -- -- vcca1v8_codec: LDO_REG7 { -- regulator-name = "vcca1v8_codec"; -- regulator-always-on; -- regulator-boot-on; -- regulator-min-microvolt = <1800000>; -- regulator-max-microvolt = <1800000>; -- regulator-state-mem { -- regulator-off-in-suspend; -- }; -- }; -- -- vcc_3v0: LDO_REG8 { -- regulator-name = "vcc_3v0"; -- 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_s3: vcc_lan: SWITCH_REG1 { -- regulator-name = "vcc3v3_s3"; -- regulator-always-on; -- regulator-boot-on; -- regulator-state-mem { -- regulator-off-in-suspend; -- }; -- }; -- -- vcc3v3_s0: SWITCH_REG2 { -- regulator-name = "vcc3v3_s0"; -- regulator-always-on; -- regulator-boot-on; -- regulator-state-mem { -- regulator-off-in-suspend; -- }; -- }; -- }; -- }; -- -- vdd_cpu_b: regulator@40 { -- compatible = "silergy,syr827"; -- reg = <0x40>; -- fcs,suspend-voltage-selector = <0>; -- regulator-name = "vdd_cpu_b"; -- regulator-min-microvolt = <712500>; -- regulator-max-microvolt = <1500000>; -- regulator-ramp-delay = <1000>; -- regulator-always-on; -- regulator-boot-on; -- vin-supply = <&vcc_sys>; -- -- regulator-state-mem { -- regulator-off-in-suspend; -- }; -- }; -- -- vdd_gpu: regulator@41 { -- compatible = "silergy,syr828"; -- reg = <0x41>; -- fcs,suspend-voltage-selector = <1>; -- regulator-name = "vdd_gpu"; -- regulator-min-microvolt = <712500>; -- regulator-max-microvolt = <1500000>; -- regulator-ramp-delay = <1000>; -- regulator-always-on; -- regulator-boot-on; -- vin-supply = <&vcc_sys>; -- -- regulator-state-mem { -- regulator-off-in-suspend; -- }; -+ status = "okay"; -+ hym8563: hym8563@51 { -+ compatible = "haoyu,hym8563"; -+ reg = <0x51>; -+ interrupt-parent = <&gpio0>; -+ interrupts = <5 IRQ_TYPE_EDGE_FALLING>; -+ pinctrl-names = "default"; -+ #clock-cells = <0>; -+ clock-frequency = <32768>; -+ clock-output-names = "xin32k"; - }; - }; - -@@ -552,63 +113,10 @@ - }; - }; - --&i2c3 { -- i2c-scl-rising-time-ns = <450>; -- i2c-scl-falling-time-ns = <15>; -- status = "okay"; --}; -- - &i2c4 { - i2c-scl-rising-time-ns = <600>; - i2c-scl-falling-time-ns = <20>; - 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>; -- status = "okay"; -- -- connector { -- compatible = "usb-c-connector"; -- data-role = "host"; -- label = "USB-C"; -- op-sink-microwatt = <1000000>; -- power-role = "dual"; -- sink-pdos = -- ; -- source-pdos = -- ; -- try-power-role = "sink"; -- -- ports { -- #address-cells = <1>; -- #size-cells = <0>; -- -- port@0 { -- reg = <0>; -- -- usbc_hs: endpoint { -- remote-endpoint = -- <&u2phy0_typec_hs>; -- }; -- }; -- -- port@1 { -- reg = <1>; -- -- usbc_ss: endpoint { -- remote-endpoint = -- <&tcphy0_typec_ss>; -- }; -- }; -- }; -- }; -- }; - - accelerometer@68 { - compatible = "invensense,mpu6500"; -@@ -618,61 +126,27 @@ - }; - }; - --&i2s0 { -- rockchip,playback-channels = <8>; -- rockchip,capture-channels = <8>; -- status = "okay"; --}; -- --&i2s1 { -- rockchip,playback-channels = <2>; -- rockchip,capture-channels = <2>; -- status = "okay"; --}; -- --&i2s2 { -- status = "okay"; --}; -- --&io_domains { -- status = "okay"; -- -- bt656-supply = <&vcc1v8_dvp>; -- audio-supply = <&vcca1v8_codec>; -- sdmmc-supply = <&vcc_sdio>; -- gpio1830-supply = <&vcc_3v0>; --}; -- --&pcie_phy { -- status = "okay"; --}; -- --&pcie0 { -- ep-gpios = <&gpio4 RK_PD1 GPIO_ACTIVE_HIGH>; -- num-lanes = <4>; -- pinctrl-names = "default"; -- pinctrl-0 = <&pcie_clkreqn_cpm>; -- status = "okay"; --}; -- --&pmu_io_domains { -- pmu1830-supply = <&vcc_3v0>; -- status = "okay"; --}; -- - &pinctrl { -+ bt { -+ bt_host_wake_l: bt-host-wake-l { -+ rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ bt_reg_on_h: bt-reg-on-h { -+ rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ bt_wake_l: bt-wake-l { -+ rockchip,pins = <2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+ - buttons { - pwrbtn: pwrbtn { - rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>; - }; - }; - -- fusb302x { -- fusb0_int: fusb0-int { -- rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>; -- }; -- }; -- - ir { - ir_int: ir-int { - rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>; -@@ -685,6 +159,56 @@ - }; - }; - -+ pcie { -+ pcie_pwr_en: pcie-pwr-en { -+ rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ pcie_3g_drv: pcie-3g-drv { -+ rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>; -+ }; -+ }; -+ -+ pmic { -+ vsel1_pin: vsel1-pin { -+ rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>; -+ }; -+ -+ vsel2_pin: vsel2-pin { -+ rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>; -+ }; -+ }; -+ -+ sdio-pwrseq { -+ wifi_enable_h: wifi-enable-h { -+ rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+ -+ rt5640 { -+ rt5640_hpcon: rt5640-hpcon { -+ rockchip,pins = <4 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+ -+ pmic { -+ pmic_int_l: pmic-int-l { -+ rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>; -+ }; -+ }; -+ -+ usb2 { -+ vcc5v0_host_en: vcc5v0-host-en { -+ rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+ -+ wifi { -+ wifi_host_wake_l: wifi-host-wake-l { -+ rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+ - leds { - work_led_pin: work-led-pin { - rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>; -@@ -694,74 +218,8 @@ - rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; - }; - }; -- -- pcie { -- pcie_pwr_en: pcie-pwr-en { -- rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>; -- }; -- -- pcie_3g_drv: pcie-3g-drv { -- rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>; -- }; -- }; -- -- pmic { -- pmic_int_l: pmic-int-l { -- rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>; -- }; -- -- vsel1_pin: vsel1-pin { -- rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>; -- }; -- -- vsel2_pin: vsel2-pin { -- rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>; -- }; -- }; -- -- rt5640 { -- rt5640_hpcon: rt5640-hpcon { -- rockchip,pins = <4 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>; -- }; -- }; -- -- sdio-pwrseq { -- wifi_enable_h: wifi-enable-h { -- rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>; -- }; -- }; -- -- usb-typec { -- vcc5v0_typec_en: vcc5v0_typec_en { -- rockchip,pins = <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>; -- }; -- }; -- -- usb2 { -- vcc5v0_host_en: vcc5v0-host-en { -- rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>; -- }; -- }; -- -- wifi { -- wifi_host_wake_l: wifi-host-wake-l { -- rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>; -- }; -- }; --}; -- --&pwm0 { -- status = "okay"; --}; -- --&pwm2 { -- status = "okay"; --}; -- --&saradc { -- vref-supply = <&vcca1v8_s3>; -- status = "okay"; --}; -+}; -+ - - &sdio0 { - /* WiFi & BT combo module Ampak AP6356S */ -@@ -771,6 +229,7 @@ - keep-power-in-suspend; - mmc-pwrseq = <&sdio_pwrseq>; - non-removable; -+ num-slots = <1>; - pinctrl-names = "default"; - pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>; - sd-uhs-sdr104; -@@ -779,15 +238,12 @@ - vqmmc-supply = <&vcc1v8_s3>; /* IO line */ - vmmc-supply = <&vcc_sdio>; /* card's power */ - -- #address-cells = <1>; -- #size-cells = <0>; - status = "okay"; - - brcmf: wifi@1 { -- reg = <1>; - compatible = "brcm,bcm4329-fmac"; - interrupt-parent = <&gpio0>; -- interrupts = ; -+ interrupts = ; - interrupt-names = "host-wake"; - brcm,drive-strength = <5>; - pinctrl-names = "default"; -@@ -795,149 +251,22 @@ - }; - }; - --&sdmmc { -- bus-width = <4>; -- cap-mmc-highspeed; -- cap-sd-highspeed; -- cd-gpios = <&gpio0 7 GPIO_ACTIVE_LOW>; -- disable-wp; -- max-frequency = <150000000>; -- pinctrl-names = "default"; -- pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>; -- status = "okay"; --}; -- --&sdhci { -- bus-width = <8>; -- mmc-hs400-1_8v; -- mmc-hs400-enhanced-strobe; -- non-removable; -- status = "okay"; --}; -- --&spdif { -- pinctrl-0 = <&spdif_bus_1>; -- status = "okay"; -- -- spdif_p0: port { -- spdif_p0_0: endpoint { -- remote-endpoint = <&dit_p0_0>; -- }; -- }; --}; -- --&tcphy0 { -- status = "okay"; --}; -- --&tcphy0_usb3 { -- port { -- tcphy0_typec_ss: endpoint { -- remote-endpoint = <&usbc_ss>; -- }; -- }; --}; -- --&tcphy1 { -- status = "okay"; --}; -- --&tsadc { -- /* tshut mode 0:CRU 1:GPIO */ -- rockchip,hw-tshut-mode = <1>; -- /* tshut polarity 0:LOW 1:HIGH */ -- rockchip,hw-tshut-polarity = <1>; -- status = "okay"; --}; -- --&u2phy0 { -- status = "okay"; -- -- u2phy0_otg: otg-port { -- status = "okay"; -- }; -- -- u2phy0_host: host-port { -- phy-supply = <&vcc5v0_host>; -- status = "okay"; -- }; -- -- port { -- u2phy0_typec_hs: endpoint { -- remote-endpoint = <&usbc_hs>; -- }; -- }; --}; -- --&u2phy1 { -- status = "okay"; -- -- u2phy1_otg: otg-port { -- status = "okay"; -- }; -- -- u2phy1_host: host-port { -- phy-supply = <&vcc5v0_host>; -- status = "okay"; -- }; --}; -- - &uart0 { - pinctrl-names = "default"; -- pinctrl-0 = <&uart0_xfer &uart0_cts>; -- status = "okay"; --}; -- --&uart2 { -- status = "okay"; --}; -- --&usb_host0_ehci { -- status = "okay"; --}; -- --&usb_host0_ohci { -- status = "okay"; --}; -- --&usb_host1_ehci { -- status = "okay"; --}; -- --&usb_host1_ohci { -- status = "okay"; --}; -- --&usbdrd3_0 { -- status = "okay"; --}; -- --&usbdrd_dwc3_0 { -- status = "okay"; -- dr_mode = "otg"; --}; -- --&usbdrd3_1 { -- status = "okay"; --}; -- --&usbdrd_dwc3_1 { -- status = "okay"; -- dr_mode = "host"; --}; -- --&vopb { -- status = "okay"; --}; -- --&vopb_mmu { -- status = "okay"; --}; -- --&vopl { -- status = "okay"; --}; -- --&vopl_mmu { -- status = "okay"; --}; -+ pinctrl-0 = <&uart0_xfer &uart0_rts &uart0_cts>; -+ status = "okay"; -+ -+ bluetooth { -+ compatible = "brcm,bcm43438-bt"; -+ clocks = <&rk808 1>; -+ clock-names = "lpo"; -+ device-wakeup-gpios = <&gpio2 RK_PD2 GPIO_ACTIVE_HIGH>; -+ host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>; -+ shutdown-gpios = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>; -+ max-speed = <4000000>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&bt_reg_on_h &bt_host_wake_l &bt_wake_l>; -+ vbat-supply = <&vcc3v3_sys>; -+ vddio-supply = <&vcc_1v8>; -+ }; -+}; - diff --git a/patch/kernel/media-current/00131-board-firefly-rk3399-fix-mini-pcie-usb2.patch.patch b/patch/kernel/media-current/00131-board-firefly-rk3399-fix-mini-pcie-usb2.patch.patch deleted file mode 100644 index e0d6938e4201..000000000000 --- a/patch/kernel/media-current/00131-board-firefly-rk3399-fix-mini-pcie-usb2.patch.patch +++ /dev/null @@ -1,46 +0,0 @@ ---- a/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts -@@ -32,6 +32,8 @@ - pinctrl-names = "default"; - }; - -+ /delete-node/ leds; -+ - leds { - compatible = "gpio-leds"; - pinctrl-names = "default"; -@@ -72,6 +74,17 @@ - sound-dai = <&rt5640>; - }; - }; -+ -+ vcc3v3_3g: vcc3v3-3g-regulator { -+ compatible = "regulator-fixed"; -+ enable-active-high; -+ gpio = <&gpio0 2 GPIO_ACTIVE_HIGH>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pcie_3g_drv>; -+ regulator-name = "vcc3v3_3g"; -+ regulator-always-on; -+ regulator-boot-on; -+ }; - - }; - -@@ -209,6 +222,8 @@ - }; - }; - -+ /delete-node/ leds; -+ - leds { - work_led_pin: work-led-pin { - rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>; -@@ -220,7 +235,6 @@ - }; - }; - -- - &sdio0 { - /* WiFi & BT combo module Ampak AP6356S */ - bus-width = <4>; diff --git a/patch/kernel/media-edge/00130-board-firefly-rk3399-dts.patch b/patch/kernel/media-edge/00130-board-firefly-rk3399-dts.patch deleted file mode 100644 index 5cd45890f139..000000000000 --- a/patch/kernel/media-edge/00130-board-firefly-rk3399-dts.patch +++ /dev/null @@ -1,970 +0,0 @@ -index c654b6b02f3..f73f792eb44 100644 ---- a/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts -@@ -1,85 +1,14 @@ - // SPDX-License-Identifier: (GPL-2.0+ OR MIT) - /* -- * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd. -+ * Copyright (c) 2017 T-Chip Intelligent Technology Co., Ltd - */ - - /dts-v1/; --#include --#include --#include --#include --#include "rk3399.dtsi" --#include "rk3399-opp.dtsi" -+#include "rk3399-roc-pc-mezzanine.dts" - - / { - model = "Firefly-RK3399 Board"; - compatible = "firefly,firefly-rk3399", "rockchip,rk3399"; -- -- aliases { -- mmc0 = &sdio0; -- mmc1 = &sdmmc; -- mmc2 = &sdhci; -- }; -- -- chosen { -- stdout-path = "serial2:1500000n8"; -- }; -- -- backlight: backlight { -- compatible = "pwm-backlight"; -- enable-gpios = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>; -- pwms = <&pwm0 0 25000 0>; -- brightness-levels = < -- 0 1 2 3 4 5 6 7 -- 8 9 10 11 12 13 14 15 -- 16 17 18 19 20 21 22 23 -- 24 25 26 27 28 29 30 31 -- 32 33 34 35 36 37 38 39 -- 40 41 42 43 44 45 46 47 -- 48 49 50 51 52 53 54 55 -- 56 57 58 59 60 61 62 63 -- 64 65 66 67 68 69 70 71 -- 72 73 74 75 76 77 78 79 -- 80 81 82 83 84 85 86 87 -- 88 89 90 91 92 93 94 95 -- 96 97 98 99 100 101 102 103 -- 104 105 106 107 108 109 110 111 -- 112 113 114 115 116 117 118 119 -- 120 121 122 123 124 125 126 127 -- 128 129 130 131 132 133 134 135 -- 136 137 138 139 140 141 142 143 -- 144 145 146 147 148 149 150 151 -- 152 153 154 155 156 157 158 159 -- 160 161 162 163 164 165 166 167 -- 168 169 170 171 172 173 174 175 -- 176 177 178 179 180 181 182 183 -- 184 185 186 187 188 189 190 191 -- 192 193 194 195 196 197 198 199 -- 200 201 202 203 204 205 206 207 -- 208 209 210 211 212 213 214 215 -- 216 217 218 219 220 221 222 223 -- 224 225 226 227 228 229 230 231 -- 232 233 234 235 236 237 238 239 -- 240 241 242 243 244 245 246 247 -- 248 249 250 251 252 253 254 255>; -- default-brightness-level = <200>; -- }; -- -- clkin_gmac: external-gmac-clock { -- compatible = "fixed-clock"; -- clock-frequency = <125000000>; -- clock-output-names = "clkin_gmac"; -- #clock-cells = <0>; -- }; -- -- dc_12v: dc-12v { -- compatible = "regulator-fixed"; -- regulator-name = "dc_12v"; -- regulator-always-on; -- regulator-boot-on; -- regulator-min-microvolt = <12000000>; -- regulator-max-microvolt = <12000000>; -- }; - - gpio-keys { - compatible = "gpio-keys"; -@@ -144,394 +73,26 @@ - }; - }; - -- sdio_pwrseq: sdio-pwrseq { -- compatible = "mmc-pwrseq-simple"; -- clocks = <&rk808 1>; -- clock-names = "ext_clock"; -- pinctrl-names = "default"; -- pinctrl-0 = <&wifi_enable_h>; -- -- /* -- * On the module itself this is one of these (depending -- * on the actual card populated): -- * - SDIO_RESET_L_WL_REG_ON -- * - PDN (power down when low) -- */ -- reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>; -- }; -- -- sound-dit { -- compatible = "audio-graph-card"; -- label = "SPDIF"; -- dais = <&spdif_p0>; -- }; -- -- spdif-dit { -- compatible = "linux,spdif-dit"; -- #sound-dai-cells = <0>; -- -- port { -- dit_p0_0: endpoint { -- remote-endpoint = <&spdif_p0_0>; -- }; -- }; -- }; -- -- /* switched by pmic_sleep */ -- vcc1v8_s3: vcca1v8_s3: vcc1v8-s3 { -- compatible = "regulator-fixed"; -- regulator-name = "vcc1v8_s3"; -- regulator-always-on; -- regulator-boot-on; -- regulator-min-microvolt = <1800000>; -- regulator-max-microvolt = <1800000>; -- vin-supply = <&vcc_1v8>; -- }; -- -- vcc3v3_pcie: vcc3v3-pcie-regulator { -- compatible = "regulator-fixed"; -- enable-active-high; -- gpio = <&gpio1 RK_PC1 GPIO_ACTIVE_HIGH>; -- pinctrl-names = "default"; -- pinctrl-0 = <&pcie_pwr_en>; -- regulator-name = "vcc3v3_pcie"; -- regulator-always-on; -- regulator-boot-on; -- vin-supply = <&dc_12v>; -- }; -- -- vcc3v3_sys: vcc3v3-sys { -- compatible = "regulator-fixed"; -- regulator-name = "vcc3v3_sys"; -- regulator-always-on; -- regulator-boot-on; -- regulator-min-microvolt = <3300000>; -- regulator-max-microvolt = <3300000>; -- vin-supply = <&vcc_sys>; -- }; -- -- /* Actually 3 regulators (host0, 1, 2) controlled by the same gpio */ -- vcc5v0_host: vcc5v0-host-regulator { -- compatible = "regulator-fixed"; -- enable-active-high; -- gpio = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>; -- pinctrl-names = "default"; -- pinctrl-0 = <&vcc5v0_host_en>; -- regulator-name = "vcc5v0_host"; -- regulator-always-on; -- vin-supply = <&vcc_sys>; -- }; -- -- vcc5v0_typec: vcc5v0-typec-regulator { -- compatible = "regulator-fixed"; -- enable-active-high; -- gpio = <&gpio1 RK_PA3 GPIO_ACTIVE_HIGH>; -- pinctrl-names = "default"; -- pinctrl-0 = <&vcc5v0_typec_en>; -- regulator-name = "vcc5v0_typec"; -- regulator-always-on; -- vin-supply = <&vcc_sys>; -- }; -- -- vcc_sys: vcc-sys { -- compatible = "regulator-fixed"; -- regulator-name = "vcc_sys"; -- regulator-always-on; -- regulator-boot-on; -- regulator-min-microvolt = <5000000>; -- regulator-max-microvolt = <5000000>; -- vin-supply = <&dc_12v>; -- }; -- -- vdd_log: vdd-log { -- compatible = "pwm-regulator"; -- pwms = <&pwm2 0 25000 1>; -- pwm-supply = <&vcc_sys>; -- regulator-name = "vdd_log"; -- regulator-always-on; -- regulator-boot-on; -- regulator-min-microvolt = <430000>; -- regulator-max-microvolt = <1400000>; -- }; --}; -- --&cpu_l0 { -- cpu-supply = <&vdd_cpu_l>; --}; -- --&cpu_l1 { -- cpu-supply = <&vdd_cpu_l>; --}; -- --&cpu_l2 { -- cpu-supply = <&vdd_cpu_l>; --}; -- --&cpu_l3 { -- cpu-supply = <&vdd_cpu_l>; --}; -- --&cpu_b0 { -- cpu-supply = <&vdd_cpu_b>; --}; -- --&cpu_b1 { -- cpu-supply = <&vdd_cpu_b>; --}; -- --&emmc_phy { -- status = "okay"; --}; -- --&gmac { -- assigned-clocks = <&cru SCLK_RMII_SRC>; -- assigned-clock-parents = <&clkin_gmac>; -- clock_in_out = "input"; -- phy-supply = <&vcc_lan>; -- phy-mode = "rgmii"; -- pinctrl-names = "default"; -- pinctrl-0 = <&rgmii_pins>; -- snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>; -- snps,reset-active-low; -- snps,reset-delays-us = <0 10000 50000>; -- tx_delay = <0x28>; -- rx_delay = <0x11>; -- status = "okay"; --}; -- --&gpu { -- mali-supply = <&vdd_gpu>; -- status = "okay"; --}; -- --&hdmi { -- ddc-i2c-bus = <&i2c3>; -- pinctrl-names = "default"; -- pinctrl-0 = <&hdmi_cec>; -- status = "okay"; -+}; -+ -+&rk808{ -+ rtc { -+ compatible = "rk808-rtc"; -+ status = "disabled"; -+ }; - }; - - &i2c0 { -- clock-frequency = <400000>; -- i2c-scl-rising-time-ns = <168>; -- i2c-scl-falling-time-ns = <4>; -- status = "okay"; -- -- rk808: pmic@1b { -- compatible = "rockchip,rk808"; -- reg = <0x1b>; -- interrupt-parent = <&gpio1>; -- interrupts = <21 IRQ_TYPE_LEVEL_LOW>; -- #clock-cells = <1>; -- clock-output-names = "xin32k", "rk808-clkout2"; -- 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>; -- vcc6-supply = <&vcc_sys>; -- vcc7-supply = <&vcc_sys>; -- vcc8-supply = <&vcc3v3_sys>; -- vcc9-supply = <&vcc_sys>; -- vcc10-supply = <&vcc_sys>; -- vcc11-supply = <&vcc_sys>; -- vcc12-supply = <&vcc3v3_sys>; -- vddio-supply = <&vcc1v8_pmu>; -- -- regulators { -- vdd_center: DCDC_REG1 { -- regulator-name = "vdd_center"; -- regulator-always-on; -- regulator-boot-on; -- regulator-min-microvolt = <750000>; -- regulator-max-microvolt = <1350000>; -- regulator-ramp-delay = <6001>; -- regulator-state-mem { -- regulator-off-in-suspend; -- }; -- }; -- -- vdd_cpu_l: DCDC_REG2 { -- regulator-name = "vdd_cpu_l"; -- regulator-always-on; -- regulator-boot-on; -- regulator-min-microvolt = <750000>; -- 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-state-mem { -- regulator-on-in-suspend; -- }; -- }; -- -- vcc_1v8: DCDC_REG4 { -- regulator-name = "vcc_1v8"; -- 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>; -- }; -- }; -- -- vcc1v8_dvp: LDO_REG1 { -- 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_REG2 { -- 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; -- }; -- }; -- -- vcc1v8_pmu: LDO_REG3 { -- regulator-name = "vcc1v8_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>; -- }; -- }; -- -- vcc_sdio: LDO_REG4 { -- regulator-name = "vcc_sdio"; -- regulator-always-on; -- regulator-boot-on; -- regulator-min-microvolt = <1800000>; -- regulator-max-microvolt = <3000000>; -- regulator-state-mem { -- regulator-on-in-suspend; -- regulator-suspend-microvolt = <3000000>; -- }; -- }; -- -- vcca3v0_codec: LDO_REG5 { -- regulator-name = "vcca3v0_codec"; -- regulator-always-on; -- regulator-boot-on; -- regulator-min-microvolt = <3000000>; -- regulator-max-microvolt = <3000000>; -- regulator-state-mem { -- regulator-off-in-suspend; -- }; -- }; -- -- vcc_1v5: LDO_REG6 { -- regulator-name = "vcc_1v5"; -- 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>; -- }; -- }; -- -- vcca1v8_codec: LDO_REG7 { -- regulator-name = "vcca1v8_codec"; -- regulator-always-on; -- regulator-boot-on; -- regulator-min-microvolt = <1800000>; -- regulator-max-microvolt = <1800000>; -- regulator-state-mem { -- regulator-off-in-suspend; -- }; -- }; -- -- vcc_3v0: LDO_REG8 { -- regulator-name = "vcc_3v0"; -- 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_s3: vcc_lan: SWITCH_REG1 { -- regulator-name = "vcc3v3_s3"; -- regulator-always-on; -- regulator-boot-on; -- regulator-state-mem { -- regulator-off-in-suspend; -- }; -- }; -- -- vcc3v3_s0: SWITCH_REG2 { -- regulator-name = "vcc3v3_s0"; -- regulator-always-on; -- regulator-boot-on; -- regulator-state-mem { -- regulator-off-in-suspend; -- }; -- }; -- }; -- }; -- -- vdd_cpu_b: regulator@40 { -- compatible = "silergy,syr827"; -- reg = <0x40>; -- fcs,suspend-voltage-selector = <0>; -- regulator-name = "vdd_cpu_b"; -- regulator-min-microvolt = <712500>; -- regulator-max-microvolt = <1500000>; -- regulator-ramp-delay = <1000>; -- regulator-always-on; -- regulator-boot-on; -- vin-supply = <&vcc_sys>; -- -- regulator-state-mem { -- regulator-off-in-suspend; -- }; -- }; -- -- vdd_gpu: regulator@41 { -- compatible = "silergy,syr828"; -- reg = <0x41>; -- fcs,suspend-voltage-selector = <1>; -- regulator-name = "vdd_gpu"; -- regulator-min-microvolt = <712500>; -- regulator-max-microvolt = <1500000>; -- regulator-ramp-delay = <1000>; -- regulator-always-on; -- regulator-boot-on; -- vin-supply = <&vcc_sys>; -- -- regulator-state-mem { -- regulator-off-in-suspend; -- }; -+ status = "okay"; -+ hym8563: hym8563@51 { -+ compatible = "haoyu,hym8563"; -+ reg = <0x51>; -+ interrupt-parent = <&gpio0>; -+ interrupts = <5 IRQ_TYPE_EDGE_FALLING>; -+ pinctrl-names = "default"; -+ #clock-cells = <0>; -+ clock-frequency = <32768>; -+ clock-output-names = "xin32k"; - }; - }; - -@@ -552,63 +113,10 @@ - }; - }; - --&i2c3 { -- i2c-scl-rising-time-ns = <450>; -- i2c-scl-falling-time-ns = <15>; -- status = "okay"; --}; -- - &i2c4 { - i2c-scl-rising-time-ns = <600>; - i2c-scl-falling-time-ns = <20>; - 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>; -- status = "okay"; -- -- connector { -- compatible = "usb-c-connector"; -- data-role = "host"; -- label = "USB-C"; -- op-sink-microwatt = <1000000>; -- power-role = "dual"; -- sink-pdos = -- ; -- source-pdos = -- ; -- try-power-role = "sink"; -- -- ports { -- #address-cells = <1>; -- #size-cells = <0>; -- -- port@0 { -- reg = <0>; -- -- usbc_hs: endpoint { -- remote-endpoint = -- <&u2phy0_typec_hs>; -- }; -- }; -- -- port@1 { -- reg = <1>; -- -- usbc_ss: endpoint { -- remote-endpoint = -- <&tcphy0_typec_ss>; -- }; -- }; -- }; -- }; -- }; - - accelerometer@68 { - compatible = "invensense,mpu6500"; -@@ -618,61 +126,27 @@ - }; - }; - --&i2s0 { -- rockchip,playback-channels = <8>; -- rockchip,capture-channels = <8>; -- status = "okay"; --}; -- --&i2s1 { -- rockchip,playback-channels = <2>; -- rockchip,capture-channels = <2>; -- status = "okay"; --}; -- --&i2s2 { -- status = "okay"; --}; -- --&io_domains { -- status = "okay"; -- -- bt656-supply = <&vcc1v8_dvp>; -- audio-supply = <&vcca1v8_codec>; -- sdmmc-supply = <&vcc_sdio>; -- gpio1830-supply = <&vcc_3v0>; --}; -- --&pcie_phy { -- status = "okay"; --}; -- --&pcie0 { -- ep-gpios = <&gpio4 RK_PD1 GPIO_ACTIVE_HIGH>; -- num-lanes = <4>; -- pinctrl-names = "default"; -- pinctrl-0 = <&pcie_clkreqn_cpm>; -- status = "okay"; --}; -- --&pmu_io_domains { -- pmu1830-supply = <&vcc_3v0>; -- status = "okay"; --}; -- - &pinctrl { -+ bt { -+ bt_host_wake_l: bt-host-wake-l { -+ rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ bt_reg_on_h: bt-reg-on-h { -+ rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ bt_wake_l: bt-wake-l { -+ rockchip,pins = <2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+ - buttons { - pwrbtn: pwrbtn { - rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>; - }; - }; - -- fusb302x { -- fusb0_int: fusb0-int { -- rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>; -- }; -- }; -- - ir { - ir_int: ir-int { - rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>; -@@ -685,6 +159,56 @@ - }; - }; - -+ pcie { -+ pcie_pwr_en: pcie-pwr-en { -+ rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ pcie_3g_drv: pcie-3g-drv { -+ rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>; -+ }; -+ }; -+ -+ pmic { -+ vsel1_pin: vsel1-pin { -+ rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>; -+ }; -+ -+ vsel2_pin: vsel2-pin { -+ rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>; -+ }; -+ }; -+ -+ sdio-pwrseq { -+ wifi_enable_h: wifi-enable-h { -+ rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+ -+ rt5640 { -+ rt5640_hpcon: rt5640-hpcon { -+ rockchip,pins = <4 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+ -+ pmic { -+ pmic_int_l: pmic-int-l { -+ rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>; -+ }; -+ }; -+ -+ usb2 { -+ vcc5v0_host_en: vcc5v0-host-en { -+ rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+ -+ wifi { -+ wifi_host_wake_l: wifi-host-wake-l { -+ rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+ - leds { - work_led_pin: work-led-pin { - rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>; -@@ -694,74 +218,8 @@ - rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; - }; - }; -- -- pcie { -- pcie_pwr_en: pcie-pwr-en { -- rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>; -- }; -- -- pcie_3g_drv: pcie-3g-drv { -- rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>; -- }; -- }; -- -- pmic { -- pmic_int_l: pmic-int-l { -- rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>; -- }; -- -- vsel1_pin: vsel1-pin { -- rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>; -- }; -- -- vsel2_pin: vsel2-pin { -- rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>; -- }; -- }; -- -- rt5640 { -- rt5640_hpcon: rt5640-hpcon { -- rockchip,pins = <4 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>; -- }; -- }; -- -- sdio-pwrseq { -- wifi_enable_h: wifi-enable-h { -- rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>; -- }; -- }; -- -- usb-typec { -- vcc5v0_typec_en: vcc5v0_typec_en { -- rockchip,pins = <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>; -- }; -- }; -- -- usb2 { -- vcc5v0_host_en: vcc5v0-host-en { -- rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>; -- }; -- }; -- -- wifi { -- wifi_host_wake_l: wifi-host-wake-l { -- rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>; -- }; -- }; --}; -- --&pwm0 { -- status = "okay"; --}; -- --&pwm2 { -- status = "okay"; --}; -- --&saradc { -- vref-supply = <&vcca1v8_s3>; -- status = "okay"; --}; -+}; -+ - - &sdio0 { - /* WiFi & BT combo module Ampak AP6356S */ -@@ -771,6 +229,7 @@ - keep-power-in-suspend; - mmc-pwrseq = <&sdio_pwrseq>; - non-removable; -+ num-slots = <1>; - pinctrl-names = "default"; - pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>; - sd-uhs-sdr104; -@@ -779,15 +238,12 @@ - vqmmc-supply = <&vcc1v8_s3>; /* IO line */ - vmmc-supply = <&vcc_sdio>; /* card's power */ - -- #address-cells = <1>; -- #size-cells = <0>; - status = "okay"; - - brcmf: wifi@1 { -- reg = <1>; - compatible = "brcm,bcm4329-fmac"; - interrupt-parent = <&gpio0>; -- interrupts = ; -+ interrupts = ; - interrupt-names = "host-wake"; - brcm,drive-strength = <5>; - pinctrl-names = "default"; -@@ -795,149 +251,22 @@ - }; - }; - --&sdmmc { -- bus-width = <4>; -- cap-mmc-highspeed; -- cap-sd-highspeed; -- cd-gpios = <&gpio0 7 GPIO_ACTIVE_LOW>; -- disable-wp; -- max-frequency = <150000000>; -- pinctrl-names = "default"; -- pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>; -- status = "okay"; --}; -- --&sdhci { -- bus-width = <8>; -- mmc-hs400-1_8v; -- mmc-hs400-enhanced-strobe; -- non-removable; -- status = "okay"; --}; -- --&spdif { -- pinctrl-0 = <&spdif_bus_1>; -- status = "okay"; -- -- spdif_p0: port { -- spdif_p0_0: endpoint { -- remote-endpoint = <&dit_p0_0>; -- }; -- }; --}; -- --&tcphy0 { -- status = "okay"; --}; -- --&tcphy0_usb3 { -- port { -- tcphy0_typec_ss: endpoint { -- remote-endpoint = <&usbc_ss>; -- }; -- }; --}; -- --&tcphy1 { -- status = "okay"; --}; -- --&tsadc { -- /* tshut mode 0:CRU 1:GPIO */ -- rockchip,hw-tshut-mode = <1>; -- /* tshut polarity 0:LOW 1:HIGH */ -- rockchip,hw-tshut-polarity = <1>; -- status = "okay"; --}; -- --&u2phy0 { -- status = "okay"; -- -- u2phy0_otg: otg-port { -- status = "okay"; -- }; -- -- u2phy0_host: host-port { -- phy-supply = <&vcc5v0_host>; -- status = "okay"; -- }; -- -- port { -- u2phy0_typec_hs: endpoint { -- remote-endpoint = <&usbc_hs>; -- }; -- }; --}; -- --&u2phy1 { -- status = "okay"; -- -- u2phy1_otg: otg-port { -- status = "okay"; -- }; -- -- u2phy1_host: host-port { -- phy-supply = <&vcc5v0_host>; -- status = "okay"; -- }; --}; -- - &uart0 { - pinctrl-names = "default"; -- pinctrl-0 = <&uart0_xfer &uart0_cts>; -- status = "okay"; --}; -- --&uart2 { -- status = "okay"; --}; -- --&usb_host0_ehci { -- status = "okay"; --}; -- --&usb_host0_ohci { -- status = "okay"; --}; -- --&usb_host1_ehci { -- status = "okay"; --}; -- --&usb_host1_ohci { -- status = "okay"; --}; -- --&usbdrd3_0 { -- status = "okay"; --}; -- --&usbdrd_dwc3_0 { -- status = "okay"; -- dr_mode = "otg"; --}; -- --&usbdrd3_1 { -- status = "okay"; --}; -- --&usbdrd_dwc3_1 { -- status = "okay"; -- dr_mode = "host"; --}; -- --&vopb { -- status = "okay"; --}; -- --&vopb_mmu { -- status = "okay"; --}; -- --&vopl { -- status = "okay"; --}; -- --&vopl_mmu { -- status = "okay"; --}; -+ pinctrl-0 = <&uart0_xfer &uart0_rts &uart0_cts>; -+ status = "okay"; -+ -+ bluetooth { -+ compatible = "brcm,bcm43438-bt"; -+ clocks = <&rk808 1>; -+ clock-names = "lpo"; -+ device-wakeup-gpios = <&gpio2 RK_PD2 GPIO_ACTIVE_HIGH>; -+ host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>; -+ shutdown-gpios = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>; -+ max-speed = <4000000>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&bt_reg_on_h &bt_host_wake_l &bt_wake_l>; -+ vbat-supply = <&vcc3v3_sys>; -+ vddio-supply = <&vcc_1v8>; -+ }; -+}; - diff --git a/patch/kernel/media-edge/00131-board-firefly-rk3399-fix-mini-pcie-usb2.patch.patch b/patch/kernel/media-edge/00131-board-firefly-rk3399-fix-mini-pcie-usb2.patch.patch deleted file mode 100644 index e0d6938e4201..000000000000 --- a/patch/kernel/media-edge/00131-board-firefly-rk3399-fix-mini-pcie-usb2.patch.patch +++ /dev/null @@ -1,46 +0,0 @@ ---- a/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts -@@ -32,6 +32,8 @@ - pinctrl-names = "default"; - }; - -+ /delete-node/ leds; -+ - leds { - compatible = "gpio-leds"; - pinctrl-names = "default"; -@@ -72,6 +74,17 @@ - sound-dai = <&rt5640>; - }; - }; -+ -+ vcc3v3_3g: vcc3v3-3g-regulator { -+ compatible = "regulator-fixed"; -+ enable-active-high; -+ gpio = <&gpio0 2 GPIO_ACTIVE_HIGH>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pcie_3g_drv>; -+ regulator-name = "vcc3v3_3g"; -+ regulator-always-on; -+ regulator-boot-on; -+ }; - - }; - -@@ -209,6 +222,8 @@ - }; - }; - -+ /delete-node/ leds; -+ - leds { - work_led_pin: work-led-pin { - rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>; -@@ -220,7 +235,6 @@ - }; - }; - -- - &sdio0 { - /* WiFi & BT combo module Ampak AP6356S */ - bus-width = <4>;