From 461fbeedafcf9082471a3c65cf78c44b06328071 Mon Sep 17 00:00:00 2001 From: zhangpeng Date: Mon, 12 May 2025 16:33:25 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E7=BD=91=E5=8F=A3=E5=92=8C?= =?UTF-8?q?=E4=B8=B2=E5=8F=A3=E7=9A=84=E9=80=82=E9=85=8D,=E6=B3=A8?= =?UTF-8?q?=E9=87=8A=E4=BA=86=E4=B8=80=E4=BA=9B=E4=B8=8D=E7=94=A8=E7=9A=84?= =?UTF-8?q?=E5=A4=96=E8=AE=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rk356x/.dr4-rk3568.dtb.cmd | 8 - rk356x/.dr4-rk3568.dtb.d.pre.tmp | 10 +- rk356x/.dr4-rk3568.dtb.dts.tmp | 507 +------------------------------ rk356x/dr4-rk3568.dtb | Bin 179848 -> 173249 bytes rk356x/dr4-rk3568.dts | 194 ++++++------ 5 files changed, 102 insertions(+), 617 deletions(-) diff --git a/rk356x/.dr4-rk3568.dtb.cmd b/rk356x/.dr4-rk3568.dtb.cmd index af35459..4430bd9 100644 --- a/rk356x/.dr4-rk3568.dtb.cmd +++ b/rk356x/.dr4-rk3568.dtb.cmd @@ -28,16 +28,8 @@ deps_arch/arm64/boot/dts/rockchip/rk356x/dr4-rk3568.dtb := \ arch/arm64/boot/dts/rockchip/rk356x/../rockchip-pinconf.dtsi \ arch/arm64/boot/dts/rockchip/rk356x/../rk3568-linux.dtsi \ arch/arm64/boot/dts/rockchip/rk356x/rp-camera-mipi-gc2093-single-2lane.dtsi \ - arch/arm64/boot/dts/rockchip/rk356x/rp-adc-key.dtsi \ arch/arm64/boot/dts/rockchip/rk356x/rp-gmac1-m1-pro-rk3568.dtsi \ arch/arm64/boot/dts/rockchip/rk356x/rp-gmac0-pro-rk3568.dtsi \ - arch/arm64/boot/dts/rockchip/rk356x/rp-can0-m0-rk3568.dtsi \ - arch/arm64/boot/dts/rockchip/rk356x/rp-can1-m1-rk3568.dtsi \ - arch/arm64/boot/dts/rockchip/rk356x/rp-can2-m0-rk3568.dtsi \ - arch/arm64/boot/dts/rockchip/rk356x/rk3568-pcie2x1.dtsi \ - arch/arm64/boot/dts/rockchip/rk356x/rk3568-pcie3x2.dtsi \ - arch/arm64/boot/dts/rockchip/rk356x/rk3568-sata1.dtsi \ - arch/arm64/boot/dts/rockchip/rk356x/lcd-gpio-dr4-rk3568.dtsi \ arch/arm64/boot/dts/rockchip/rk356x/dr4-rk3568.dtb: $(deps_arch/arm64/boot/dts/rockchip/rk356x/dr4-rk3568.dtb) diff --git a/rk356x/.dr4-rk3568.dtb.d.pre.tmp b/rk356x/.dr4-rk3568.dtb.d.pre.tmp index 3dec90f..6a61702 100644 --- a/rk356x/.dr4-rk3568.dtb.d.pre.tmp +++ b/rk356x/.dr4-rk3568.dtb.d.pre.tmp @@ -24,13 +24,5 @@ dr4-rk3568.o: arch/arm64/boot/dts/rockchip/rk356x/dr4-rk3568.dts \ arch/arm64/boot/dts/rockchip/rk356x/../rockchip-pinconf.dtsi \ arch/arm64/boot/dts/rockchip/rk356x/../rk3568-linux.dtsi \ arch/arm64/boot/dts/rockchip/rk356x/rp-camera-mipi-gc2093-single-2lane.dtsi \ - arch/arm64/boot/dts/rockchip/rk356x/rp-adc-key.dtsi \ arch/arm64/boot/dts/rockchip/rk356x/rp-gmac1-m1-pro-rk3568.dtsi \ - arch/arm64/boot/dts/rockchip/rk356x/rp-gmac0-pro-rk3568.dtsi \ - arch/arm64/boot/dts/rockchip/rk356x/rp-can0-m0-rk3568.dtsi \ - arch/arm64/boot/dts/rockchip/rk356x/rp-can1-m1-rk3568.dtsi \ - arch/arm64/boot/dts/rockchip/rk356x/rp-can2-m0-rk3568.dtsi \ - arch/arm64/boot/dts/rockchip/rk356x/rk3568-pcie2x1.dtsi \ - arch/arm64/boot/dts/rockchip/rk356x/rk3568-pcie3x2.dtsi \ - arch/arm64/boot/dts/rockchip/rk356x/rk3568-sata1.dtsi \ - arch/arm64/boot/dts/rockchip/rk356x/lcd-gpio-dr4-rk3568.dtsi + arch/arm64/boot/dts/rockchip/rk356x/rp-gmac0-pro-rk3568.dtsi diff --git a/rk356x/.dr4-rk3568.dtb.dts.tmp b/rk356x/.dr4-rk3568.dtb.dts.tmp index 7bacb95..1c429f2 100644 --- a/rk356x/.dr4-rk3568.dtb.dts.tmp +++ b/rk356x/.dr4-rk3568.dtb.dts.tmp @@ -8916,49 +8916,7 @@ dsi1_panel: panel@0 { }; }; # 17 "arch/arm64/boot/dts/rockchip/rk356x/dr4-rk3568.dts" 2 - - - - -# 1 "arch/arm64/boot/dts/rockchip/rk356x/rp-adc-key.dtsi" 1 -/ { - - adc_keys: adc-keys { - compatible = "adc-keys"; - io-channels = <&saradc 0>; - io-channel-names = "buttons"; - keyup-threshold-microvolt = <1800000>; - poll-interval = <100>; - - vol-up-key { - label = "volume up"; - linux,code = <115>; - press-threshold-microvolt = <1750>; - }; - - vol-down-key { - label = "volume down"; - linux,code = <114>; - press-threshold-microvolt = <297500>; - }; - - menu-key { - label = "menu"; - linux,code = <139>; - press-threshold-microvolt = <980000>; - }; - - back-key { - label = "back"; - linux,code = <158>; - press-threshold-microvolt = <1305500>; - }; - }; -}; -# 22 "arch/arm64/boot/dts/rockchip/rk356x/dr4-rk3568.dts" 2 - - - +# 25 "arch/arm64/boot/dts/rockchip/rk356x/dr4-rk3568.dts" # 1 "arch/arm64/boot/dts/rockchip/rk356x/rp-gmac1-m1-pro-rk3568.dtsi" 1 &gmac1 { @@ -9037,382 +8995,6 @@ dsi1_panel: panel@0 { }; }; # 27 "arch/arm64/boot/dts/rockchip/rk356x/dr4-rk3568.dts" 2 - - - -# 1 "arch/arm64/boot/dts/rockchip/rk356x/rp-can0-m0-rk3568.dtsi" 1 - - -&can0 { - compatible = "rockchip,rk3568-can-2.0"; - assigned-clocks = <&cru 321>; - assigned-clock-rates = <150000000>; - pinctrl-names = "default"; - pinctrl-0 = <&can0m0_pins>; - status = "okay"; -}; - -&i2c1 { - - status = "disabled"; -}; -# 31 "arch/arm64/boot/dts/rockchip/rk356x/dr4-rk3568.dts" 2 -# 1 "arch/arm64/boot/dts/rockchip/rk356x/rp-can1-m1-rk3568.dtsi" 1 - - -&can1 { - compatible = "rockchip,rk3568-can-2.0"; - assigned-clocks = <&cru 323>; - assigned-clock-rates = <150000000>; - pinctrl-names = "default"; - pinctrl-0 = <&can1m1_pins>; - status = "okay"; -}; -# 32 "arch/arm64/boot/dts/rockchip/rk356x/dr4-rk3568.dts" 2 -# 1 "arch/arm64/boot/dts/rockchip/rk356x/rp-can2-m0-rk3568.dtsi" 1 - - -&can2 { - compatible = "rockchip,rk3568-can-2.0"; - assigned-clocks = <&cru 325>; - assigned-clock-rates = <150000000>; - pinctrl-names = "default"; - pinctrl-0 = <&can2m0_pins>; - status = "okay"; -}; -# 33 "arch/arm64/boot/dts/rockchip/rk356x/dr4-rk3568.dts" 2 - - - -# 1 "arch/arm64/boot/dts/rockchip/rk356x/rk3568-pcie2x1.dtsi" 1 - - - - -/ { - vcc3v3_pcie: gpio-regulator { - compatible = "regulator-fixed"; - regulator-name = "vcc3v3_pcie"; - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; - enable-active-high; - - - - - startup-delay-us = <5000>; - vin-supply = <&dc_12v>; - }; - -}; - - -&combphy2_psq { - status = "okay"; -}; - -&sata2 { - status = "disabled"; -}; - -&pcie2x1 { - - - - - vpcie3v3-supply = <&vcc3v3_pcie>; - status = "okay"; -}; -# 37 "arch/arm64/boot/dts/rockchip/rk356x/dr4-rk3568.dts" 2 -# 1 "arch/arm64/boot/dts/rockchip/rk356x/rk3568-pcie3x2.dtsi" 1 - - - - -/ { - vcc3v3_pcie3: gpio-regulator-pcie3 { - compatible = "regulator-fixed"; - regulator-name = "vcc3v3_pcie3"; - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; - enable-active-high; - - - - - startup-delay-us = <5000>; - vin-supply = <&dc_12v>; - }; -}; - -&pcie30phy { - status = "okay"; -}; - -&pcie3x2 { - - - - - status = "okay"; - vpcie3v3-supply = <&vcc3v3_pcie3>; -}; -# 38 "arch/arm64/boot/dts/rockchip/rk356x/dr4-rk3568.dts" 2 - - - -# 1 "arch/arm64/boot/dts/rockchip/rk356x/rk3568-sata1.dtsi" 1 - - - - - - -&usbhost_dwc3 { - - phys = <&u2phy0_host>; -}; - -&combphy1_usq { - status = "okay"; -}; - -&sata1 { - status = "okay"; -}; -# 42 "arch/arm64/boot/dts/rockchip/rk356x/dr4-rk3568.dts" 2 - - - - -# 1 "arch/arm64/boot/dts/rockchip/rk356x/lcd-gpio-dr4-rk3568.dtsi" 1 - -/ { - backlight4: backlight { - compatible = "pwm-backlight"; - pwms = <&pwm4 0 25000 0>; - brightness-levels = < - 0 20 20 21 21 22 22 23 - 23 24 24 25 25 26 26 27 - 27 28 28 29 29 30 30 31 - 31 32 32 33 33 34 34 35 - 35 36 36 37 37 38 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>; - }; - - backlight5: backlight5 { - compatible = "pwm-backlight"; - pwms = <&pwm5 0 25000 1>; - brightness-levels = < - 0 20 20 21 21 22 22 23 - 23 24 24 25 25 26 26 27 - 27 28 28 29 29 30 30 31 - 31 32 32 33 33 34 34 35 - 35 36 36 37 37 38 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>; - }; - - backlight10: backlight10 { - compatible = "pwm-backlight"; - pwms = <&pwm10 0 25000 0>; - brightness-levels = < - 0 20 20 21 21 22 22 23 - 23 24 24 25 25 26 26 27 - 27 28 28 29 29 30 30 31 - 31 32 32 33 33 34 34 35 - 35 36 36 37 37 38 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>; - }; -}; - - -&pwm4 { - status = "okay"; -}; - -&pwm5 { - status = "okay"; -}; - -&pwm10 { - status = "okay"; -}; - - -&dsi0_panel { - power-supply = <&vcc3v3_lcd0_n>; - enable-gpios = <&gpio4 26 0>; - reset-gpios = <&gpio3 5 1>; - pinctrl-names = "default"; - pinctrl-0 = <&mipi0_pins>; - backlight = <&backlight4>; -}; - - -&dsi1_panel { - status = "disabled"; -}; - - -&lvds_panel { - power-supply = <&vcc3v3_lcd0_n>; - enable-gpios = <&gpio4 26 0>; - - pinctrl-names = "default"; - pinctrl-0 = <&mipi0_pins>; - backlight = <&backlight4>; -}; - - -&edp_panel { - power-supply = <&vcc3v3_lcd0_n>; - pinctrl-names = "default"; - pinctrl-0 = <&edp_pins>; - enable-gpios = <&gpio0 6 0>; - backlight = <&backlight4>; -}; - - - -&vcc3v3_lcd0_n { - - /delete-property/ gpio; - enable-active-high; -}; - - -&i2c3 { - gt9xx: goodix_ts@5d { - - pinctrl-names = "default"; - pinctrl-0 = <&goodix_pins>; - goodix_rst_gpio = <&gpio3 3 0>; - goodix_irq_gpio = <&gpio3 4 2>; - - status = "disabled"; - }; - gt1x: goodix_gt1x@5d { - - pinctrl-names = "default"; - pinctrl-0 = <&goodix_pins>; - goodix,rst-gpio = <&gpio3 3 0>; - goodix,irq-gpio = <&gpio3 4 2>; - - status = "disabled"; - }; -}; - -&pinctrl { - lcd_pins { - mipi0_pins: mipi1-pins { - rockchip,pins = - - <4 26 0 &pcfg_pull_none>, - - <3 5 0 &pcfg_pull_none>; - }; - edp_pins: edp-pins { - rockchip,pins = - - <0 6 0 &pcfg_pull_none>; - }; - }; - - goodix { - goodix_pins: goodix-pins { - rockchip,pins = - - <3 3 0 &pcfg_pull_none>, - - <3 4 0 &pcfg_pull_up>; - }; - }; -}; -# 47 "arch/arm64/boot/dts/rockchip/rk356x/dr4-rk3568.dts" 2 # 79 "arch/arm64/boot/dts/rockchip/rk356x/dr4-rk3568.dts" /{ model = "dr4-rk3568"; @@ -9674,25 +9256,7 @@ dsi1_panel: panel@0 { status = "disabled"; }; -# 392 "arch/arm64/boot/dts/rockchip/rk356x/dr4-rk3568.dts" -&edp_panel { - backlight = <&backlight10>; -}; -# 404 "arch/arm64/boot/dts/rockchip/rk356x/dr4-rk3568.dts" -&gmac1 { - tx_delay = <0x49>; - rx_delay = <0x29>; - status = "okay"; -}; - -&gmac0 { - tx_delay = <0x49>; - rx_delay = <0x29>; - status = "okay"; -}; - - - +# 418 "arch/arm64/boot/dts/rockchip/rk356x/dr4-rk3568.dts" &rk_headset { pinctrl-0 = <&hp_det>; headset_gpio = <&gpio2 27 0>; @@ -9741,56 +9305,7 @@ dsi1_panel: panel@0 { BT,wake_host_irq = <&gpio0 28 0>; status = "disabled"; }; - - - - -&vcc3v3_pcie { - - - - - /delete-property/ gpio; -}; - -&pcie2x1 { - status = "disabled"; - - reset-gpios = <&gpio1 10 0>; -}; - - - - -&pcie3x2 { - status = "disabled"; - reset-gpios = <&gpio2 30 0>; - vpcie3v3-supply = <&vcc3v3_pcie3>; -}; - -&vcc3v3_pcie3 { - pinctrl-names = "default"; - pinctrl-0 = <&pcie3_3v3>; - gpio = <&gpio3 2 0>; - - startup-delay-us = <8000>; -}; - - -&vcc_camera { - gpio = <&gpio2 17 0>; - pinctrl-names = "default"; - pinctrl-0 = <&camera_en>; -}; -&gc2093 { - pinctrl-names = "default"; - pinctrl-0 = <&cif_clk>; - pinctrl-1 = <&camera_ctl>; - pwdn-gpios = <&gpio3 23 0>; - reset-gpios = <&gpio2 9 1>; -}; - - +# 516 "arch/arm64/boot/dts/rockchip/rk356x/dr4-rk3568.dts" &pinctrl { rp_pins { rp_power: rp-power { @@ -9830,21 +9345,7 @@ dsi1_panel: panel@0 { <3 2 0 &pcfg_pull_none>; }; }; - - camera-pins { - camera_en: camera-en { - rockchip,pins = - - <2 17 0 &pcfg_pull_none>; - }; - camera_ctl: camera-ctl { - rockchip,pins = - - <3 23 0 &pcfg_pull_none>, - - <2 8 0 &pcfg_pull_none>; - }; - }; +# 570 "arch/arm64/boot/dts/rockchip/rk356x/dr4-rk3568.dts" }; diff --git a/rk356x/dr4-rk3568.dtb b/rk356x/dr4-rk3568.dtb index e3c2873da0c1ce86eab8f39ff39794b28615bab3..19be78d6c6c1672b6d936a378dfd5a775d852c79 100644 GIT binary patch delta 36731 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 P{nTn?whVvS7$E*XE#X_^ delta 43148 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 HjQRfq2V%#D diff --git a/rk356x/dr4-rk3568.dts b/rk356x/dr4-rk3568.dts index e2e1e32..6a8eb8d 100755 --- a/rk356x/dr4-rk3568.dts +++ b/rk356x/dr4-rk3568.dts @@ -18,7 +18,7 @@ /*************************adc key***********************/ -#include "rp-adc-key.dtsi" +// #include "rp-adc-key.dtsi" /***************************************************/ /*************************gmac***********************/ @@ -27,23 +27,23 @@ /***************************************************/ /*************************CAN**********************/ -#include "rp-can0-m0-rk3568.dtsi" -#include "rp-can1-m1-rk3568.dtsi" -#include "rp-can2-m0-rk3568.dtsi" +// #include "rp-can0-m0-rk3568.dtsi" +// #include "rp-can1-m1-rk3568.dtsi" +// #include "rp-can2-m0-rk3568.dtsi" /**************************************************/ /*********************PCIE**************************/ -#include "rk3568-pcie2x1.dtsi" -#include "rk3568-pcie3x2.dtsi" +// #include "rk3568-pcie2x1.dtsi" +// #include "rk3568-pcie3x2.dtsi" /***************************************************/ /*************************SATA***********************/ -#include "rk3568-sata1.dtsi" +// #include "rk3568-sata1.dtsi" /***************************************************/ -#include "lcd-gpio-dr4-rk3568.dtsi" //gpio config for lcd +// #include "lcd-gpio-dr4-rk3568.dtsi" //gpio config for lcd /****** LCD config reference **/ /** single HDMI */ @@ -364,54 +364,54 @@ * and if mutiple lcd used, we just use the backlight5, backlight10. */ /** LCD configuration */ -#if defined(RP_SINGLE_LCD) +// #if defined(RP_SINGLE_LCD) - #if defined(RP_MIPI02LVDS) - &dsi0_panel { - enable-gpios = <&gpio4 RK_PD2 GPIO_ACTIVE_LOW>; //raw interface is inverse, so set to low - }; - #if defined(RP_DUALLVDS) - // dual lvds donot need invert - &backlight4 { - pwms = <&pwm5 0 25000 0>; - }; - #else - //pwm and enable pin may be inverted if use mipi to single lvds - &backlight4 { - pwms = <&pwm5 0 25000 1>; - }; - #endif +// #if defined(RP_MIPI02LVDS) +// &dsi0_panel { +// enable-gpios = <&gpio4 RK_PD2 GPIO_ACTIVE_LOW>; //raw interface is inverse, so set to low +// }; +// #if defined(RP_DUALLVDS) +// // dual lvds donot need invert +// &backlight4 { +// pwms = <&pwm5 0 25000 0>; +// }; +// #else +// //pwm and enable pin may be inverted if use mipi to single lvds +// &backlight4 { +// pwms = <&pwm5 0 25000 1>; +// }; +// #endif - #elif defined(RP_EDP_USED) - &backlight4 { - pwms = <&pwm10 0 25000 0>; - }; - #endif +// #elif defined(RP_EDP_USED) +// &backlight4 { +// pwms = <&pwm10 0 25000 0>; +// }; +// #endif -#else -&edp_panel { - backlight = <&backlight10>; -}; - #ifdef RP_MIPI02LVDS - &dsi0_panel { - backlight = <&backlight5>; - }; - #endif -#endif +// #else +// &edp_panel { +// backlight = <&backlight10>; +// }; +// #ifdef RP_MIPI02LVDS +// &dsi0_panel { +// backlight = <&backlight5>; +// }; +// #endif +// #endif /** Ethernet config*/ -&gmac1 { - tx_delay = <0x49>; - rx_delay = <0x29>; - status = "okay"; -}; +// &gmac1 { +// tx_delay = <0x49>; +// rx_delay = <0x29>; +// status = "okay"; +// }; -&gmac0 { - tx_delay = <0x49>; - rx_delay = <0x29>; - status = "okay"; -}; +// &gmac0 { +// tx_delay = <0x49>; +// rx_delay = <0x29>; +// status = "okay"; +// }; /** headphone detect pin */ @@ -467,50 +467,50 @@ /** pcie2x1 */ -&vcc3v3_pcie { - /** - * delete for gpio used to be bt_wake_host - * and the vcc3v3_pcie need not control on our board. - */ - /delete-property/ gpio; -}; +// &vcc3v3_pcie { +// /** +// * delete for gpio used to be bt_wake_host +// * and the vcc3v3_pcie need not control on our board. +// */ +// /delete-property/ gpio; +// }; -&pcie2x1 { - status = "disabled"; +// &pcie2x1 { +// status = "disabled"; - reset-gpios = <&gpio1 RK_PB2 GPIO_ACTIVE_HIGH>; -}; +// reset-gpios = <&gpio1 RK_PB2 GPIO_ACTIVE_HIGH>; +// }; /** pcie3x2 */ -&pcie3x2 { - status = "disabled"; - reset-gpios = <&gpio2 RK_PD6 GPIO_ACTIVE_HIGH>; - vpcie3v3-supply = <&vcc3v3_pcie3>; -}; +// &pcie3x2 { +// status = "disabled"; +// reset-gpios = <&gpio2 RK_PD6 GPIO_ACTIVE_HIGH>; +// vpcie3v3-supply = <&vcc3v3_pcie3>; +// }; -&vcc3v3_pcie3 { - pinctrl-names = "default"; - pinctrl-0 = <&pcie3_3v3>; - gpio = <&gpio3 RK_PA2 GPIO_ACTIVE_HIGH>; +// &vcc3v3_pcie3 { +// pinctrl-names = "default"; +// pinctrl-0 = <&pcie3_3v3>; +// gpio = <&gpio3 RK_PA2 GPIO_ACTIVE_HIGH>; - startup-delay-us = <8000>; //5000 is faild -}; +// startup-delay-us = <8000>; //5000 is faild +// }; /** mipi camera config */ -&vcc_camera { - gpio = <&gpio2 RK_PC1 GPIO_ACTIVE_HIGH>; - pinctrl-names = "default"; - pinctrl-0 = <&camera_en>; -}; -&gc2093 { - pinctrl-names = "default"; - pinctrl-0 = <&cif_clk>; - pinctrl-1 = <&camera_ctl>; - pwdn-gpios = <&gpio3 RK_PC7 GPIO_ACTIVE_HIGH>; - reset-gpios = <&gpio2 RK_PB1 GPIO_ACTIVE_LOW>; -}; +// &vcc_camera { +// gpio = <&gpio2 RK_PC1 GPIO_ACTIVE_HIGH>; +// pinctrl-names = "default"; +// pinctrl-0 = <&camera_en>; +// }; +// &gc2093 { +// pinctrl-names = "default"; +// pinctrl-0 = <&cif_clk>; +// pinctrl-1 = <&camera_ctl>; +// pwdn-gpios = <&gpio3 RK_PC7 GPIO_ACTIVE_HIGH>; +// reset-gpios = <&gpio2 RK_PB1 GPIO_ACTIVE_LOW>; +// }; &pinctrl { @@ -553,20 +553,20 @@ }; }; - camera-pins { - camera_en: camera-en { - rockchip,pins = - /** gc2093 camera en */ - <2 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>; - }; - camera_ctl: camera-ctl { - rockchip,pins = - /** gc2093 camera power down */ - <3 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>, - /** gc2093 camera reset */ - <2 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; - }; - }; + // camera-pins { + // camera_en: camera-en { + // rockchip,pins = + // /** gc2093 camera en */ + // <2 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>; + // }; + // camera_ctl: camera-ctl { + // rockchip,pins = + // /** gc2093 camera power down */ + // <3 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>, + // /** gc2093 camera reset */ + // <2 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; + // }; + // }; };