mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-09 04:10:18 +09:00
Merge commit '50fa63ad687063f05b451dfb3cdd4e6c2e326350'
* commit '50fa63ad687063f05b451dfb3cdd4e6c2e326350': PCI: dw: rockchip: Disable RC's BAR into rk_pcie_host_config() ARM: dts: rockchip: Add rk3506b-test2-v10 spi: rockchip-sfc: Add rockchip,rk3506-fspi compatible ARM: dts: rockchip: rk3502: Change rockchip,fspi to rockchip,rk3506-fspi dt-bindings: spi: rockchip-sfc: Add rockchip,rk3506-fspi compatible Change-Id: Ida9af6e6986beacc91fa3f043402bd24a08b1354
This commit is contained in:
@@ -17,6 +17,7 @@ properties:
|
||||
compatible:
|
||||
enum:
|
||||
- rockchip,fspi
|
||||
- rockchip,rk3506-fspi
|
||||
- rockchip,sfc
|
||||
|
||||
description:
|
||||
|
||||
@@ -1224,6 +1224,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += \
|
||||
rk3502g-evb1-v10.dtb \
|
||||
rk3503g-evb1-v10.dtb \
|
||||
rk3506b-evb1-v10.dtb \
|
||||
rk3506b-test2-v10.dtb \
|
||||
rk3506g-demo-display-control.dtb \
|
||||
rk3506g-evb1-v10.dtb \
|
||||
rk3506g-evb1-v10-amp.dtb \
|
||||
|
||||
@@ -929,11 +929,12 @@
|
||||
};
|
||||
|
||||
fspi: spi@ff488000 {
|
||||
compatible = "rockchip,fspi";
|
||||
compatible = "rockchip,rk3506-fspi", "rockchip,fspi";
|
||||
reg = <0xff488000 0x4000>;
|
||||
interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&cru SCLK_FSPI>, <&cru HCLK_FSPI>;
|
||||
clock-names = "clk_sfc", "hclk_sfc";
|
||||
rockchip,grf = <&grf_pmu>;
|
||||
rockchip,max-dll = <0x17F>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
753
arch/arm/boot/dts/rk3506b-test2-v10.dts
Normal file
753
arch/arm/boot/dts/rk3506b-test2-v10.dts
Normal file
@@ -0,0 +1,753 @@
|
||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
/*
|
||||
* Copyright (c) 2024 Rockchip Electronics Co., Ltd.
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "rk3506.dtsi"
|
||||
#include "rk3506-rk801.dtsi"
|
||||
#include <dt-bindings/input/rk-input.h>
|
||||
#include <dt-bindings/display/drm_mipi_dsi.h>
|
||||
|
||||
/* TODO: Codec: Miss spk-con-gpio */
|
||||
|
||||
/ {
|
||||
model = "Rockchip RK3506B TEST2 V10 Board";
|
||||
compatible = "rockchip,rk3506b-test2-v10", "rockchip,rk3506";
|
||||
|
||||
chosen {
|
||||
bootargs = "earlycon=uart8250,mmio32,0xff0a0000 console=ttyFIQ0 ubi.mtd=5 ubi.block=0,rootfs root=/dev/ubiblock0_0 rootfstype=squashfs snd_aloop.index=7 snd_aloop.use_raw_jiffies=1";
|
||||
};
|
||||
|
||||
adc_keys: adc-keys {
|
||||
compatible = "adc-keys";
|
||||
io-channels = <&saradc 1>;
|
||||
io-channel-names = "buttons";
|
||||
keyup-threshold-microvolt = <1800000>;
|
||||
poll-interval = <100>;
|
||||
|
||||
vol-up-key {
|
||||
label = "volume up";
|
||||
linux,code = <KEY_VOLUMEUP>;
|
||||
press-threshold-microvolt = <16000>;
|
||||
};
|
||||
|
||||
vol-down-key {
|
||||
label = "volume down";
|
||||
linux,code = <KEY_VOLUMEDOWN>;
|
||||
press-threshold-microvolt = <420000>;
|
||||
};
|
||||
|
||||
menu-key {
|
||||
label = "menu";
|
||||
linux,code = <KEY_MENU>;
|
||||
press-threshold-microvolt = <800000>;
|
||||
};
|
||||
|
||||
esc-key {
|
||||
label = "esc";
|
||||
linux,code = <KEY_ESC>;
|
||||
press-threshold-microvolt = <1200000>;
|
||||
};
|
||||
};
|
||||
|
||||
backlight: backlight {
|
||||
compatible = "pwm-backlight";
|
||||
pwms = <&pwm0_4ch_2 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>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
fiq_debugger: fiq-debugger {
|
||||
compatible = "rockchip,fiq-debugger";
|
||||
rockchip,serial-id = <0>;
|
||||
rockchip,wake-irq = <0>;
|
||||
rockchip,irq-mode-enable = <1>;
|
||||
rockchip,baudrate = <1500000>; /* Only 115200 and 1500000 */
|
||||
interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
pinctrl-name = "default";
|
||||
pinctrl-0 = <&work_led>;
|
||||
|
||||
red-led {
|
||||
default-state = "on";
|
||||
gpios = <&gpio0 RK_PD0 GPIO_ACTIVE_HIGH>;
|
||||
label = "rockchip:work_led:power";
|
||||
linux,default-trigger = "heartbeat";
|
||||
};
|
||||
};
|
||||
|
||||
rk730_sound: rk730-sound {
|
||||
status = "okay";
|
||||
compatible = "rockchip,multicodecs-card";
|
||||
rockchip,card-name = "rockchip-rk730";
|
||||
rockchip,pre-power-on-delay-ms = <30>;
|
||||
rockchip,post-power-down-delay-ms = <40>;
|
||||
rockchip,format = "i2s";
|
||||
rockchip,mclk-fs = <256>;
|
||||
rockchip,cpu = <&sai1>;
|
||||
rockchip,codec = <&rk730>;
|
||||
rockchip,audio-routing =
|
||||
"Headphone", "LOUT1",
|
||||
"Headphone", "ROUT1",
|
||||
"Speaker", "LOUT2",
|
||||
"Speaker", "ROUT2",
|
||||
"Headphone", "Headphone Power",
|
||||
"Headphone", "Headphone Power",
|
||||
"Speaker", "Speaker Power",
|
||||
"Speaker", "Speaker Power",
|
||||
"MIC2", "Main Mic",
|
||||
"MIC1", "Headset Mic";
|
||||
};
|
||||
|
||||
vcc3v3_lcd: vcc3v3-lcd {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vcc3v3_lcd";
|
||||
enable-active-high;
|
||||
gpio = <&gpio0 RK_PA1 GPIO_ACTIVE_HIGH>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&lcd_pwren_h>;
|
||||
vin-supply = <&vcc_3v3>;
|
||||
};
|
||||
|
||||
vcc3v3_sd: vcc3v3-sd {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vcc3v3_sd";
|
||||
gpio = <&gpio0 RK_PC2 GPIO_ACTIVE_HIGH>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sdmmc_pwren>;
|
||||
vin-supply = <&vcc_3v3>;
|
||||
};
|
||||
|
||||
vcc5v0_usb20_otg0: vcc5v0-usb20-otg0 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vcc5v0_usb20_otg0";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
enable-active-high;
|
||||
gpio = <&gpio4 RK_PB2 GPIO_ACTIVE_HIGH>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&usb20_otg0_drv_h>;
|
||||
vin-supply = <&vcc5v0_sys>;
|
||||
};
|
||||
|
||||
vcc5v0_usb20_otg1: vcc5v0-usb20-otg1 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vcc5v0_usb20_otg1";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
enable-active-high;
|
||||
gpio = <&gpio4 RK_PB3 GPIO_ACTIVE_HIGH>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&usb20_otg1_drv_h>;
|
||||
vin-supply = <&vcc5v0_sys>;
|
||||
};
|
||||
|
||||
vcc12v_dc: vcc12v-dc {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vcc12v_dc";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <12000000>;
|
||||
regulator-max-microvolt = <12000000>;
|
||||
};
|
||||
|
||||
vdd_0v9: vdd-0v9 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vdd_0v9";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <900000>;
|
||||
regulator-max-microvolt = <900000>;
|
||||
vin-supply = <&vcc3v3_sys>;
|
||||
};
|
||||
};
|
||||
|
||||
&cma {
|
||||
size = <0x1600000>;
|
||||
};
|
||||
|
||||
&cpu0 {
|
||||
cpu-supply = <&vdd_cpu>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&display_subsystem {
|
||||
logo-memory-region = <&drm_logo>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&dsi {
|
||||
status = "okay";
|
||||
rockchip,lane-rate = <850>;
|
||||
dsi_panel: panel@0 {
|
||||
status = "okay";
|
||||
compatible = "simple-panel-dsi";
|
||||
reg = <0>;
|
||||
backlight = <&backlight>;
|
||||
prepare-delay-ms = <5>;
|
||||
reset-delay-ms = <1>;
|
||||
init-delay-ms = <80>;
|
||||
disable-delay-ms = <10>;
|
||||
unprepare-delay-ms = <5>;
|
||||
power-supply = <&vcc3v3_lcd>;
|
||||
|
||||
width-mm = <68>;
|
||||
height-mm = <121>;
|
||||
|
||||
dsi,flags = <(MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST |
|
||||
MIPI_DSI_MODE_LPM | MIPI_DSI_MODE_NO_EOT_PACKET)>;
|
||||
dsi,format = <MIPI_DSI_FMT_RGB888>;
|
||||
dsi,lanes = <2>;
|
||||
panel-init-sequence = [
|
||||
39 00 04 ff 98 81 03
|
||||
15 00 02 01 00
|
||||
15 00 02 02 00
|
||||
15 00 02 03 53
|
||||
15 00 02 04 53
|
||||
15 00 02 05 13
|
||||
15 00 02 06 04
|
||||
15 00 02 07 02
|
||||
15 00 02 08 02
|
||||
15 00 02 09 00
|
||||
15 00 02 0a 00
|
||||
15 00 02 0b 00
|
||||
15 00 02 0c 00
|
||||
15 00 02 0d 00
|
||||
15 00 02 0e 00
|
||||
15 00 02 0f 00
|
||||
15 00 02 10 00
|
||||
15 00 02 11 00
|
||||
15 00 02 12 00
|
||||
15 00 02 13 00
|
||||
15 00 02 14 00
|
||||
15 00 02 15 08
|
||||
15 00 02 16 10
|
||||
15 00 02 17 00
|
||||
15 00 02 18 08
|
||||
15 00 02 19 00
|
||||
15 00 02 1a 00
|
||||
15 00 02 1b 00
|
||||
15 00 02 1c 00
|
||||
15 00 02 1d 00
|
||||
15 00 02 1e c0
|
||||
15 00 02 1f 80
|
||||
15 00 02 20 02
|
||||
15 00 02 21 09
|
||||
15 00 02 22 00
|
||||
15 00 02 23 00
|
||||
15 00 02 24 00
|
||||
15 00 02 25 00
|
||||
15 00 02 26 00
|
||||
15 00 02 27 00
|
||||
15 00 02 28 55
|
||||
15 00 02 29 03
|
||||
15 00 02 2a 00
|
||||
15 00 02 2b 00
|
||||
15 00 02 2c 00
|
||||
15 00 02 2d 00
|
||||
15 00 02 2e 00
|
||||
15 00 02 2f 00
|
||||
15 00 02 30 00
|
||||
15 00 02 31 00
|
||||
15 00 02 32 00
|
||||
15 00 02 33 00
|
||||
15 00 02 34 04
|
||||
15 00 02 35 05
|
||||
15 00 02 36 05
|
||||
15 00 02 37 00
|
||||
15 00 02 38 3c
|
||||
15 00 02 39 35
|
||||
15 00 02 3a 00
|
||||
15 00 02 3b 40
|
||||
15 00 02 3c 00
|
||||
15 00 02 3d 00
|
||||
15 00 02 3e 00
|
||||
15 00 02 3f 00
|
||||
15 00 02 40 00
|
||||
15 00 02 41 88
|
||||
15 00 02 42 00
|
||||
15 00 02 43 00
|
||||
15 00 02 44 1f
|
||||
15 00 02 50 01
|
||||
15 00 02 51 23
|
||||
15 00 02 52 45
|
||||
15 00 02 53 67
|
||||
15 00 02 54 89
|
||||
15 00 02 55 ab
|
||||
15 00 02 56 01
|
||||
15 00 02 57 23
|
||||
15 00 02 58 45
|
||||
15 00 02 59 67
|
||||
15 00 02 5a 89
|
||||
15 00 02 5b ab
|
||||
15 00 02 5c cd
|
||||
15 00 02 5d ef
|
||||
15 00 02 5e 03
|
||||
15 00 02 5f 14
|
||||
15 00 02 60 15
|
||||
15 00 02 61 0c
|
||||
15 00 02 62 0d
|
||||
15 00 02 63 0e
|
||||
15 00 02 64 0f
|
||||
15 00 02 65 10
|
||||
15 00 02 66 11
|
||||
15 00 02 67 08
|
||||
15 00 02 68 02
|
||||
15 00 02 69 0a
|
||||
15 00 02 6a 02
|
||||
15 00 02 6b 02
|
||||
15 00 02 6c 02
|
||||
15 00 02 6d 02
|
||||
15 00 02 6e 02
|
||||
15 00 02 6f 02
|
||||
15 00 02 70 02
|
||||
15 00 02 71 02
|
||||
15 00 02 72 06
|
||||
15 00 02 73 02
|
||||
15 00 02 74 02
|
||||
15 00 02 75 14
|
||||
15 00 02 76 15
|
||||
15 00 02 77 0f
|
||||
15 00 02 78 0e
|
||||
15 00 02 79 0d
|
||||
15 00 02 7a 0c
|
||||
15 00 02 7b 11
|
||||
15 00 02 7c 10
|
||||
15 00 02 7d 06
|
||||
15 00 02 7e 02
|
||||
15 00 02 7f 0a
|
||||
15 00 02 80 02
|
||||
15 00 02 81 02
|
||||
15 00 02 82 02
|
||||
15 00 02 83 02
|
||||
15 00 02 84 02
|
||||
15 00 02 85 02
|
||||
15 00 02 86 02
|
||||
15 00 02 87 02
|
||||
15 00 02 88 08
|
||||
15 00 02 89 02
|
||||
15 00 02 8a 02
|
||||
39 00 04 ff 98 81 04
|
||||
15 00 02 00 80
|
||||
15 00 02 70 00
|
||||
15 00 02 71 00
|
||||
15 00 02 66 fe
|
||||
15 00 02 82 15
|
||||
15 00 02 84 15
|
||||
15 00 02 85 15
|
||||
15 00 02 3a 24
|
||||
15 00 02 32 ac
|
||||
15 00 02 8c 80
|
||||
15 00 02 3c f5
|
||||
15 00 02 88 33
|
||||
39 00 04 ff 98 81 01
|
||||
15 00 02 22 0a
|
||||
15 00 02 31 00
|
||||
15 00 02 53 78
|
||||
15 00 02 55 7b
|
||||
15 00 02 60 20
|
||||
15 00 02 61 00
|
||||
15 00 02 62 0d
|
||||
15 00 02 63 00
|
||||
15 00 02 a0 00
|
||||
15 00 02 a1 10
|
||||
15 00 02 a2 1c
|
||||
15 00 02 a3 13
|
||||
15 00 02 a4 15
|
||||
15 00 02 a5 26
|
||||
15 00 02 a6 1a
|
||||
15 00 02 a7 1d
|
||||
15 00 02 a8 67
|
||||
15 00 02 a9 1c
|
||||
15 00 02 aa 29
|
||||
15 00 02 ab 5b
|
||||
15 00 02 ac 26
|
||||
15 00 02 ad 28
|
||||
15 00 02 ae 5c
|
||||
15 00 02 af 30
|
||||
15 00 02 b0 31
|
||||
15 00 02 b1 32
|
||||
15 00 02 b2 00
|
||||
15 00 02 b1 2e
|
||||
15 00 02 b2 32
|
||||
15 00 02 b3 00
|
||||
15 00 02 b6 02
|
||||
15 00 02 b7 03
|
||||
15 00 02 c0 00
|
||||
15 00 02 c1 10
|
||||
15 00 02 c2 1c
|
||||
15 00 02 c3 13
|
||||
15 00 02 c4 15
|
||||
15 00 02 c5 26
|
||||
15 00 02 c6 1a
|
||||
15 00 02 c7 1d
|
||||
15 00 02 c8 67
|
||||
15 00 02 c9 1c
|
||||
15 00 02 ca 29
|
||||
15 00 02 cb 5b
|
||||
15 00 02 cc 26
|
||||
15 00 02 cd 28
|
||||
15 00 02 ce 5c
|
||||
15 00 02 cf 30
|
||||
15 00 02 d0 31
|
||||
15 00 02 d1 2e
|
||||
15 00 02 d2 32
|
||||
15 00 02 d3 00
|
||||
39 00 04 ff 98 81 00
|
||||
05 00 01 11
|
||||
05 01 01 29
|
||||
];
|
||||
|
||||
disp_timings0: display-timings {
|
||||
native-mode = <&dsi_timing0>;
|
||||
dsi_timing0: timing0 {
|
||||
clock-frequency = <65000000>;
|
||||
hactive = <720>;
|
||||
vactive = <1280>;
|
||||
hfront-porch = <48>;
|
||||
hsync-len = <8>;
|
||||
hback-porch = <52>;
|
||||
vfront-porch = <16>;
|
||||
vsync-len = <6>;
|
||||
vback-porch = <15>;
|
||||
hsync-active = <0>;
|
||||
vsync-active = <0>;
|
||||
de-active = <0>;
|
||||
pixelclk-active = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
panel_in_dsi: endpoint {
|
||||
remote-endpoint = <&dsi_out_panel>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
dsi_out_panel: endpoint {
|
||||
remote-endpoint = <&panel_in_dsi>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
&dsi_dphy {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&dsi_in_vop {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&fspi {
|
||||
status = "okay";
|
||||
|
||||
flash@0 {
|
||||
compatible = "spi-nand";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <80000000>;
|
||||
spi-rx-bus-width = <4>;
|
||||
spi-tx-bus-width = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
&gmac0 {
|
||||
phy-mode = "rmii";
|
||||
clock_in_out = "output";
|
||||
|
||||
snps,reset-gpio = <&gpio0 RK_PB7 GPIO_ACTIVE_LOW>;
|
||||
snps,reset-active-low;
|
||||
snps,reset-delays-us = <0 20000 100000>;
|
||||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <ð_rmii0_miim_pins
|
||||
ð_rmii0_tx_bus2_pins
|
||||
ð_rmii0_rx_bus2_pins
|
||||
ð_rmii0_clk_pins
|
||||
&rmii0_rstn>;
|
||||
|
||||
phy-handle = <&rmii_phy0>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&gmac1 {
|
||||
phy-mode = "rmii";
|
||||
clock_in_out = "output";
|
||||
|
||||
snps,reset-gpio = <&gpio0 RK_PC0 GPIO_ACTIVE_LOW>;
|
||||
snps,reset-active-low;
|
||||
snps,reset-delays-us = <0 20000 100000>;
|
||||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <ð_rmii1_miim_pins
|
||||
ð_rmii1_tx_bus2_pins
|
||||
ð_rmii1_rx_bus2_pins
|
||||
ð_rmii1_clk_pins
|
||||
&rmii1_rstn>;
|
||||
|
||||
phy-handle = <&rmii_phy1>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&i2c0 {
|
||||
status = "okay";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&rm_io13_i2c0_scl
|
||||
&rm_io14_i2c0_sda>;
|
||||
};
|
||||
|
||||
&i2c2 {
|
||||
clock-frequency = <400000>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&rm_io4_i2c2_scl &rm_io5_i2c2_sda>;
|
||||
status = "okay";
|
||||
|
||||
gt1x: gt1x@14 {
|
||||
compatible = "goodix,gt1x";
|
||||
reg = <0x14>;
|
||||
gtp_ics_slot_report;
|
||||
goodix,rst-gpio = <&gpio0 RK_PA7 GPIO_ACTIVE_HIGH>;
|
||||
goodix,irq-gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_LOW>;
|
||||
power-supply = <&vcc3v3_lcd>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
rk730: rk730@17 {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "rockchip,rk730";
|
||||
reg = <0x17>;
|
||||
clocks = <&mclkout_sai1>;
|
||||
clock-names = "mclk";
|
||||
assigned-clocks = <&mclkout_sai1>;
|
||||
assigned-clock-rates = <12288000>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&rm_io8_sai1_mclk>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
&mdio0 {
|
||||
rmii_phy0: phy@1 {
|
||||
compatible = "ethernet-phy-ieee802.3-c22";
|
||||
reg = <0x1>;
|
||||
};
|
||||
};
|
||||
|
||||
&mdio1 {
|
||||
rmii_phy1: phy@1 {
|
||||
compatible = "ethernet-phy-ieee802.3-c22";
|
||||
reg = <0x1>;
|
||||
};
|
||||
};
|
||||
|
||||
&mmc {
|
||||
no-sdio;
|
||||
no-mmc;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sdmmc_bus4_pins &sdmmc_clk_pins &sdmmc_cmd_pins &sd_det>;
|
||||
cd-gpios = <&gpio0 RK_PA0 GPIO_ACTIVE_LOW>;
|
||||
// cd-debounce-delay-ms = <5>;
|
||||
disable-wp;
|
||||
vmmc-supply = <&vcc3v3_sd>;
|
||||
vqmmc-supply = <&vcc_3v3>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pinctrl {
|
||||
ethernet {
|
||||
rmii0_rstn: rmii0-rstn {
|
||||
rockchip,pins = <0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||
};
|
||||
|
||||
rmii1_rstn: rmii1-rstn {
|
||||
rockchip,pins = <0 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||
};
|
||||
};
|
||||
|
||||
lcd {
|
||||
lcd_pwren_h: lcd-pwren-h {
|
||||
rockchip,pins = <0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||
};
|
||||
};
|
||||
|
||||
led {
|
||||
work_led: work-led {
|
||||
rockchip,pins = <0 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||
};
|
||||
};
|
||||
|
||||
pmic {
|
||||
pmic_int: pmic-int {
|
||||
rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
|
||||
};
|
||||
};
|
||||
|
||||
sdcard {
|
||||
sdmmc_pwren: sdmmc-pwren {
|
||||
rockchip,pins = <0 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||
};
|
||||
|
||||
sd_det: sd-det {
|
||||
rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>;
|
||||
};
|
||||
};
|
||||
|
||||
tsadc {
|
||||
wdt_tsadc_gpio: wdt-tsadc-gpio {
|
||||
rockchip,pins = <0 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||
};
|
||||
};
|
||||
|
||||
usb {
|
||||
usb20_otg0_drv_h: usb20-otg0-drv-h {
|
||||
rockchip,pins = <4 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||
};
|
||||
|
||||
usb20_otg1_drv_h: usb20-otg1-drv-h {
|
||||
rockchip,pins = <4 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&pwm0_4ch_2 {
|
||||
pinctrl-names = "active";
|
||||
pinctrl-0 = <&rm_io3_pwm0_ch2>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&rga2 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&rk801 {
|
||||
interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>;
|
||||
};
|
||||
|
||||
&rng {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&rockchip_suspend {
|
||||
rockchip,sleep-mode-config = <
|
||||
(0
|
||||
| RKPM_ARMOFF_DDRPD
|
||||
| RKPM_24M_OSC_DIS
|
||||
| RKPM_32K_CLK
|
||||
| RKPM_32K_SRC_RC
|
||||
| RKPM_PWM0_CH0_REGULATOR
|
||||
)
|
||||
>;
|
||||
|
||||
rockchip,apios-suspend = <
|
||||
(0
|
||||
| RKPM_PWREN_CORE_GPIO0A2 | RKPM_PWREN_CORE_ACT_LOW
|
||||
| RKPM_PWREN_SLEEP_GPIO0A0 | RKPM_PWREN_SLEEP_ACT_LOW
|
||||
)
|
||||
>;
|
||||
};
|
||||
|
||||
&route_dsi{
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&sai1 {
|
||||
status = "okay";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&rm_io9_sai1_sclk
|
||||
&rm_io10_sai1_lrck
|
||||
&rm_io11_sai1_sdi
|
||||
&rm_io12_sai1_sdo0>;
|
||||
};
|
||||
|
||||
&saradc {
|
||||
vref-supply = <&vcc_1v8>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&tsadc {
|
||||
pinctrl-names = "gpio", "otpout";
|
||||
pinctrl-0 = <&wdt_tsadc_gpio>;
|
||||
pinctrl-1 = <&rm_io21_wdt_tsadc_shut>;
|
||||
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb2phy {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&u2phy_otg0 {
|
||||
/* Only switch date-role manually */
|
||||
vbus-supply = <&vcc5v0_usb20_otg0>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb20_otg0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&u2phy_otg1 {
|
||||
phy-supply = <&vcc5v0_usb20_otg1>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb20_otg1 {
|
||||
dr_mode = "host";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&vop {
|
||||
status = "okay";
|
||||
};
|
||||
@@ -628,10 +628,6 @@ static int rk_add_pcie_port(struct rk_pcie *rk_pcie, struct platform_device *pde
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Disable BAR0 BAR1 */
|
||||
dw_pcie_writel_dbi2(pci, PCI_BASE_ADDRESS_0, 0x0);
|
||||
dw_pcie_writel_dbi2(pci, PCI_BASE_ADDRESS_1, 0x0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1566,6 +1562,10 @@ static int rk_pcie_host_config(struct rk_pcie *rk_pcie)
|
||||
rk_pcie_writel_apb(rk_pcie, PCIE_CLIENT_INTR_MASK_LEGACY,
|
||||
rk_pcie->intx | 0xffff0000);
|
||||
|
||||
/* Disable BAR0 BAR1 */
|
||||
dw_pcie_writel_dbi2(pci, PCI_BASE_ADDRESS_0, 0x0);
|
||||
dw_pcie_writel_dbi2(pci, PCI_BASE_ADDRESS_1, 0x0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1993,10 +1993,6 @@ static int __maybe_unused rockchip_dw_pcie_resume(struct device *dev)
|
||||
goto unconfig_host;
|
||||
}
|
||||
|
||||
/* Disable BAR0 BAR1 */
|
||||
dw_pcie_writel_dbi2(pci, PCI_BASE_ADDRESS_0, 0x0);
|
||||
dw_pcie_writel_dbi2(pci, PCI_BASE_ADDRESS_1, 0x0);
|
||||
|
||||
dw_pcie_dbi_ro_wr_dis(pci);
|
||||
rk_pcie->in_suspend = false;
|
||||
if (rk_pcie->skip_scan_in_resume)
|
||||
|
||||
@@ -15,12 +15,14 @@
|
||||
#include <linux/dma-mapping.h>
|
||||
#include <linux/iopoll.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/mfd/syscon.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/pinctrl/consumer.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/spi/spi-mem.h>
|
||||
#include <linux/of_gpio.h>
|
||||
@@ -197,6 +199,16 @@
|
||||
|
||||
#define ROCKCHIP_AUTOSUSPEND_DELAY 2000
|
||||
|
||||
struct rockchip_sfc_powergood {
|
||||
bool valid;
|
||||
u32 grf_offset;
|
||||
u8 bits_mask;
|
||||
};
|
||||
|
||||
struct rockchip_sfc_data {
|
||||
struct rockchip_sfc_powergood powergood;
|
||||
};
|
||||
|
||||
struct rockchip_sfc {
|
||||
struct device *dev;
|
||||
void __iomem *regbase;
|
||||
@@ -218,6 +230,8 @@ struct rockchip_sfc {
|
||||
struct gpio_desc *rst_gpio;
|
||||
struct gpio_desc **cs_gpiods;
|
||||
struct spi_master *master;
|
||||
struct regmap *grf;
|
||||
struct rockchip_sfc_data *data;
|
||||
};
|
||||
|
||||
static int rockchip_sfc_reset(struct rockchip_sfc *sfc)
|
||||
@@ -392,6 +406,7 @@ static int rockchip_sfc_xfer_setup(struct rockchip_sfc *sfc,
|
||||
{
|
||||
u32 ctrl = 0, cmd = 0, cmd_ext = 0, dummy_ext = 0;
|
||||
u8 cs = mem->spi->chip_select;
|
||||
u32 voltage;
|
||||
|
||||
/* set CMD */
|
||||
if (op->cmd.nbytes == 2) {
|
||||
@@ -461,6 +476,15 @@ static int rockchip_sfc_xfer_setup(struct rockchip_sfc *sfc,
|
||||
dev_dbg(sfc->dev, "sfc ctrl=%x cmd=%x cmd_ext=%x addr=%llx dummy_ext=%x len=%x cs=%d\n",
|
||||
ctrl, cmd, cmd_ext, op->addr.val, cmd_ext, len, cs);
|
||||
|
||||
if (sfc->data && sfc->data->powergood.valid) {
|
||||
if (regmap_read_poll_timeout(sfc->grf, sfc->data->powergood.grf_offset,
|
||||
voltage, voltage & sfc->data->powergood.bits_mask,
|
||||
1000, jiffies_to_usecs(HZ))) {
|
||||
dev_err(sfc->dev, "wait for powergood failed\n");
|
||||
return -EIO;
|
||||
}
|
||||
}
|
||||
|
||||
if (cmd_ext)
|
||||
writel(cmd_ext, sfc->regbase + SFC_CMD_EXT);
|
||||
if (sfc->version >= SFC_VER_8)
|
||||
@@ -900,6 +924,22 @@ static int rockchip_sfc_get_gpio_descs(struct spi_controller *ctlr, struct rockc
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct rockchip_sfc_data rk3506_fspi_data = {
|
||||
.powergood = {
|
||||
.valid = true,
|
||||
.grf_offset = 0x100,
|
||||
.bits_mask = BIT(0),
|
||||
},
|
||||
};
|
||||
|
||||
static const struct of_device_id rockchip_sfc_dt_ids[] = {
|
||||
{ .compatible = "rockchip,fspi",},
|
||||
{ .compatible = "rockchip,rk3506-fspi", .data = &rk3506_fspi_data},
|
||||
{ .compatible = "rockchip,sfc"},
|
||||
{ /* sentinel */ }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, rockchip_sfc_dt_ids);
|
||||
|
||||
static int rockchip_sfc_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct device *dev = &pdev->dev;
|
||||
@@ -992,6 +1032,17 @@ static int rockchip_sfc_probe(struct platform_device *pdev)
|
||||
goto err_irq;
|
||||
}
|
||||
|
||||
sfc->data = (struct rockchip_sfc_data *)device_get_match_data(&pdev->dev);
|
||||
if (sfc->data) {
|
||||
sfc->grf = syscon_regmap_lookup_by_phandle_optional(dev->of_node, "rockchip,grf");
|
||||
if (IS_ERR_OR_NULL(sfc->grf)) {
|
||||
ret = -EINVAL;
|
||||
dev_err(dev, "Failed to find grf\n");
|
||||
|
||||
goto err_irq;
|
||||
}
|
||||
}
|
||||
|
||||
platform_set_drvdata(pdev, sfc);
|
||||
|
||||
if (IS_ENABLED(CONFIG_ROCKCHIP_THUNDER_BOOT)) {
|
||||
@@ -1149,13 +1200,6 @@ static const struct dev_pm_ops rockchip_sfc_pm_ops = {
|
||||
SET_SYSTEM_SLEEP_PM_OPS(rockchip_sfc_suspend, rockchip_sfc_resume)
|
||||
};
|
||||
|
||||
static const struct of_device_id rockchip_sfc_dt_ids[] = {
|
||||
{ .compatible = "rockchip,fspi"},
|
||||
{ .compatible = "rockchip,sfc"},
|
||||
{ /* sentinel */ }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, rockchip_sfc_dt_ids);
|
||||
|
||||
static struct platform_driver rockchip_sfc_driver = {
|
||||
.driver = {
|
||||
.name = "rockchip-sfc",
|
||||
|
||||
Reference in New Issue
Block a user