Message ID | 20211115173821.104038-2-jagan@amarulasolutions.com |
---|---|
State | New |
Headers | show |
Series |
|
Related | show |
On 2021/11/16 上午1:38, Jagan Teki wrote: > Sync the px30 devicetree files from linux-next tree. > > commit <14ce8069f48b> ("lib/stackdepot: allow optional init and > stack_table allocation by kvmalloc() - fixup3") > > Note, this path even sync rk3326 files as it depends on px30. > > Signed-off-by: Jagan Teki <jagan@amarulasolutions.com> Reviewed-by: Kever Yang <kever.yang@rock-chips.com> Thanks, - Kever > --- > Changes for v2: > - add sync on v5.15 > - add sync on rk3326 > > arch/arm/dts/Makefile | 4 +- > arch/arm/dts/px30-engicam-common.dtsi | 90 ++++++ > arch/arm/dts/px30-engicam-ctouch2.dtsi | 22 ++ > arch/arm/dts/px30-engicam-edimm2.2.dtsi | 59 ++++ > .../px30-engicam-px30-core-ctouch2-of10.dts | 77 +++++ > ...dts => px30-engicam-px30-core-ctouch2.dts} | 4 +- > .../dts/px30-engicam-px30-core-edimm2.2.dts | 43 +++ > ...-core.dtsi => px30-engicam-px30-core.dtsi} | 11 +- > arch/arm/dts/px30-evb.dts | 143 ++++++++-- > arch/arm/dts/px30-px30-core-edimm2.2.dts | 21 -- > arch/arm/dts/px30-u-boot.dtsi | 4 + > arch/arm/dts/px30.dtsi | 270 +++++++++++++----- > arch/arm/dts/rk3326-odroid-go2-u-boot.dtsi | 2 +- > arch/arm/dts/rk3326-odroid-go2.dts | 178 +++--------- > configs/px30-core-ctouch2-px30_defconfig | 4 +- > configs/px30-core-edimm2.2-px30_defconfig | 4 +- > 16 files changed, 681 insertions(+), 255 deletions(-) > create mode 100644 arch/arm/dts/px30-engicam-px30-core-ctouch2-of10.dts > rename arch/arm/dts/{px30-px30-core-ctouch2.dts => px30-engicam-px30-core-ctouch2.dts} (80%) > create mode 100644 arch/arm/dts/px30-engicam-px30-core-edimm2.2.dts > rename arch/arm/dts/{px30-px30-core.dtsi => px30-engicam-px30-core.dtsi} (96%) > delete mode 100644 arch/arm/dts/px30-px30-core-edimm2.2.dts > > diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile > index cc34da7bd8..57a33d0bc4 100644 > --- a/arch/arm/dts/Makefile > +++ b/arch/arm/dts/Makefile > @@ -78,8 +78,8 @@ dtb-$(CONFIG_MACH_S700) += \ > dtb-$(CONFIG_ROCKCHIP_PX30) += \ > px30-evb.dtb \ > px30-firefly.dtb \ > - px30-px30-core-ctouch2.dtb \ > - px30-px30-core-edimm2.2.dtb \ > + px30-engicam-px30-core-ctouch2.dtb \ > + px30-engicam-px30-core-edimm2.2.dtb \ > rk3326-odroid-go2.dtb > > dtb-$(CONFIG_ROCKCHIP_RK3036) += \ > diff --git a/arch/arm/dts/px30-engicam-common.dtsi b/arch/arm/dts/px30-engicam-common.dtsi > index bd5bde989e..3429e124d9 100644 > --- a/arch/arm/dts/px30-engicam-common.dtsi > +++ b/arch/arm/dts/px30-engicam-common.dtsi > @@ -6,6 +6,11 @@ > */ > > / { > + aliases { > + mmc1 = &sdmmc; > + mmc2 = &sdio; > + }; > + > vcc5v0_sys: vcc5v0-sys { > compatible = "regulator-fixed"; > regulator-name = "vcc5v0_sys"; /* +5V */ > @@ -14,6 +19,63 @@ > regulator-min-microvolt = <5000000>; > regulator-max-microvolt = <5000000>; > }; > + > + sdio_pwrseq: sdio-pwrseq { > + compatible = "mmc-pwrseq-simple"; > + clocks = <&xin32k>; > + clock-names = "ext_clock"; > + post-power-on-delay-ms = <80>; > + pinctrl-names = "default"; > + pinctrl-0 = <&wifi_enable_h>; > + }; > + > + vcc3v3_btreg: vcc3v3-btreg { > + compatible = "regulator-gpio"; > + enable-active-high; > + pinctrl-names = "default"; > + pinctrl-0 = <&bt_enable_h>; > + regulator-name = "btreg-gpio-supply"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + regulator-always-on; > + states = <3300000 0x0>; > + }; > + > + vcc3v3_rf_aux_mod: vcc3v3-rf-aux-mod { > + compatible = "regulator-fixed"; > + regulator-name = "vcc3v3_rf_aux_mod"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + regulator-always-on; > + regulator-boot-on; > + vin-supply = <&vcc5v0_sys>; > + }; > + > + xin32k: xin32k { > + compatible = "fixed-clock"; > + #clock-cells = <0>; > + clock-frequency = <32768>; > + clock-output-names = "xin32k"; > + }; > +}; > + > +&sdio { > + #address-cells = <1>; > + #size-cells = <0>; > + bus-width = <4>; > + clock-frequency = <50000000>; > + cap-sdio-irq; > + cap-sd-highspeed; > + keep-power-in-suspend; > + mmc-pwrseq = <&sdio_pwrseq>; > + non-removable; > + sd-uhs-sdr104; > + status = "okay"; > + > + brcmf: wifi@1 { > + compatible = "brcm,bcm4329-fmac"; > + reg = <1>; > + }; > }; > > &gmac { > @@ -25,6 +87,10 @@ > status = "okay"; > }; > > +&pwm0 { > + status = "okay"; > +}; > + > &sdmmc { > cap-sd-highspeed; > card-detect-delay = <800>; > @@ -33,7 +99,31 @@ > status = "okay"; > }; > > +&u2phy { > + status = "okay"; > + > + u2phy_host: host-port { > + status = "okay"; > + }; > + > + u2phy_otg: otg-port { > + status = "okay"; > + }; > +}; > + > &uart2 { > pinctrl-0 = <&uart2m1_xfer>; > status = "okay"; > }; > + > +&usb20_otg { > + status = "okay"; > +}; > + > +&usb_host0_ehci { > + status = "okay"; > +}; > + > +&usb_host0_ohci { > + status = "okay"; > +}; > diff --git a/arch/arm/dts/px30-engicam-ctouch2.dtsi b/arch/arm/dts/px30-engicam-ctouch2.dtsi > index 58425b1e55..bf10a3d29f 100644 > --- a/arch/arm/dts/px30-engicam-ctouch2.dtsi > +++ b/arch/arm/dts/px30-engicam-ctouch2.dtsi > @@ -6,3 +6,25 @@ > */ > > #include "px30-engicam-common.dtsi" > + > +&pinctrl { > + bt { > + bt_enable_h: bt-enable-h { > + rockchip,pins = <1 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>; > + }; > + }; > + > + sdio-pwrseq { > + wifi_enable_h: wifi-enable-h { > + rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>; > + }; > + }; > +}; > + > +&sdio_pwrseq { > + reset-gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>; > +}; > + > +&vcc3v3_btreg { > + enable-gpio = <&gpio1 RK_PC3 GPIO_ACTIVE_HIGH>; > +}; > diff --git a/arch/arm/dts/px30-engicam-edimm2.2.dtsi b/arch/arm/dts/px30-engicam-edimm2.2.dtsi > index cb00988953..449b8eb645 100644 > --- a/arch/arm/dts/px30-engicam-edimm2.2.dtsi > +++ b/arch/arm/dts/px30-engicam-edimm2.2.dtsi > @@ -5,3 +5,62 @@ > */ > > #include "px30-engicam-common.dtsi" > + > +/ { > + backlight: backlight { > + compatible = "pwm-backlight"; > + pwms = <&pwm0 0 25000 0>; > + }; > + > + panel { > + compatible = "yes-optoelectronics,ytc700tlag-05-201c"; > + backlight = <&backlight>; > + data-mapping = "vesa-24"; > + power-supply = <&vcc3v3_lcd>; > + > + port { > + panel_in_lvds: endpoint { > + remote-endpoint = <&lvds_out_panel>; > + }; > + }; > + }; > +}; > + > +&display_subsystem { > + status = "okay"; > +}; > + > +&dsi_dphy { > + status = "okay"; > +}; > + > +/* LVDS_B(secondary) */ > +&lvds { > + status = "okay"; > + > + ports { > + port@1 { > + reg = <1>; > + > + lvds_out_panel: endpoint { > + remote-endpoint = <&panel_in_lvds>; > + }; > + }; > + }; > +}; > + > +&vopb { > + status = "okay"; > +}; > + > +&vopb_mmu { > + status = "okay"; > +}; > + > +&vopl { > + status = "okay"; > +}; > + > +&vopl_mmu { > + status = "okay"; > +}; > diff --git a/arch/arm/dts/px30-engicam-px30-core-ctouch2-of10.dts b/arch/arm/dts/px30-engicam-px30-core-ctouch2-of10.dts > new file mode 100644 > index 0000000000..47aa30505a > --- /dev/null > +++ b/arch/arm/dts/px30-engicam-px30-core-ctouch2-of10.dts > @@ -0,0 +1,77 @@ > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) > +/* > + * Copyright (c) 2020 Fuzhou Rockchip Electronics Co., Ltd > + * Copyright (c) 2020 Engicam srl > + * Copyright (c) 2020 Amarula Solutions(India) > + */ > + > +/dts-v1/; > +#include "px30.dtsi" > +#include "px30-engicam-ctouch2.dtsi" > +#include "px30-engicam-px30-core.dtsi" > + > +/ { > + model = "Engicam PX30.Core C.TOUCH 2.0 10.1\" Open Frame"; > + compatible = "engicam,px30-core-ctouch2-of10", "engicam,px30-core", > + "rockchip,px30"; > + > + backlight: backlight { > + compatible = "pwm-backlight"; > + pwms = <&pwm0 0 25000 0>; > + }; > + > + chosen { > + stdout-path = "serial2:115200n8"; > + }; > + > + panel { > + compatible = "ampire,am-1280800n3tzqw-t00h"; > + backlight = <&backlight>; > + power-supply = <&vcc3v3_lcd>; > + data-mapping = "vesa-24"; > + > + port { > + panel_in_lvds: endpoint { > + remote-endpoint = <&lvds_out_panel>; > + }; > + }; > + }; > +}; > + > +&display_subsystem { > + status = "okay"; > +}; > + > +&dsi_dphy { > + status = "okay"; > +}; > + > +&lvds { > + status = "okay"; > + > + ports { > + port@1 { > + reg = <1>; > + > + lvds_out_panel: endpoint { > + remote-endpoint = <&panel_in_lvds>; > + }; > + }; > + }; > +}; > + > +&vopb { > + status = "okay"; > +}; > + > +&vopb_mmu { > + status = "okay"; > +}; > + > +&vopl { > + status = "okay"; > +}; > + > +&vopl_mmu { > + status = "okay"; > +}; > diff --git a/arch/arm/dts/px30-px30-core-ctouch2.dts b/arch/arm/dts/px30-engicam-px30-core-ctouch2.dts > similarity index 80% > rename from arch/arm/dts/px30-px30-core-ctouch2.dts > rename to arch/arm/dts/px30-engicam-px30-core-ctouch2.dts > index 2da0128188..5a0ecb8fae 100644 > --- a/arch/arm/dts/px30-px30-core-ctouch2.dts > +++ b/arch/arm/dts/px30-engicam-px30-core-ctouch2.dts > @@ -9,11 +9,11 @@ > /dts-v1/; > #include "px30.dtsi" > #include "px30-engicam-ctouch2.dtsi" > -#include "px30-px30-core.dtsi" > +#include "px30-engicam-px30-core.dtsi" > > / { > model = "Engicam PX30.Core C.TOUCH 2.0"; > - compatible = "engicam,px30-core-ctouch2", "engicam,px30-px30-core", > + compatible = "engicam,px30-core-ctouch2", "engicam,px30-core", > "rockchip,px30"; > > chosen { > diff --git a/arch/arm/dts/px30-engicam-px30-core-edimm2.2.dts b/arch/arm/dts/px30-engicam-px30-core-edimm2.2.dts > new file mode 100644 > index 0000000000..d759478e1c > --- /dev/null > +++ b/arch/arm/dts/px30-engicam-px30-core-edimm2.2.dts > @@ -0,0 +1,43 @@ > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) > +/* > + * Copyright (c) 2020 Fuzhou Rockchip Electronics Co., Ltd > + * Copyright (c) 2020 Engicam srl > + * Copyright (c) 2020 Amarula Solutions(India) > + */ > + > +/dts-v1/; > +#include "px30.dtsi" > +#include "px30-engicam-edimm2.2.dtsi" > +#include "px30-engicam-px30-core.dtsi" > + > +/ { > + model = "Engicam PX30.Core EDIMM2.2 Starter Kit"; > + compatible = "engicam,px30-core-edimm2.2", "engicam,px30-core", > + "rockchip,px30"; > + > + chosen { > + stdout-path = "serial2:115200n8"; > + }; > +}; > + > +&pinctrl { > + bt { > + bt_enable_h: bt-enable-h { > + rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>; > + }; > + }; > + > + sdio-pwrseq { > + wifi_enable_h: wifi-enable-h { > + rockchip,pins = <1 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>; > + }; > + }; > +}; > + > +&sdio_pwrseq { > + reset-gpios = <&gpio1 RK_PC3 GPIO_ACTIVE_LOW>; > +}; > + > +&vcc3v3_btreg { > + enable-gpio = <&gpio1 RK_PC2 GPIO_ACTIVE_HIGH>; > +}; > diff --git a/arch/arm/dts/px30-px30-core.dtsi b/arch/arm/dts/px30-engicam-px30-core.dtsi > similarity index 96% > rename from arch/arm/dts/px30-px30-core.dtsi > rename to arch/arm/dts/px30-engicam-px30-core.dtsi > index 16e6cf28a4..7249871530 100644 > --- a/arch/arm/dts/px30-px30-core.dtsi > +++ b/arch/arm/dts/px30-engicam-px30-core.dtsi > @@ -10,7 +10,11 @@ > #include <dt-bindings/pinctrl/rockchip.h> > > / { > - compatible = "engicam,px30-px30-core", "rockchip,px30"; > + compatible = "engicam,px30-core", "rockchip,px30"; > + > + aliases { > + mmc0 = &emmc; > + }; > }; > > &cpu0 { > @@ -192,6 +196,11 @@ > }; > }; > > + vcc3v3_lcd: SWITCH_REG1 { > + regulator-boot-on; > + regulator-name = "vcc3v3_lcd"; > + }; > + > vcc5v0_host: SWITCH_REG2 { > regulator-name = "vcc5v0_host"; > regulator-always-on; > diff --git a/arch/arm/dts/px30-evb.dts b/arch/arm/dts/px30-evb.dts > index 4134e2ee13..848bc39cf8 100644 > --- a/arch/arm/dts/px30-evb.dts > +++ b/arch/arm/dts/px30-evb.dts > @@ -13,8 +13,14 @@ > model = "Rockchip PX30 EVB"; > compatible = "rockchip,px30-evb", "rockchip,px30"; > > + aliases { > + mmc0 = &sdmmc; > + mmc1 = &sdio; > + mmc2 = &emmc; > + }; > + > chosen { > - stdout-path = "serial2:115200n8"; > + stdout-path = "serial5:115200n8"; > }; > > adc-keys { > @@ -108,6 +114,10 @@ > cpu-supply = <&vdd_arm>; > }; > > +&csi_dphy { > + status = "okay"; > +}; > + > &display_subsystem { > status = "okay"; > }; > @@ -126,22 +136,15 @@ > }; > > panel@0 { > - compatible = "sitronix,st7703"; > + compatible = "xinpeng,xpp055c272"; > reg = <0>; > backlight = <&backlight>; > iovcc-supply = <&vcc_1v8>; > vci-supply = <&vcc3v3_lcd>; > > - ports { > - #address-cells = <1>; > - #size-cells = <0>; > - > - port@0 { > - reg = <0>; > - > - mipi_in_panel: endpoint { > - remote-endpoint = <&mipi_out_panel>; > - }; > + port { > + mipi_in_panel: endpoint { > + remote-endpoint = <&mipi_out_panel>; > }; > }; > }; > @@ -152,7 +155,6 @@ > }; > > &emmc { > - bus-width = <8>; > cap-mmc-highspeed; > mmc-hs200-1_8v; > non-removable; > @@ -171,6 +173,11 @@ > status = "okay"; > }; > > +&gpu { > + mali-supply = <&vdd_log>; > + status = "okay"; > +}; > + > &i2c0 { > status = "okay"; > > @@ -388,6 +395,73 @@ > }; > }; > > +&i2c1 { > + status = "okay"; > + > + sensor@d { > + compatible = "asahi-kasei,ak8963"; > + reg = <0x0d>; > + gpios = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>; > + vdd-supply = <&vcc3v0_pmu>; > + mount-matrix = "1", /* x0 */ > + "0", /* y0 */ > + "0", /* z0 */ > + "0", /* x1 */ > + "1", /* y1 */ > + "0", /* z1 */ > + "0", /* x2 */ > + "0", /* y2 */ > + "1"; /* z2 */ > + }; > + > + touchscreen@14 { > + compatible = "goodix,gt1151"; > + reg = <0x14>; > + interrupt-parent = <&gpio0>; > + interrupts = <RK_PA5 IRQ_TYPE_LEVEL_LOW>; > + irq-gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>; > + reset-gpios = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>; > + VDDIO-supply = <&vcc3v3_lcd>; > + }; > + > + sensor@4c { > + compatible = "fsl,mma7660"; > + reg = <0x4c>; > + interrupt-parent = <&gpio0>; > + interrupts = <RK_PB7 IRQ_TYPE_LEVEL_LOW>; > + }; > +}; > + > +&i2c2 { > + status = "okay"; > + > + clock-frequency = <100000>; > + > + /* These are relatively safe rise/fall times; TODO: measure */ > + i2c-scl-falling-time-ns = <50>; > + i2c-scl-rising-time-ns = <300>; > + > + ov5695: ov5695@36 { > + compatible = "ovti,ov5695"; > + reg = <0x36>; > + avdd-supply = <&vcc2v8_dvp>; > + clocks = <&cru SCLK_CIF_OUT>; > + clock-names = "xvclk"; > + dvdd-supply = <&vcc1v5_dvp>; > + dovdd-supply = <&vcc1v8_dvp>; > + pinctrl-names = "default"; > + pinctrl-0 = <&cif_clkout_m0>; > + reset-gpios = <&gpio2 14 GPIO_ACTIVE_LOW>; > + > + port { > + ucam_out: endpoint { > + remote-endpoint = <&mipi_in_ucam>; > + data-lanes = <1 2>; > + }; > + }; > + }; > +}; > + > &i2s1_2ch { > status = "okay"; > }; > @@ -403,6 +477,24 @@ > vccio6-supply = <&vccio_flash>; > }; > > +&isp { > + status = "okay"; > + > + ports { > + port@0 { > + mipi_in_ucam: endpoint@0 { > + reg = <0>; > + data-lanes = <1 2>; > + remote-endpoint = <&ucam_out>; > + }; > + }; > + }; > +}; > + > +&isp_mmu { > + status = "okay"; > +}; > + > &pinctrl { > headphone { > hp_det: hp-det { > @@ -464,7 +556,6 @@ > }; > > &sdmmc { > - bus-width = <4>; > cap-mmc-highspeed; > cap-sd-highspeed; > card-detect-delay = <800>; > @@ -474,10 +565,10 @@ > sd-uhs-sdr104; > vmmc-supply = <&vcc_sd>; > vqmmc-supply = <&vccio_sd>; > + status = "okay"; > }; > > &sdio { > - bus-width = <4>; > cap-sd-highspeed; > keep-power-in-suspend; > non-removable; > @@ -486,13 +577,27 @@ > status = "okay"; > }; > > -&uart1 { > - pinctrl-names = "default"; > - pinctrl-0 = <&uart1_xfer &uart1_cts>; > +&tsadc { > + rockchip,hw-tshut-mode = <1>; > + rockchip,hw-tshut-polarity = <1>; > status = "okay"; > }; > > -&uart2 { > +&u2phy { > + status = "okay"; > + > + u2phy_host: host-port { > + status = "okay"; > + }; > + > + u2phy_otg: otg-port { > + status = "okay"; > + }; > +}; > + > +&uart1 { > + pinctrl-names = "default"; > + pinctrl-0 = <&uart1_xfer &uart1_cts>; > status = "okay"; > }; > > diff --git a/arch/arm/dts/px30-px30-core-edimm2.2.dts b/arch/arm/dts/px30-px30-core-edimm2.2.dts > deleted file mode 100644 > index c36280ce7f..0000000000 > --- a/arch/arm/dts/px30-px30-core-edimm2.2.dts > +++ /dev/null > @@ -1,21 +0,0 @@ > -// SPDX-License-Identifier: (GPL-2.0+ OR MIT) > -/* > - * Copyright (c) 2020 Fuzhou Rockchip Electronics Co., Ltd > - * Copyright (c) 2020 Engicam srl > - * Copyright (c) 2020 Amarula Solutions(India) > - */ > - > -/dts-v1/; > -#include "px30.dtsi" > -#include "px30-engicam-edimm2.2.dtsi" > -#include "px30-px30-core.dtsi" > - > -/ { > - model = "Engicam PX30.Core EDIMM2.2 Starter Kit"; > - compatible = "engicam,px30-core-edimm2.2", "engicam,px30-px30-core", > - "rockchip,px30"; > - > - chosen { > - stdout-path = "serial2:115200n8"; > - }; > -}; > diff --git a/arch/arm/dts/px30-u-boot.dtsi b/arch/arm/dts/px30-u-boot.dtsi > index bbed7dcde5..f102b2aef4 100644 > --- a/arch/arm/dts/px30-u-boot.dtsi > +++ b/arch/arm/dts/px30-u-boot.dtsi > @@ -64,10 +64,14 @@ > > &cru { > u-boot,dm-pre-reloc; > + /delete-property/ assigned-clocks; > + /delete-property/ assigned-clock-rates; > }; > > &pmucru { > u-boot,dm-pre-reloc; > + /delete-property/ assigned-clocks; > + /delete-property/ assigned-clock-rates; > }; > > &saradc { > diff --git a/arch/arm/dts/px30.dtsi b/arch/arm/dts/px30.dtsi > index ef77b7b997..00f50b05d5 100644 > --- a/arch/arm/dts/px30.dtsi > +++ b/arch/arm/dts/px30.dtsi > @@ -110,7 +110,7 @@ > }; > }; > > - cpu0_opp_table: cpu0-opp-table { > + cpu0_opp_table: opp-table-0 { > compatible = "operating-points-v2"; > opp-shared; > > @@ -143,7 +143,7 @@ > }; > > arm-pmu { > - compatible = "arm,cortex-a53-pmu"; > + compatible = "arm,cortex-a35-pmu"; > interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>, > <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>, > <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>, > @@ -244,28 +244,31 @@ > #size-cells = <0>; > > /* These power domains are grouped by VD_LOGIC */ > - pd_usb@PX30_PD_USB { > + power-domain@PX30_PD_USB { > reg = <PX30_PD_USB>; > clocks = <&cru HCLK_HOST>, > <&cru HCLK_OTG>, > <&cru SCLK_OTG_ADP>; > pm_qos = <&qos_usb_host>, <&qos_usb_otg>; > + #power-domain-cells = <0>; > }; > - pd_sdcard@PX30_PD_SDCARD { > + power-domain@PX30_PD_SDCARD { > reg = <PX30_PD_SDCARD>; > clocks = <&cru HCLK_SDMMC>, > <&cru SCLK_SDMMC>; > pm_qos = <&qos_sdmmc>; > + #power-domain-cells = <0>; > }; > - pd_gmac@PX30_PD_GMAC { > + power-domain@PX30_PD_GMAC { > reg = <PX30_PD_GMAC>; > clocks = <&cru ACLK_GMAC>, > <&cru PCLK_GMAC>, > <&cru SCLK_MAC_REF>, > <&cru SCLK_GMAC_RX_TX>; > pm_qos = <&qos_gmac>; > + #power-domain-cells = <0>; > }; > - pd_mmc_nand@PX30_PD_MMC_NAND { > + power-domain@PX30_PD_MMC_NAND { > reg = <PX30_PD_MMC_NAND>; > clocks = <&cru HCLK_NANDC>, > <&cru HCLK_EMMC>, > @@ -277,15 +280,17 @@ > <&cru SCLK_SFC>; > pm_qos = <&qos_emmc>, <&qos_nand>, > <&qos_sdio>, <&qos_sfc>; > + #power-domain-cells = <0>; > }; > - pd_vpu@PX30_PD_VPU { > + power-domain@PX30_PD_VPU { > reg = <PX30_PD_VPU>; > clocks = <&cru ACLK_VPU>, > <&cru HCLK_VPU>, > <&cru SCLK_CORE_VPU>; > pm_qos = <&qos_vpu>, <&qos_vpu_r128>; > + #power-domain-cells = <0>; > }; > - pd_vo@PX30_PD_VO { > + power-domain@PX30_PD_VO { > reg = <PX30_PD_VO>; > clocks = <&cru ACLK_RGA>, > <&cru ACLK_VOPB>, > @@ -300,8 +305,9 @@ > <&cru SCLK_VOPB_PWM>; > pm_qos = <&qos_rga_rd>, <&qos_rga_wr>, > <&qos_vop_m0>, <&qos_vop_m1>; > + #power-domain-cells = <0>; > }; > - pd_vi@PX30_PD_VI { > + power-domain@PX30_PD_VI { > reg = <PX30_PD_VI>; > clocks = <&cru ACLK_CIF>, > <&cru ACLK_ISP>, > @@ -311,11 +317,13 @@ > pm_qos = <&qos_isp_128>, <&qos_isp_rd>, > <&qos_isp_wr>, <&qos_isp_m1>, > <&qos_vip>; > + #power-domain-cells = <0>; > }; > - pd_gpu@PX30_PD_GPU { > + power-domain@PX30_PD_GPU { > reg = <PX30_PD_GPU>; > clocks = <&cru SCLK_GPU>; > pm_qos = <&qos_gpu>; > + #power-domain-cells = <0>; > }; > }; > }; > @@ -600,7 +608,7 @@ > }; > > wdt: watchdog@ff1e0000 { > - compatible = "snps,dw-wdt"; > + compatible = "rockchip,px30-wdt", "snps,dw-wdt"; > reg = <0x0 0xff1e0000 0x0 0x100>; > clocks = <&cru PCLK_WDT_NS>; > interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; > @@ -703,21 +711,15 @@ > clock-names = "pclk", "timer"; > }; > > - amba { > - compatible = "simple-bus"; > - #address-cells = <2>; > - #size-cells = <2>; > - ranges; > - > - dmac: dmac@ff240000 { > - compatible = "arm,pl330", "arm,primecell"; > - reg = <0x0 0xff240000 0x0 0x4000>; > - interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>, > - <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; > - clocks = <&cru ACLK_DMAC>; > - clock-names = "apb_pclk"; > - #dma-cells = <1>; > - }; > + dmac: dmac@ff240000 { > + compatible = "arm,pl330", "arm,primecell"; > + reg = <0x0 0xff240000 0x0 0x4000>; > + interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; > + arm,pl330-periph-burst; > + clocks = <&cru ACLK_DMAC>; > + clock-names = "apb_pclk"; > + #dma-cells = <1>; > }; > > tsadc: tsadc@ff280000 { > @@ -733,9 +735,9 @@ > rockchip,grf = <&grf>; > rockchip,hw-tshut-temp = <120000>; > pinctrl-names = "init", "default", "sleep"; > - pinctrl-0 = <&tsadc_otp_gpio>; > + pinctrl-0 = <&tsadc_otp_pin>; > pinctrl-1 = <&tsadc_otp_out>; > - pinctrl-2 = <&tsadc_otp_gpio>; > + pinctrl-2 = <&tsadc_otp_pin>; > #thermal-sensor-cells = <1>; > status = "disabled"; > }; > @@ -784,6 +786,16 @@ > rockchip,grf = <&grf>; > #clock-cells = <1>; > #reset-cells = <1>; > + > + assigned-clocks = <&cru PLL_NPLL>, > + <&cru ACLK_BUS_PRE>, <&cru ACLK_PERI_PRE>, > + <&cru HCLK_BUS_PRE>, <&cru HCLK_PERI_PRE>, > + <&cru PCLK_BUS_PRE>, <&cru SCLK_GPU>; > + > + assigned-clock-rates = <1188000000>, > + <200000000>, <200000000>, > + <150000000>, <150000000>, > + <100000000>, <200000000>; > }; > > pmucru: clock-controller@ff2bc000 { > @@ -794,6 +806,13 @@ > rockchip,grf = <&grf>; > #clock-cells = <1>; > #reset-cells = <1>; > + > + assigned-clocks = > + <&pmucru PLL_GPLL>, <&pmucru PCLK_PMU_PRE>, > + <&pmucru SCLK_WIFI_PMU>; > + assigned-clock-rates = > + <1200000000>, <100000000>, > + <26000000>; > }; > > usb2phy_grf: syscon@ff2c0000 { > @@ -803,7 +822,7 @@ > #address-cells = <1>; > #size-cells = <1>; > > - u2phy: usb2-phy@100 { > + u2phy: usb2phy@100 { > compatible = "rockchip,px30-usb2phy"; > reg = <0x100 0x20>; > clocks = <&pmucru SCLK_USBPHY_REF>; > @@ -845,6 +864,19 @@ > status = "disabled"; > }; > > + csi_dphy: phy@ff2f0000 { > + compatible = "rockchip,px30-csi-dphy"; > + reg = <0x0 0xff2f0000 0x0 0x4000>; > + clocks = <&cru PCLK_MIPICSIPHY>; > + clock-names = "pclk"; > + #phy-cells = <0>; > + power-domains = <&power PX30_PD_VI>; > + resets = <&cru SRST_MIPICSIPHY_P>; > + reset-names = "apb"; > + rockchip,grf = <&grf>; > + status = "disabled"; > + }; > + > usb20_otg: usb@ff300000 { > compatible = "rockchip,px30-usb", "rockchip,rk3066-usb", > "snps,dwc2"; > @@ -856,7 +888,6 @@ > g-np-tx-fifo-size = <16>; > g-rx-fifo-size = <280>; > g-tx-fifo-size = <256 128 128 64 32 16>; > - g-use-dma; > phys = <&u2phy_otg>; > phy-names = "usb2-phy"; > power-domains = <&power PX30_PD_USB>; > @@ -868,7 +899,6 @@ > reg = <0x0 0xff340000 0x0 0x10000>; > interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>; > clocks = <&cru HCLK_HOST>; > - clock-names = "usbhost"; > phys = <&u2phy_host>; > phy-names = "usb"; > power-domains = <&power PX30_PD_USB>; > @@ -880,7 +910,6 @@ > reg = <0x0 0xff350000 0x0 0x10000>; > interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>; > clocks = <&cru HCLK_HOST>; > - clock-names = "usbhost"; > phys = <&u2phy_host>; > phy-names = "usb"; > power-domains = <&power PX30_PD_USB>; > @@ -910,13 +939,14 @@ > status = "disabled"; > }; > > - sdmmc: dwmmc@ff370000 { > + sdmmc: mmc@ff370000 { > compatible = "rockchip,px30-dw-mshc", "rockchip,rk3288-dw-mshc"; > reg = <0x0 0xff370000 0x0 0x4000>; > interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>; > clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>, > <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>; > - clock-names = "biu", "ciu", "ciu-drv", "ciu-sample"; > + clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; > + bus-width = <4>; > fifo-depth = <0x100>; > max-frequency = <150000000>; > pinctrl-names = "default"; > @@ -925,13 +955,14 @@ > status = "disabled"; > }; > > - sdio: dwmmc@ff380000 { > + sdio: mmc@ff380000 { > compatible = "rockchip,px30-dw-mshc", "rockchip,rk3288-dw-mshc"; > reg = <0x0 0xff380000 0x0 0x4000>; > interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>; > clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>, > <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>; > - clock-names = "biu", "ciu", "ciu-drv", "ciu-sample"; > + clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; > + bus-width = <4>; > fifo-depth = <0x100>; > max-frequency = <150000000>; > pinctrl-names = "default"; > @@ -940,13 +971,14 @@ > status = "disabled"; > }; > > - emmc: dwmmc@ff390000 { > + emmc: mmc@ff390000 { > compatible = "rockchip,px30-dw-mshc", "rockchip,rk3288-dw-mshc"; > reg = <0x0 0xff390000 0x0 0x4000>; > interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>; > clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>, > <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>; > - clock-names = "biu", "ciu", "ciu-drv", "ciu-sample"; > + clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; > + bus-width = <8>; > fifo-depth = <0x100>; > max-frequency = <150000000>; > pinctrl-names = "default"; > @@ -955,18 +987,54 @@ > status = "disabled"; > }; > > - sfc: sfc@ff3a0000 { > + sfc: spi@ff3a0000 { > compatible = "rockchip,sfc"; > reg = <0x0 0xff3a0000 0x0 0x4000>; > interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>; > clocks = <&cru SCLK_SFC>, <&cru HCLK_SFC>; > clock-names = "clk_sfc", "hclk_sfc"; > - pinctrl-names = "default"; > pinctrl-0 = <&sfc_clk &sfc_cs0 &sfc_bus4>; > + pinctrl-names = "default"; > + power-domains = <&power PX30_PD_MMC_NAND>; > + status = "disabled"; > + }; > + > + nfc: nand-controller@ff3b0000 { > + compatible = "rockchip,px30-nfc"; > + reg = <0x0 0xff3b0000 0x0 0x4000>; > + interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>; > + clocks = <&cru HCLK_NANDC>, <&cru SCLK_NANDC>; > + clock-names = "ahb", "nfc"; > + assigned-clocks = <&cru SCLK_NANDC>; > + assigned-clock-rates = <150000000>; > + pinctrl-names = "default"; > + pinctrl-0 = <&flash_ale &flash_bus8 &flash_cle &flash_cs0 > + &flash_rdn &flash_rdy &flash_wrn &flash_dqs>; > power-domains = <&power PX30_PD_MMC_NAND>; > status = "disabled"; > }; > > + gpu_opp_table: opp-table-1 { > + compatible = "operating-points-v2"; > + > + opp-200000000 { > + opp-hz = /bits/ 64 <200000000>; > + opp-microvolt = <950000>; > + }; > + opp-300000000 { > + opp-hz = /bits/ 64 <300000000>; > + opp-microvolt = <975000>; > + }; > + opp-400000000 { > + opp-hz = /bits/ 64 <400000000>; > + opp-microvolt = <1050000>; > + }; > + opp-480000000 { > + opp-hz = /bits/ 64 <480000000>; > + opp-microvolt = <1125000>; > + }; > + }; > + > gpu: gpu@ff400000 { > compatible = "rockchip,px30-mali", "arm,mali-bifrost"; > reg = <0x0 0xff400000 0x0 0x4000>; > @@ -977,9 +1045,32 @@ > clocks = <&cru SCLK_GPU>; > #cooling-cells = <2>; > power-domains = <&power PX30_PD_GPU>; > + operating-points-v2 = <&gpu_opp_table>; > status = "disabled"; > }; > > + vpu: video-codec@ff442000 { > + compatible = "rockchip,px30-vpu"; > + reg = <0x0 0xff442000 0x0 0x800>; > + interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>; > + interrupt-names = "vepu", "vdpu"; > + clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>; > + clock-names = "aclk", "hclk"; > + iommus = <&vpu_mmu>; > + power-domains = <&power PX30_PD_VPU>; > + }; > + > + vpu_mmu: iommu@ff442800 { > + compatible = "rockchip,iommu"; > + reg = <0x0 0xff442800 0x0 0x100>; > + interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>; > + clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>; > + clock-names = "aclk", "iface"; > + #iommu-cells = <0>; > + power-domains = <&power PX30_PD_VPU>; > + }; > + > dsi: dsi@ff450000 { > compatible = "rockchip,px30-mipi-dsi"; > reg = <0x0 0xff450000 0x0 0x10000>; > @@ -1029,7 +1120,6 @@ > reset-names = "axi", "ahb", "dclk"; > iommus = <&vopb_mmu>; > power-domains = <&power PX30_PD_VO>; > - rockchip,grf = <&grf>; > status = "disabled"; > > vopb_out: port { > @@ -1052,7 +1142,6 @@ > compatible = "rockchip,iommu"; > reg = <0x0 0xff460f00 0x0 0x100>; > interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>; > - interrupt-names = "vopb_mmu"; > clocks = <&cru ACLK_VOPB>, <&cru HCLK_VOPB>; > clock-names = "aclk", "iface"; > power-domains = <&power PX30_PD_VO>; > @@ -1071,7 +1160,6 @@ > reset-names = "axi", "ahb", "dclk"; > iommus = <&vopl_mmu>; > power-domains = <&power PX30_PD_VO>; > - rockchip,grf = <&grf>; > status = "disabled"; > > vopl_out: port { > @@ -1093,8 +1181,7 @@ > vopl_mmu: iommu@ff470f00 { > compatible = "rockchip,iommu"; > reg = <0x0 0xff470f00 0x0 0x100>; > - interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>; > - interrupt-names = "vopl_mmu"; > + interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>; > clocks = <&cru ACLK_VOPL>, <&cru HCLK_VOPL>; > clock-names = "aclk", "iface"; > power-domains = <&power PX30_PD_VO>; > @@ -1102,103 +1189,144 @@ > status = "disabled"; > }; > > + isp: isp@ff4a0000 { > + compatible = "rockchip,px30-cif-isp"; /*rk3326-rkisp1*/ > + reg = <0x0 0xff4a0000 0x0 0x8000>; > + interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; > + interrupt-names = "isp", "mi", "mipi"; > + clocks = <&cru SCLK_ISP>, > + <&cru ACLK_ISP>, > + <&cru HCLK_ISP>, > + <&cru PCLK_ISP>; > + clock-names = "isp", "aclk", "hclk", "pclk"; > + iommus = <&isp_mmu>; > + phys = <&csi_dphy>; > + phy-names = "dphy"; > + power-domains = <&power PX30_PD_VI>; > + status = "disabled"; > + > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > + > + port@0 { > + reg = <0>; > + #address-cells = <1>; > + #size-cells = <0>; > + }; > + }; > + }; > + > + isp_mmu: iommu@ff4a8000 { > + compatible = "rockchip,iommu"; > + reg = <0x0 0xff4a8000 0x0 0x100>; > + interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>; > + clocks = <&cru ACLK_ISP>, <&cru HCLK_ISP>; > + clock-names = "aclk", "iface"; > + power-domains = <&power PX30_PD_VI>; > + rockchip,disable-mmu-reset; > + #iommu-cells = <0>; > + }; > + > qos_gmac: qos@ff518000 { > - compatible = "syscon"; > + compatible = "rockchip,px30-qos", "syscon"; > reg = <0x0 0xff518000 0x0 0x20>; > }; > > qos_gpu: qos@ff520000 { > - compatible = "syscon"; > + compatible = "rockchip,px30-qos", "syscon"; > reg = <0x0 0xff520000 0x0 0x20>; > }; > > qos_sdmmc: qos@ff52c000 { > - compatible = "syscon"; > + compatible = "rockchip,px30-qos", "syscon"; > reg = <0x0 0xff52c000 0x0 0x20>; > }; > > qos_emmc: qos@ff538000 { > - compatible = "syscon"; > + compatible = "rockchip,px30-qos", "syscon"; > reg = <0x0 0xff538000 0x0 0x20>; > }; > > qos_nand: qos@ff538080 { > - compatible = "syscon"; > + compatible = "rockchip,px30-qos", "syscon"; > reg = <0x0 0xff538080 0x0 0x20>; > }; > > qos_sdio: qos@ff538100 { > - compatible = "syscon"; > + compatible = "rockchip,px30-qos", "syscon"; > reg = <0x0 0xff538100 0x0 0x20>; > }; > > qos_sfc: qos@ff538180 { > - compatible = "syscon"; > + compatible = "rockchip,px30-qos", "syscon"; > reg = <0x0 0xff538180 0x0 0x20>; > }; > > qos_usb_host: qos@ff540000 { > - compatible = "syscon"; > + compatible = "rockchip,px30-qos", "syscon"; > reg = <0x0 0xff540000 0x0 0x20>; > }; > > qos_usb_otg: qos@ff540080 { > - compatible = "syscon"; > + compatible = "rockchip,px30-qos", "syscon"; > reg = <0x0 0xff540080 0x0 0x20>; > }; > > qos_isp_128: qos@ff548000 { > - compatible = "syscon"; > + compatible = "rockchip,px30-qos", "syscon"; > reg = <0x0 0xff548000 0x0 0x20>; > }; > > qos_isp_rd: qos@ff548080 { > - compatible = "syscon"; > + compatible = "rockchip,px30-qos", "syscon"; > reg = <0x0 0xff548080 0x0 0x20>; > }; > > qos_isp_wr: qos@ff548100 { > - compatible = "syscon"; > + compatible = "rockchip,px30-qos", "syscon"; > reg = <0x0 0xff548100 0x0 0x20>; > }; > > qos_isp_m1: qos@ff548180 { > - compatible = "syscon"; > + compatible = "rockchip,px30-qos", "syscon"; > reg = <0x0 0xff548180 0x0 0x20>; > }; > > qos_vip: qos@ff548200 { > - compatible = "syscon"; > + compatible = "rockchip,px30-qos", "syscon"; > reg = <0x0 0xff548200 0x0 0x20>; > }; > > qos_rga_rd: qos@ff550000 { > - compatible = "syscon"; > + compatible = "rockchip,px30-qos", "syscon"; > reg = <0x0 0xff550000 0x0 0x20>; > }; > > qos_rga_wr: qos@ff550080 { > - compatible = "syscon"; > + compatible = "rockchip,px30-qos", "syscon"; > reg = <0x0 0xff550080 0x0 0x20>; > }; > > qos_vop_m0: qos@ff550100 { > - compatible = "syscon"; > + compatible = "rockchip,px30-qos", "syscon"; > reg = <0x0 0xff550100 0x0 0x20>; > }; > > qos_vop_m1: qos@ff550180 { > - compatible = "syscon"; > + compatible = "rockchip,px30-qos", "syscon"; > reg = <0x0 0xff550180 0x0 0x20>; > }; > > qos_vpu: qos@ff558000 { > - compatible = "syscon"; > + compatible = "rockchip,px30-qos", "syscon"; > reg = <0x0 0xff558000 0x0 0x20>; > }; > > qos_vpu_r128: qos@ff558080 { > - compatible = "syscon"; > + compatible = "rockchip,px30-qos", "syscon"; > reg = <0x0 0xff558080 0x0 0x20>; > }; > > @@ -1210,7 +1338,7 @@ > #size-cells = <2>; > ranges; > > - gpio0: gpio0@ff040000 { > + gpio0: gpio@ff040000 { > compatible = "rockchip,gpio-bank"; > reg = <0x0 0xff040000 0x0 0x100>; > interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; > @@ -1222,7 +1350,7 @@ > #interrupt-cells = <2>; > }; > > - gpio1: gpio1@ff250000 { > + gpio1: gpio@ff250000 { > compatible = "rockchip,gpio-bank"; > reg = <0x0 0xff250000 0x0 0x100>; > interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; > @@ -1234,7 +1362,7 @@ > #interrupt-cells = <2>; > }; > > - gpio2: gpio2@ff260000 { > + gpio2: gpio@ff260000 { > compatible = "rockchip,gpio-bank"; > reg = <0x0 0xff260000 0x0 0x100>; > interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; > @@ -1246,7 +1374,7 @@ > #interrupt-cells = <2>; > }; > > - gpio3: gpio3@ff270000 { > + gpio3: gpio@ff270000 { > compatible = "rockchip,gpio-bank"; > reg = <0x0 0xff270000 0x0 0x100>; > interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; > @@ -1370,7 +1498,7 @@ > }; > > tsadc { > - tsadc_otp_gpio: tsadc-otp-gpio { > + tsadc_otp_pin: tsadc-otp-pin { > rockchip,pins = > <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>; > }; > @@ -1933,7 +2061,7 @@ > }; > }; > > - serial_flash { > + sfc { > sfc_bus4: sfc-bus4 { > rockchip,pins = > <1 RK_PA0 3 &pcfg_pull_none>, > diff --git a/arch/arm/dts/rk3326-odroid-go2-u-boot.dtsi b/arch/arm/dts/rk3326-odroid-go2-u-boot.dtsi > index 63d87e16e1..87f277f78e 100644 > --- a/arch/arm/dts/rk3326-odroid-go2-u-boot.dtsi > +++ b/arch/arm/dts/rk3326-odroid-go2-u-boot.dtsi > @@ -82,7 +82,7 @@ > u-boot,dm-pre-reloc; > }; > > -&{/sfc@ff3a0000/flash@0} { > +&{/spi@ff3a0000/flash@0} { > u-boot,dm-pre-reloc; > }; > > diff --git a/arch/arm/dts/rk3326-odroid-go2.dts b/arch/arm/dts/rk3326-odroid-go2.dts > index 4e3dceecbe..ea0695b51e 100644 > --- a/arch/arm/dts/rk3326-odroid-go2.dts > +++ b/arch/arm/dts/rk3326-odroid-go2.dts > @@ -14,14 +14,12 @@ > model = "ODROID-GO Advance"; > compatible = "hardkernel,rk3326-odroid-go2", "rockchip,rk3326"; > > - chosen { > - stdout-path = "serial2:115200n8"; > + aliases { > + mmc0 = &sdmmc; > }; > > - backlight: backlight { > - compatible = "pwm-backlight"; > - power-supply = <&vcc_bl>; > - pwms = <&pwm1 0 25000 0>; > + chosen { > + stdout-path = "serial2:115200n8"; > }; > > adc-joystick { > @@ -33,21 +31,27 @@ > > axis@0 { > reg = <0>; > - abs-range = <172 772>; > - abs-fuzz = <10>; > abs-flat = <10>; > + abs-fuzz = <10>; > + abs-range = <172 772>; > linux,code = <ABS_X>; > }; > > axis@1 { > reg = <1>; > - abs-range = <278 815>; > - abs-fuzz = <10>; > abs-flat = <10>; > + abs-fuzz = <10>; > + abs-range = <278 815>; > linux,code = <ABS_Y>; > }; > }; > > + backlight: backlight { > + compatible = "pwm-backlight"; > + power-supply = <&vcc_bl>; > + pwms = <&pwm1 0 25000 0>; > + }; > + > gpio-keys { > compatible = "gpio-keys"; > pinctrl-names = "default"; > @@ -163,25 +167,26 @@ > > rk817-sound { > compatible = "simple-audio-card"; > + simple-audio-card,name = "Analog"; > simple-audio-card,format = "i2s"; > - simple-audio-card,name = "rockchip,rk817-codec"; > + simple-audio-card,hp-det-gpio = <&gpio2 RK_PC6 GPIO_ACTIVE_HIGH>; > simple-audio-card,mclk-fs = <256>; > simple-audio-card,widgets = > "Microphone", "Mic Jack", > - "Headphone", "Headphone Jack"; > + "Headphone", "Headphones", > + "Speaker", "Speaker"; > simple-audio-card,routing = > - "MIC_IN", "Mic Jack", > - "Headphone Jack", "HPOL", > - "Headphone Jack", "HPOR"; > - simple-audio-card,hp-det-gpio = <&gpio2 RK_PC6 GPIO_ACTIVE_LOW>; > - simple-audio-card,codec-hp-det = <1>; > + "MICL", "Mic Jack", > + "Headphones", "HPOL", > + "Headphones", "HPOR", > + "Speaker", "SPKO"; > > - simple-audio-card,cpu { > - sound-dai = <&i2s1_2ch>; > + simple-audio-card,codec { > + sound-dai = <&rk817>; > }; > > - simple-audio-card,codec { > - sound-dai = <&rk817_codec>; > + simple-audio-card,cpu { > + sound-dai = <&i2s1_2ch>; > }; > }; > > @@ -202,7 +207,8 @@ > gpio = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>; > enable-active-high; > regulator-always-on; > - vin-supply = <&vccsys>; > + regulator-boot-on; > + vin-supply = <&usb_midu>; > }; > }; > > @@ -259,6 +265,7 @@ > backlight = <&backlight>; > iovcc-supply = <&vcc_lcd>; > reset-gpios = <&gpio3 RK_PC0 GPIO_ACTIVE_LOW>; > + rotation = <270>; > vdd-supply = <&vcc_lcd>; > > port { > @@ -289,16 +296,14 @@ > reg = <0x20>; > interrupt-parent = <&gpio0>; > interrupts = <RK_PB2 IRQ_TYPE_LEVEL_LOW>; > - pinctrl-names = "default", "pmic-sleep", > - "pmic-power-off", "pmic-reset"; > - pinctrl-0 = <&pmic_int>; > - pinctrl-1 = <&soc_slppin_slp>, <&rk817_slppin_slp>; > - pinctrl-2 = <&soc_slppin_gpio>, <&rk817_slppin_pwrdn>; > - pinctrl-3 = <&soc_slppin_rst>, <&rk817_slppin_rst>; > - rockchip,system-power-controller; > + clock-output-names = "rk808-clkout1", "xin32k"; > + clock-names = "mclk"; > + clocks = <&cru SCLK_I2S1_OUT>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pmic_int>, <&i2s1_2ch_mclk>; > wakeup-source; > #clock-cells = <1>; > - clock-output-names = "rk808-clkout1", "xin32k"; > + #sound-dai-cells = <0>; > > vcc1-supply = <&vccsys>; > vcc2-supply = <&vccsys>; > @@ -307,53 +312,7 @@ > vcc5-supply = <&vccsys>; > vcc6-supply = <&vccsys>; > vcc7-supply = <&vccsys>; > - > - pinctrl_rk8xx: pinctrl_rk8xx { > - gpio-controller; > - #gpio-cells = <2>; > - > - rk817_ts_gpio1: rk817_ts_gpio1 { > - pins = "gpio_ts"; > - function = "pin_fun1"; > - /* output-low; */ > - /* input-enable; */ > - }; > - > - rk817_gt_gpio2: rk817_gt_gpio2 { > - pins = "gpio_gt"; > - function = "pin_fun1"; > - }; > - > - rk817_pin_ts: rk817_pin_ts { > - pins = "gpio_ts"; > - function = "pin_fun0"; > - }; > - > - rk817_pin_gt: rk817_pin_gt { > - pins = "gpio_gt"; > - function = "pin_fun0"; > - }; > - > - rk817_slppin_null: rk817_slppin_null { > - pins = "gpio_slp"; > - function = "pin_fun0"; > - }; > - > - rk817_slppin_slp: rk817_slppin_slp { > - pins = "gpio_slp"; > - function = "pin_fun1"; > - }; > - > - rk817_slppin_pwrdn: rk817_slppin_pwrdn { > - pins = "gpio_slp"; > - function = "pin_fun2"; > - }; > - > - rk817_slppin_rst: rk817_slppin_rst { > - pins = "gpio_slp"; > - function = "pin_fun3"; > - }; > - }; > + vcc8-supply = <&vccsys>; > > regulators { > vdd_logic: DCDC_REG1 { > @@ -503,66 +462,18 @@ > regulator-suspend-microvolt = <3000000>; > }; > }; > - }; > > - battery { > - compatible = "rk817,battery"; > - ocv_table = <3500 3625 3685 3697 3718 3735 3748 > - 3760 3774 3788 3802 3816 3834 3853 > - 3877 3908 3946 3975 4018 4071 4106>; > - > - /* KPL605475 Battery Spec */ > - /* > - Capacity : 3.7V 3000mA > - Normal Voltage = 3.7V > - Cut-Off Voltage : 3.1V > - Internal Impedance : 180 mOhm > - Charging Voltage : 4.2V > - Charging Voltage Max : 4.25V > - Sample resister : 10 mohm > - */ > - design_capacity = <3000>; > - design_qmax = <3000>; > - bat_res = <180>; > - sleep_enter_current = <300>; > - sleep_exit_current = <300>; > - sleep_filter_current = <100>; > - power_off_thresd = <3500>; > - zero_algorithm_vol = <3700>; > - max_soc_offset = <60>; > - monitor_sec = <5>; > - virtual_power = <0>; > - sample_res = <10>; > - }; > - > - charger { > - compatible = "rk817,charger"; > - min_input_voltage = <4500>; > - max_input_current = <1500>; > - max_chrg_current = <2000>; > - max_chrg_voltage = <4200>; > - chrg_term_mode = <0>; > - chrg_finish_cur = <300>; > - virtual_power = <0>; > - sample_res = <10>; > - > - /* P.C.B rev0.2 DC Detect & Charger Status LED GPIO */ > - dc_det_gpio = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>; > - chg_led_gpio = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>; > - > - extcon = <&u2phy>; > + usb_midu: BOOST { > + regulator-name = "usb_midu"; > + regulator-min-microvolt = <5000000>; > + regulator-max-microvolt = <5400000>; > + regulator-always-on; > + regulator-boot-on; > + }; > }; > > rk817_codec: codec { > - #sound-dai-cells = <0>; > - compatible = "rockchip,rk817-codec"; > - clocks = <&cru SCLK_I2S1_OUT>; > - clock-names = "mclk"; > - pinctrl-names = "default"; > - pinctrl-0 = <&i2s1_2ch_mclk>; > - hp-volume = <20>; > - spk-volume = <3>; > - status = "okay"; > + rockchip,mic-in-differential; > }; > }; > }; > @@ -604,7 +515,6 @@ > }; > > &sdmmc { > - bus-width = <4>; > cap-sd-highspeed; > card-detect-delay = <200>; > cd-gpios = <&gpio0 RK_PA3 GPIO_ACTIVE_LOW>; /*[> CD GPIO <]*/ > diff --git a/configs/px30-core-ctouch2-px30_defconfig b/configs/px30-core-ctouch2-px30_defconfig > index a5dbbd7453..7d1920458e 100644 > --- a/configs/px30-core-ctouch2-px30_defconfig > +++ b/configs/px30-core-ctouch2-px30_defconfig > @@ -6,7 +6,7 @@ CONFIG_SYS_MALLOC_F_LEN=0x2000 > CONFIG_SPL_LIBCOMMON_SUPPORT=y > CONFIG_SPL_LIBGENERIC_SUPPORT=y > CONFIG_NR_DRAM_BANKS=1 > -CONFIG_DEFAULT_DEVICE_TREE="px30-px30-core-ctouch2" > +CONFIG_DEFAULT_DEVICE_TREE="px30-engicam-px30-core-ctouch2" > CONFIG_SPL_TEXT_BASE=0x00000000 > CONFIG_ROCKCHIP_PX30=y > CONFIG_TARGET_PX30_CORE=y > @@ -23,7 +23,7 @@ CONFIG_SYS_LOAD_ADDR=0x800800 > CONFIG_FIT=y > CONFIG_FIT_VERBOSE=y > CONFIG_SPL_LOAD_FIT=y > -CONFIG_DEFAULT_FDT_FILE="rockchip/px30-px30-core-ctouch2.dtb" > +CONFIG_DEFAULT_FDT_FILE="rockchip/px30-engicam-px30-core-ctouch2.dtb" > # CONFIG_CONSOLE_MUX is not set > # CONFIG_DISPLAY_CPUINFO is not set > CONFIG_DISPLAY_BOARDINFO_LATE=y > diff --git a/configs/px30-core-edimm2.2-px30_defconfig b/configs/px30-core-edimm2.2-px30_defconfig > index 1e138d63ed..84c57337ce 100644 > --- a/configs/px30-core-edimm2.2-px30_defconfig > +++ b/configs/px30-core-edimm2.2-px30_defconfig > @@ -6,7 +6,7 @@ CONFIG_SYS_MALLOC_F_LEN=0x2000 > CONFIG_SPL_LIBCOMMON_SUPPORT=y > CONFIG_SPL_LIBGENERIC_SUPPORT=y > CONFIG_NR_DRAM_BANKS=1 > -CONFIG_DEFAULT_DEVICE_TREE="px30-px30-core-edimm2.2" > +CONFIG_DEFAULT_DEVICE_TREE="px30-engicam-px30-core-edimm2.2" > CONFIG_SPL_TEXT_BASE=0x00000000 > CONFIG_ROCKCHIP_PX30=y > CONFIG_TARGET_PX30_CORE=y > @@ -23,7 +23,7 @@ CONFIG_SYS_LOAD_ADDR=0x800800 > CONFIG_FIT=y > CONFIG_FIT_VERBOSE=y > CONFIG_SPL_LOAD_FIT=y > -CONFIG_DEFAULT_FDT_FILE="rockchip/px30-px30-core-edimm2.2.dtb" > +CONFIG_DEFAULT_FDT_FILE="rockchip/px30-engicam-px30-core-edimm2.2.dtb" > # CONFIG_CONSOLE_MUX is not set > # CONFIG_DISPLAY_CPUINFO is not set > CONFIG_DISPLAY_BOARDINFO_LATE=y
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile index cc34da7bd8..57a33d0bc4 100644 --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile @@ -78,8 +78,8 @@ dtb-$(CONFIG_MACH_S700) += \ dtb-$(CONFIG_ROCKCHIP_PX30) += \ px30-evb.dtb \ px30-firefly.dtb \ - px30-px30-core-ctouch2.dtb \ - px30-px30-core-edimm2.2.dtb \ + px30-engicam-px30-core-ctouch2.dtb \ + px30-engicam-px30-core-edimm2.2.dtb \ rk3326-odroid-go2.dtb dtb-$(CONFIG_ROCKCHIP_RK3036) += \ diff --git a/arch/arm/dts/px30-engicam-common.dtsi b/arch/arm/dts/px30-engicam-common.dtsi index bd5bde989e..3429e124d9 100644 --- a/arch/arm/dts/px30-engicam-common.dtsi +++ b/arch/arm/dts/px30-engicam-common.dtsi @@ -6,6 +6,11 @@ */ / { + aliases { + mmc1 = &sdmmc; + mmc2 = &sdio; + }; + vcc5v0_sys: vcc5v0-sys { compatible = "regulator-fixed"; regulator-name = "vcc5v0_sys"; /* +5V */ @@ -14,6 +19,63 @@ regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; }; + + sdio_pwrseq: sdio-pwrseq { + compatible = "mmc-pwrseq-simple"; + clocks = <&xin32k>; + clock-names = "ext_clock"; + post-power-on-delay-ms = <80>; + pinctrl-names = "default"; + pinctrl-0 = <&wifi_enable_h>; + }; + + vcc3v3_btreg: vcc3v3-btreg { + compatible = "regulator-gpio"; + enable-active-high; + pinctrl-names = "default"; + pinctrl-0 = <&bt_enable_h>; + regulator-name = "btreg-gpio-supply"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + states = <3300000 0x0>; + }; + + vcc3v3_rf_aux_mod: vcc3v3-rf-aux-mod { + compatible = "regulator-fixed"; + regulator-name = "vcc3v3_rf_aux_mod"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + regulator-boot-on; + vin-supply = <&vcc5v0_sys>; + }; + + xin32k: xin32k { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <32768>; + clock-output-names = "xin32k"; + }; +}; + +&sdio { + #address-cells = <1>; + #size-cells = <0>; + bus-width = <4>; + clock-frequency = <50000000>; + cap-sdio-irq; + cap-sd-highspeed; + keep-power-in-suspend; + mmc-pwrseq = <&sdio_pwrseq>; + non-removable; + sd-uhs-sdr104; + status = "okay"; + + brcmf: wifi@1 { + compatible = "brcm,bcm4329-fmac"; + reg = <1>; + }; }; &gmac { @@ -25,6 +87,10 @@ status = "okay"; }; +&pwm0 { + status = "okay"; +}; + &sdmmc { cap-sd-highspeed; card-detect-delay = <800>; @@ -33,7 +99,31 @@ status = "okay"; }; +&u2phy { + status = "okay"; + + u2phy_host: host-port { + status = "okay"; + }; + + u2phy_otg: otg-port { + status = "okay"; + }; +}; + &uart2 { pinctrl-0 = <&uart2m1_xfer>; status = "okay"; }; + +&usb20_otg { + status = "okay"; +}; + +&usb_host0_ehci { + status = "okay"; +}; + +&usb_host0_ohci { + status = "okay"; +}; diff --git a/arch/arm/dts/px30-engicam-ctouch2.dtsi b/arch/arm/dts/px30-engicam-ctouch2.dtsi index 58425b1e55..bf10a3d29f 100644 --- a/arch/arm/dts/px30-engicam-ctouch2.dtsi +++ b/arch/arm/dts/px30-engicam-ctouch2.dtsi @@ -6,3 +6,25 @@ */ #include "px30-engicam-common.dtsi" + +&pinctrl { + bt { + bt_enable_h: bt-enable-h { + rockchip,pins = <1 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + sdio-pwrseq { + wifi_enable_h: wifi-enable-h { + rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; +}; + +&sdio_pwrseq { + reset-gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>; +}; + +&vcc3v3_btreg { + enable-gpio = <&gpio1 RK_PC3 GPIO_ACTIVE_HIGH>; +}; diff --git a/arch/arm/dts/px30-engicam-edimm2.2.dtsi b/arch/arm/dts/px30-engicam-edimm2.2.dtsi index cb00988953..449b8eb645 100644 --- a/arch/arm/dts/px30-engicam-edimm2.2.dtsi +++ b/arch/arm/dts/px30-engicam-edimm2.2.dtsi @@ -5,3 +5,62 @@ */ #include "px30-engicam-common.dtsi" + +/ { + backlight: backlight { + compatible = "pwm-backlight"; + pwms = <&pwm0 0 25000 0>; + }; + + panel { + compatible = "yes-optoelectronics,ytc700tlag-05-201c"; + backlight = <&backlight>; + data-mapping = "vesa-24"; + power-supply = <&vcc3v3_lcd>; + + port { + panel_in_lvds: endpoint { + remote-endpoint = <&lvds_out_panel>; + }; + }; + }; +}; + +&display_subsystem { + status = "okay"; +}; + +&dsi_dphy { + status = "okay"; +}; + +/* LVDS_B(secondary) */ +&lvds { + status = "okay"; + + ports { + port@1 { + reg = <1>; + + lvds_out_panel: endpoint { + remote-endpoint = <&panel_in_lvds>; + }; + }; + }; +}; + +&vopb { + status = "okay"; +}; + +&vopb_mmu { + status = "okay"; +}; + +&vopl { + status = "okay"; +}; + +&vopl_mmu { + status = "okay"; +}; diff --git a/arch/arm/dts/px30-engicam-px30-core-ctouch2-of10.dts b/arch/arm/dts/px30-engicam-px30-core-ctouch2-of10.dts new file mode 100644 index 0000000000..47aa30505a --- /dev/null +++ b/arch/arm/dts/px30-engicam-px30-core-ctouch2-of10.dts @@ -0,0 +1,77 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (c) 2020 Fuzhou Rockchip Electronics Co., Ltd + * Copyright (c) 2020 Engicam srl + * Copyright (c) 2020 Amarula Solutions(India) + */ + +/dts-v1/; +#include "px30.dtsi" +#include "px30-engicam-ctouch2.dtsi" +#include "px30-engicam-px30-core.dtsi" + +/ { + model = "Engicam PX30.Core C.TOUCH 2.0 10.1\" Open Frame"; + compatible = "engicam,px30-core-ctouch2-of10", "engicam,px30-core", + "rockchip,px30"; + + backlight: backlight { + compatible = "pwm-backlight"; + pwms = <&pwm0 0 25000 0>; + }; + + chosen { + stdout-path = "serial2:115200n8"; + }; + + panel { + compatible = "ampire,am-1280800n3tzqw-t00h"; + backlight = <&backlight>; + power-supply = <&vcc3v3_lcd>; + data-mapping = "vesa-24"; + + port { + panel_in_lvds: endpoint { + remote-endpoint = <&lvds_out_panel>; + }; + }; + }; +}; + +&display_subsystem { + status = "okay"; +}; + +&dsi_dphy { + status = "okay"; +}; + +&lvds { + status = "okay"; + + ports { + port@1 { + reg = <1>; + + lvds_out_panel: endpoint { + remote-endpoint = <&panel_in_lvds>; + }; + }; + }; +}; + +&vopb { + status = "okay"; +}; + +&vopb_mmu { + status = "okay"; +}; + +&vopl { + status = "okay"; +}; + +&vopl_mmu { + status = "okay"; +}; diff --git a/arch/arm/dts/px30-px30-core-ctouch2.dts b/arch/arm/dts/px30-engicam-px30-core-ctouch2.dts similarity index 80% rename from arch/arm/dts/px30-px30-core-ctouch2.dts rename to arch/arm/dts/px30-engicam-px30-core-ctouch2.dts index 2da0128188..5a0ecb8fae 100644 --- a/arch/arm/dts/px30-px30-core-ctouch2.dts +++ b/arch/arm/dts/px30-engicam-px30-core-ctouch2.dts @@ -9,11 +9,11 @@ /dts-v1/; #include "px30.dtsi" #include "px30-engicam-ctouch2.dtsi" -#include "px30-px30-core.dtsi" +#include "px30-engicam-px30-core.dtsi" / { model = "Engicam PX30.Core C.TOUCH 2.0"; - compatible = "engicam,px30-core-ctouch2", "engicam,px30-px30-core", + compatible = "engicam,px30-core-ctouch2", "engicam,px30-core", "rockchip,px30"; chosen { diff --git a/arch/arm/dts/px30-engicam-px30-core-edimm2.2.dts b/arch/arm/dts/px30-engicam-px30-core-edimm2.2.dts new file mode 100644 index 0000000000..d759478e1c --- /dev/null +++ b/arch/arm/dts/px30-engicam-px30-core-edimm2.2.dts @@ -0,0 +1,43 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (c) 2020 Fuzhou Rockchip Electronics Co., Ltd + * Copyright (c) 2020 Engicam srl + * Copyright (c) 2020 Amarula Solutions(India) + */ + +/dts-v1/; +#include "px30.dtsi" +#include "px30-engicam-edimm2.2.dtsi" +#include "px30-engicam-px30-core.dtsi" + +/ { + model = "Engicam PX30.Core EDIMM2.2 Starter Kit"; + compatible = "engicam,px30-core-edimm2.2", "engicam,px30-core", + "rockchip,px30"; + + chosen { + stdout-path = "serial2:115200n8"; + }; +}; + +&pinctrl { + bt { + bt_enable_h: bt-enable-h { + rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + sdio-pwrseq { + wifi_enable_h: wifi-enable-h { + rockchip,pins = <1 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; +}; + +&sdio_pwrseq { + reset-gpios = <&gpio1 RK_PC3 GPIO_ACTIVE_LOW>; +}; + +&vcc3v3_btreg { + enable-gpio = <&gpio1 RK_PC2 GPIO_ACTIVE_HIGH>; +}; diff --git a/arch/arm/dts/px30-px30-core.dtsi b/arch/arm/dts/px30-engicam-px30-core.dtsi similarity index 96% rename from arch/arm/dts/px30-px30-core.dtsi rename to arch/arm/dts/px30-engicam-px30-core.dtsi index 16e6cf28a4..7249871530 100644 --- a/arch/arm/dts/px30-px30-core.dtsi +++ b/arch/arm/dts/px30-engicam-px30-core.dtsi @@ -10,7 +10,11 @@ #include <dt-bindings/pinctrl/rockchip.h> / { - compatible = "engicam,px30-px30-core", "rockchip,px30"; + compatible = "engicam,px30-core", "rockchip,px30"; + + aliases { + mmc0 = &emmc; + }; }; &cpu0 { @@ -192,6 +196,11 @@ }; }; + vcc3v3_lcd: SWITCH_REG1 { + regulator-boot-on; + regulator-name = "vcc3v3_lcd"; + }; + vcc5v0_host: SWITCH_REG2 { regulator-name = "vcc5v0_host"; regulator-always-on; diff --git a/arch/arm/dts/px30-evb.dts b/arch/arm/dts/px30-evb.dts index 4134e2ee13..848bc39cf8 100644 --- a/arch/arm/dts/px30-evb.dts +++ b/arch/arm/dts/px30-evb.dts @@ -13,8 +13,14 @@ model = "Rockchip PX30 EVB"; compatible = "rockchip,px30-evb", "rockchip,px30"; + aliases { + mmc0 = &sdmmc; + mmc1 = &sdio; + mmc2 = &emmc; + }; + chosen { - stdout-path = "serial2:115200n8"; + stdout-path = "serial5:115200n8"; }; adc-keys { @@ -108,6 +114,10 @@ cpu-supply = <&vdd_arm>; }; +&csi_dphy { + status = "okay"; +}; + &display_subsystem { status = "okay"; }; @@ -126,22 +136,15 @@ }; panel@0 { - compatible = "sitronix,st7703"; + compatible = "xinpeng,xpp055c272"; reg = <0>; backlight = <&backlight>; iovcc-supply = <&vcc_1v8>; vci-supply = <&vcc3v3_lcd>; - ports { - #address-cells = <1>; - #size-cells = <0>; - - port@0 { - reg = <0>; - - mipi_in_panel: endpoint { - remote-endpoint = <&mipi_out_panel>; - }; + port { + mipi_in_panel: endpoint { + remote-endpoint = <&mipi_out_panel>; }; }; }; @@ -152,7 +155,6 @@ }; &emmc { - bus-width = <8>; cap-mmc-highspeed; mmc-hs200-1_8v; non-removable; @@ -171,6 +173,11 @@ status = "okay"; }; +&gpu { + mali-supply = <&vdd_log>; + status = "okay"; +}; + &i2c0 { status = "okay"; @@ -388,6 +395,73 @@ }; }; +&i2c1 { + status = "okay"; + + sensor@d { + compatible = "asahi-kasei,ak8963"; + reg = <0x0d>; + gpios = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>; + vdd-supply = <&vcc3v0_pmu>; + mount-matrix = "1", /* x0 */ + "0", /* y0 */ + "0", /* z0 */ + "0", /* x1 */ + "1", /* y1 */ + "0", /* z1 */ + "0", /* x2 */ + "0", /* y2 */ + "1"; /* z2 */ + }; + + touchscreen@14 { + compatible = "goodix,gt1151"; + reg = <0x14>; + interrupt-parent = <&gpio0>; + interrupts = <RK_PA5 IRQ_TYPE_LEVEL_LOW>; + irq-gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>; + reset-gpios = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>; + VDDIO-supply = <&vcc3v3_lcd>; + }; + + sensor@4c { + compatible = "fsl,mma7660"; + reg = <0x4c>; + interrupt-parent = <&gpio0>; + interrupts = <RK_PB7 IRQ_TYPE_LEVEL_LOW>; + }; +}; + +&i2c2 { + status = "okay"; + + clock-frequency = <100000>; + + /* These are relatively safe rise/fall times; TODO: measure */ + i2c-scl-falling-time-ns = <50>; + i2c-scl-rising-time-ns = <300>; + + ov5695: ov5695@36 { + compatible = "ovti,ov5695"; + reg = <0x36>; + avdd-supply = <&vcc2v8_dvp>; + clocks = <&cru SCLK_CIF_OUT>; + clock-names = "xvclk"; + dvdd-supply = <&vcc1v5_dvp>; + dovdd-supply = <&vcc1v8_dvp>; + pinctrl-names = "default"; + pinctrl-0 = <&cif_clkout_m0>; + reset-gpios = <&gpio2 14 GPIO_ACTIVE_LOW>; + + port { + ucam_out: endpoint { + remote-endpoint = <&mipi_in_ucam>; + data-lanes = <1 2>; + }; + }; + }; +}; + &i2s1_2ch { status = "okay"; }; @@ -403,6 +477,24 @@ vccio6-supply = <&vccio_flash>; }; +&isp { + status = "okay"; + + ports { + port@0 { + mipi_in_ucam: endpoint@0 { + reg = <0>; + data-lanes = <1 2>; + remote-endpoint = <&ucam_out>; + }; + }; + }; +}; + +&isp_mmu { + status = "okay"; +}; + &pinctrl { headphone { hp_det: hp-det { @@ -464,7 +556,6 @@ }; &sdmmc { - bus-width = <4>; cap-mmc-highspeed; cap-sd-highspeed; card-detect-delay = <800>; @@ -474,10 +565,10 @@ sd-uhs-sdr104; vmmc-supply = <&vcc_sd>; vqmmc-supply = <&vccio_sd>; + status = "okay"; }; &sdio { - bus-width = <4>; cap-sd-highspeed; keep-power-in-suspend; non-removable; @@ -486,13 +577,27 @@ status = "okay"; }; -&uart1 { - pinctrl-names = "default"; - pinctrl-0 = <&uart1_xfer &uart1_cts>; +&tsadc { + rockchip,hw-tshut-mode = <1>; + rockchip,hw-tshut-polarity = <1>; status = "okay"; }; -&uart2 { +&u2phy { + status = "okay"; + + u2phy_host: host-port { + status = "okay"; + }; + + u2phy_otg: otg-port { + status = "okay"; + }; +}; + +&uart1 { + pinctrl-names = "default"; + pinctrl-0 = <&uart1_xfer &uart1_cts>; status = "okay"; }; diff --git a/arch/arm/dts/px30-px30-core-edimm2.2.dts b/arch/arm/dts/px30-px30-core-edimm2.2.dts deleted file mode 100644 index c36280ce7f..0000000000 --- a/arch/arm/dts/px30-px30-core-edimm2.2.dts +++ /dev/null @@ -1,21 +0,0 @@ -// SPDX-License-Identifier: (GPL-2.0+ OR MIT) -/* - * Copyright (c) 2020 Fuzhou Rockchip Electronics Co., Ltd - * Copyright (c) 2020 Engicam srl - * Copyright (c) 2020 Amarula Solutions(India) - */ - -/dts-v1/; -#include "px30.dtsi" -#include "px30-engicam-edimm2.2.dtsi" -#include "px30-px30-core.dtsi" - -/ { - model = "Engicam PX30.Core EDIMM2.2 Starter Kit"; - compatible = "engicam,px30-core-edimm2.2", "engicam,px30-px30-core", - "rockchip,px30"; - - chosen { - stdout-path = "serial2:115200n8"; - }; -}; diff --git a/arch/arm/dts/px30-u-boot.dtsi b/arch/arm/dts/px30-u-boot.dtsi index bbed7dcde5..f102b2aef4 100644 --- a/arch/arm/dts/px30-u-boot.dtsi +++ b/arch/arm/dts/px30-u-boot.dtsi @@ -64,10 +64,14 @@ &cru { u-boot,dm-pre-reloc; + /delete-property/ assigned-clocks; + /delete-property/ assigned-clock-rates; }; &pmucru { u-boot,dm-pre-reloc; + /delete-property/ assigned-clocks; + /delete-property/ assigned-clock-rates; }; &saradc { diff --git a/arch/arm/dts/px30.dtsi b/arch/arm/dts/px30.dtsi index ef77b7b997..00f50b05d5 100644 --- a/arch/arm/dts/px30.dtsi +++ b/arch/arm/dts/px30.dtsi @@ -110,7 +110,7 @@ }; }; - cpu0_opp_table: cpu0-opp-table { + cpu0_opp_table: opp-table-0 { compatible = "operating-points-v2"; opp-shared; @@ -143,7 +143,7 @@ }; arm-pmu { - compatible = "arm,cortex-a53-pmu"; + compatible = "arm,cortex-a35-pmu"; interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>, @@ -244,28 +244,31 @@ #size-cells = <0>; /* These power domains are grouped by VD_LOGIC */ - pd_usb@PX30_PD_USB { + power-domain@PX30_PD_USB { reg = <PX30_PD_USB>; clocks = <&cru HCLK_HOST>, <&cru HCLK_OTG>, <&cru SCLK_OTG_ADP>; pm_qos = <&qos_usb_host>, <&qos_usb_otg>; + #power-domain-cells = <0>; }; - pd_sdcard@PX30_PD_SDCARD { + power-domain@PX30_PD_SDCARD { reg = <PX30_PD_SDCARD>; clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>; pm_qos = <&qos_sdmmc>; + #power-domain-cells = <0>; }; - pd_gmac@PX30_PD_GMAC { + power-domain@PX30_PD_GMAC { reg = <PX30_PD_GMAC>; clocks = <&cru ACLK_GMAC>, <&cru PCLK_GMAC>, <&cru SCLK_MAC_REF>, <&cru SCLK_GMAC_RX_TX>; pm_qos = <&qos_gmac>; + #power-domain-cells = <0>; }; - pd_mmc_nand@PX30_PD_MMC_NAND { + power-domain@PX30_PD_MMC_NAND { reg = <PX30_PD_MMC_NAND>; clocks = <&cru HCLK_NANDC>, <&cru HCLK_EMMC>, @@ -277,15 +280,17 @@ <&cru SCLK_SFC>; pm_qos = <&qos_emmc>, <&qos_nand>, <&qos_sdio>, <&qos_sfc>; + #power-domain-cells = <0>; }; - pd_vpu@PX30_PD_VPU { + power-domain@PX30_PD_VPU { reg = <PX30_PD_VPU>; clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>, <&cru SCLK_CORE_VPU>; pm_qos = <&qos_vpu>, <&qos_vpu_r128>; + #power-domain-cells = <0>; }; - pd_vo@PX30_PD_VO { + power-domain@PX30_PD_VO { reg = <PX30_PD_VO>; clocks = <&cru ACLK_RGA>, <&cru ACLK_VOPB>, @@ -300,8 +305,9 @@ <&cru SCLK_VOPB_PWM>; pm_qos = <&qos_rga_rd>, <&qos_rga_wr>, <&qos_vop_m0>, <&qos_vop_m1>; + #power-domain-cells = <0>; }; - pd_vi@PX30_PD_VI { + power-domain@PX30_PD_VI { reg = <PX30_PD_VI>; clocks = <&cru ACLK_CIF>, <&cru ACLK_ISP>, @@ -311,11 +317,13 @@ pm_qos = <&qos_isp_128>, <&qos_isp_rd>, <&qos_isp_wr>, <&qos_isp_m1>, <&qos_vip>; + #power-domain-cells = <0>; }; - pd_gpu@PX30_PD_GPU { + power-domain@PX30_PD_GPU { reg = <PX30_PD_GPU>; clocks = <&cru SCLK_GPU>; pm_qos = <&qos_gpu>; + #power-domain-cells = <0>; }; }; }; @@ -600,7 +608,7 @@ }; wdt: watchdog@ff1e0000 { - compatible = "snps,dw-wdt"; + compatible = "rockchip,px30-wdt", "snps,dw-wdt"; reg = <0x0 0xff1e0000 0x0 0x100>; clocks = <&cru PCLK_WDT_NS>; interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; @@ -703,21 +711,15 @@ clock-names = "pclk", "timer"; }; - amba { - compatible = "simple-bus"; - #address-cells = <2>; - #size-cells = <2>; - ranges; - - dmac: dmac@ff240000 { - compatible = "arm,pl330", "arm,primecell"; - reg = <0x0 0xff240000 0x0 0x4000>; - interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; - clocks = <&cru ACLK_DMAC>; - clock-names = "apb_pclk"; - #dma-cells = <1>; - }; + dmac: dmac@ff240000 { + compatible = "arm,pl330", "arm,primecell"; + reg = <0x0 0xff240000 0x0 0x4000>; + interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; + arm,pl330-periph-burst; + clocks = <&cru ACLK_DMAC>; + clock-names = "apb_pclk"; + #dma-cells = <1>; }; tsadc: tsadc@ff280000 { @@ -733,9 +735,9 @@ rockchip,grf = <&grf>; rockchip,hw-tshut-temp = <120000>; pinctrl-names = "init", "default", "sleep"; - pinctrl-0 = <&tsadc_otp_gpio>; + pinctrl-0 = <&tsadc_otp_pin>; pinctrl-1 = <&tsadc_otp_out>; - pinctrl-2 = <&tsadc_otp_gpio>; + pinctrl-2 = <&tsadc_otp_pin>; #thermal-sensor-cells = <1>; status = "disabled"; }; @@ -784,6 +786,16 @@ rockchip,grf = <&grf>; #clock-cells = <1>; #reset-cells = <1>; + + assigned-clocks = <&cru PLL_NPLL>, + <&cru ACLK_BUS_PRE>, <&cru ACLK_PERI_PRE>, + <&cru HCLK_BUS_PRE>, <&cru HCLK_PERI_PRE>, + <&cru PCLK_BUS_PRE>, <&cru SCLK_GPU>; + + assigned-clock-rates = <1188000000>, + <200000000>, <200000000>, + <150000000>, <150000000>, + <100000000>, <200000000>; }; pmucru: clock-controller@ff2bc000 { @@ -794,6 +806,13 @@ rockchip,grf = <&grf>; #clock-cells = <1>; #reset-cells = <1>; + + assigned-clocks = + <&pmucru PLL_GPLL>, <&pmucru PCLK_PMU_PRE>, + <&pmucru SCLK_WIFI_PMU>; + assigned-clock-rates = + <1200000000>, <100000000>, + <26000000>; }; usb2phy_grf: syscon@ff2c0000 { @@ -803,7 +822,7 @@ #address-cells = <1>; #size-cells = <1>; - u2phy: usb2-phy@100 { + u2phy: usb2phy@100 { compatible = "rockchip,px30-usb2phy"; reg = <0x100 0x20>; clocks = <&pmucru SCLK_USBPHY_REF>; @@ -845,6 +864,19 @@ status = "disabled"; }; + csi_dphy: phy@ff2f0000 { + compatible = "rockchip,px30-csi-dphy"; + reg = <0x0 0xff2f0000 0x0 0x4000>; + clocks = <&cru PCLK_MIPICSIPHY>; + clock-names = "pclk"; + #phy-cells = <0>; + power-domains = <&power PX30_PD_VI>; + resets = <&cru SRST_MIPICSIPHY_P>; + reset-names = "apb"; + rockchip,grf = <&grf>; + status = "disabled"; + }; + usb20_otg: usb@ff300000 { compatible = "rockchip,px30-usb", "rockchip,rk3066-usb", "snps,dwc2"; @@ -856,7 +888,6 @@ g-np-tx-fifo-size = <16>; g-rx-fifo-size = <280>; g-tx-fifo-size = <256 128 128 64 32 16>; - g-use-dma; phys = <&u2phy_otg>; phy-names = "usb2-phy"; power-domains = <&power PX30_PD_USB>; @@ -868,7 +899,6 @@ reg = <0x0 0xff340000 0x0 0x10000>; interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>; clocks = <&cru HCLK_HOST>; - clock-names = "usbhost"; phys = <&u2phy_host>; phy-names = "usb"; power-domains = <&power PX30_PD_USB>; @@ -880,7 +910,6 @@ reg = <0x0 0xff350000 0x0 0x10000>; interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>; clocks = <&cru HCLK_HOST>; - clock-names = "usbhost"; phys = <&u2phy_host>; phy-names = "usb"; power-domains = <&power PX30_PD_USB>; @@ -910,13 +939,14 @@ status = "disabled"; }; - sdmmc: dwmmc@ff370000 { + sdmmc: mmc@ff370000 { compatible = "rockchip,px30-dw-mshc", "rockchip,rk3288-dw-mshc"; reg = <0x0 0xff370000 0x0 0x4000>; interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>; clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>, <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>; - clock-names = "biu", "ciu", "ciu-drv", "ciu-sample"; + clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; + bus-width = <4>; fifo-depth = <0x100>; max-frequency = <150000000>; pinctrl-names = "default"; @@ -925,13 +955,14 @@ status = "disabled"; }; - sdio: dwmmc@ff380000 { + sdio: mmc@ff380000 { compatible = "rockchip,px30-dw-mshc", "rockchip,rk3288-dw-mshc"; reg = <0x0 0xff380000 0x0 0x4000>; interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>; clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>, <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>; - clock-names = "biu", "ciu", "ciu-drv", "ciu-sample"; + clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; + bus-width = <4>; fifo-depth = <0x100>; max-frequency = <150000000>; pinctrl-names = "default"; @@ -940,13 +971,14 @@ status = "disabled"; }; - emmc: dwmmc@ff390000 { + emmc: mmc@ff390000 { compatible = "rockchip,px30-dw-mshc", "rockchip,rk3288-dw-mshc"; reg = <0x0 0xff390000 0x0 0x4000>; interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>; clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>, <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>; - clock-names = "biu", "ciu", "ciu-drv", "ciu-sample"; + clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; + bus-width = <8>; fifo-depth = <0x100>; max-frequency = <150000000>; pinctrl-names = "default"; @@ -955,18 +987,54 @@ status = "disabled"; }; - sfc: sfc@ff3a0000 { + sfc: spi@ff3a0000 { compatible = "rockchip,sfc"; reg = <0x0 0xff3a0000 0x0 0x4000>; interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>; clocks = <&cru SCLK_SFC>, <&cru HCLK_SFC>; clock-names = "clk_sfc", "hclk_sfc"; - pinctrl-names = "default"; pinctrl-0 = <&sfc_clk &sfc_cs0 &sfc_bus4>; + pinctrl-names = "default"; + power-domains = <&power PX30_PD_MMC_NAND>; + status = "disabled"; + }; + + nfc: nand-controller@ff3b0000 { + compatible = "rockchip,px30-nfc"; + reg = <0x0 0xff3b0000 0x0 0x4000>; + interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&cru HCLK_NANDC>, <&cru SCLK_NANDC>; + clock-names = "ahb", "nfc"; + assigned-clocks = <&cru SCLK_NANDC>; + assigned-clock-rates = <150000000>; + pinctrl-names = "default"; + pinctrl-0 = <&flash_ale &flash_bus8 &flash_cle &flash_cs0 + &flash_rdn &flash_rdy &flash_wrn &flash_dqs>; power-domains = <&power PX30_PD_MMC_NAND>; status = "disabled"; }; + gpu_opp_table: opp-table-1 { + compatible = "operating-points-v2"; + + opp-200000000 { + opp-hz = /bits/ 64 <200000000>; + opp-microvolt = <950000>; + }; + opp-300000000 { + opp-hz = /bits/ 64 <300000000>; + opp-microvolt = <975000>; + }; + opp-400000000 { + opp-hz = /bits/ 64 <400000000>; + opp-microvolt = <1050000>; + }; + opp-480000000 { + opp-hz = /bits/ 64 <480000000>; + opp-microvolt = <1125000>; + }; + }; + gpu: gpu@ff400000 { compatible = "rockchip,px30-mali", "arm,mali-bifrost"; reg = <0x0 0xff400000 0x0 0x4000>; @@ -977,9 +1045,32 @@ clocks = <&cru SCLK_GPU>; #cooling-cells = <2>; power-domains = <&power PX30_PD_GPU>; + operating-points-v2 = <&gpu_opp_table>; status = "disabled"; }; + vpu: video-codec@ff442000 { + compatible = "rockchip,px30-vpu"; + reg = <0x0 0xff442000 0x0 0x800>; + interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "vepu", "vdpu"; + clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>; + clock-names = "aclk", "hclk"; + iommus = <&vpu_mmu>; + power-domains = <&power PX30_PD_VPU>; + }; + + vpu_mmu: iommu@ff442800 { + compatible = "rockchip,iommu"; + reg = <0x0 0xff442800 0x0 0x100>; + interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>; + clock-names = "aclk", "iface"; + #iommu-cells = <0>; + power-domains = <&power PX30_PD_VPU>; + }; + dsi: dsi@ff450000 { compatible = "rockchip,px30-mipi-dsi"; reg = <0x0 0xff450000 0x0 0x10000>; @@ -1029,7 +1120,6 @@ reset-names = "axi", "ahb", "dclk"; iommus = <&vopb_mmu>; power-domains = <&power PX30_PD_VO>; - rockchip,grf = <&grf>; status = "disabled"; vopb_out: port { @@ -1052,7 +1142,6 @@ compatible = "rockchip,iommu"; reg = <0x0 0xff460f00 0x0 0x100>; interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>; - interrupt-names = "vopb_mmu"; clocks = <&cru ACLK_VOPB>, <&cru HCLK_VOPB>; clock-names = "aclk", "iface"; power-domains = <&power PX30_PD_VO>; @@ -1071,7 +1160,6 @@ reset-names = "axi", "ahb", "dclk"; iommus = <&vopl_mmu>; power-domains = <&power PX30_PD_VO>; - rockchip,grf = <&grf>; status = "disabled"; vopl_out: port { @@ -1093,8 +1181,7 @@ vopl_mmu: iommu@ff470f00 { compatible = "rockchip,iommu"; reg = <0x0 0xff470f00 0x0 0x100>; - interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>; - interrupt-names = "vopl_mmu"; + interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>; clocks = <&cru ACLK_VOPL>, <&cru HCLK_VOPL>; clock-names = "aclk", "iface"; power-domains = <&power PX30_PD_VO>; @@ -1102,103 +1189,144 @@ status = "disabled"; }; + isp: isp@ff4a0000 { + compatible = "rockchip,px30-cif-isp"; /*rk3326-rkisp1*/ + reg = <0x0 0xff4a0000 0x0 0x8000>; + interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "isp", "mi", "mipi"; + clocks = <&cru SCLK_ISP>, + <&cru ACLK_ISP>, + <&cru HCLK_ISP>, + <&cru PCLK_ISP>; + clock-names = "isp", "aclk", "hclk", "pclk"; + iommus = <&isp_mmu>; + phys = <&csi_dphy>; + phy-names = "dphy"; + power-domains = <&power PX30_PD_VI>; + status = "disabled"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + #address-cells = <1>; + #size-cells = <0>; + }; + }; + }; + + isp_mmu: iommu@ff4a8000 { + compatible = "rockchip,iommu"; + reg = <0x0 0xff4a8000 0x0 0x100>; + interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&cru ACLK_ISP>, <&cru HCLK_ISP>; + clock-names = "aclk", "iface"; + power-domains = <&power PX30_PD_VI>; + rockchip,disable-mmu-reset; + #iommu-cells = <0>; + }; + qos_gmac: qos@ff518000 { - compatible = "syscon"; + compatible = "rockchip,px30-qos", "syscon"; reg = <0x0 0xff518000 0x0 0x20>; }; qos_gpu: qos@ff520000 { - compatible = "syscon"; + compatible = "rockchip,px30-qos", "syscon"; reg = <0x0 0xff520000 0x0 0x20>; }; qos_sdmmc: qos@ff52c000 { - compatible = "syscon"; + compatible = "rockchip,px30-qos", "syscon"; reg = <0x0 0xff52c000 0x0 0x20>; }; qos_emmc: qos@ff538000 { - compatible = "syscon"; + compatible = "rockchip,px30-qos", "syscon"; reg = <0x0 0xff538000 0x0 0x20>; }; qos_nand: qos@ff538080 { - compatible = "syscon"; + compatible = "rockchip,px30-qos", "syscon"; reg = <0x0 0xff538080 0x0 0x20>; }; qos_sdio: qos@ff538100 { - compatible = "syscon"; + compatible = "rockchip,px30-qos", "syscon"; reg = <0x0 0xff538100 0x0 0x20>; }; qos_sfc: qos@ff538180 { - compatible = "syscon"; + compatible = "rockchip,px30-qos", "syscon"; reg = <0x0 0xff538180 0x0 0x20>; }; qos_usb_host: qos@ff540000 { - compatible = "syscon"; + compatible = "rockchip,px30-qos", "syscon"; reg = <0x0 0xff540000 0x0 0x20>; }; qos_usb_otg: qos@ff540080 { - compatible = "syscon"; + compatible = "rockchip,px30-qos", "syscon"; reg = <0x0 0xff540080 0x0 0x20>; }; qos_isp_128: qos@ff548000 { - compatible = "syscon"; + compatible = "rockchip,px30-qos", "syscon"; reg = <0x0 0xff548000 0x0 0x20>; }; qos_isp_rd: qos@ff548080 { - compatible = "syscon"; + compatible = "rockchip,px30-qos", "syscon"; reg = <0x0 0xff548080 0x0 0x20>; }; qos_isp_wr: qos@ff548100 { - compatible = "syscon"; + compatible = "rockchip,px30-qos", "syscon"; reg = <0x0 0xff548100 0x0 0x20>; }; qos_isp_m1: qos@ff548180 { - compatible = "syscon"; + compatible = "rockchip,px30-qos", "syscon"; reg = <0x0 0xff548180 0x0 0x20>; }; qos_vip: qos@ff548200 { - compatible = "syscon"; + compatible = "rockchip,px30-qos", "syscon"; reg = <0x0 0xff548200 0x0 0x20>; }; qos_rga_rd: qos@ff550000 { - compatible = "syscon"; + compatible = "rockchip,px30-qos", "syscon"; reg = <0x0 0xff550000 0x0 0x20>; }; qos_rga_wr: qos@ff550080 { - compatible = "syscon"; + compatible = "rockchip,px30-qos", "syscon"; reg = <0x0 0xff550080 0x0 0x20>; }; qos_vop_m0: qos@ff550100 { - compatible = "syscon"; + compatible = "rockchip,px30-qos", "syscon"; reg = <0x0 0xff550100 0x0 0x20>; }; qos_vop_m1: qos@ff550180 { - compatible = "syscon"; + compatible = "rockchip,px30-qos", "syscon"; reg = <0x0 0xff550180 0x0 0x20>; }; qos_vpu: qos@ff558000 { - compatible = "syscon"; + compatible = "rockchip,px30-qos", "syscon"; reg = <0x0 0xff558000 0x0 0x20>; }; qos_vpu_r128: qos@ff558080 { - compatible = "syscon"; + compatible = "rockchip,px30-qos", "syscon"; reg = <0x0 0xff558080 0x0 0x20>; }; @@ -1210,7 +1338,7 @@ #size-cells = <2>; ranges; - gpio0: gpio0@ff040000 { + gpio0: gpio@ff040000 { compatible = "rockchip,gpio-bank"; reg = <0x0 0xff040000 0x0 0x100>; interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; @@ -1222,7 +1350,7 @@ #interrupt-cells = <2>; }; - gpio1: gpio1@ff250000 { + gpio1: gpio@ff250000 { compatible = "rockchip,gpio-bank"; reg = <0x0 0xff250000 0x0 0x100>; interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; @@ -1234,7 +1362,7 @@ #interrupt-cells = <2>; }; - gpio2: gpio2@ff260000 { + gpio2: gpio@ff260000 { compatible = "rockchip,gpio-bank"; reg = <0x0 0xff260000 0x0 0x100>; interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; @@ -1246,7 +1374,7 @@ #interrupt-cells = <2>; }; - gpio3: gpio3@ff270000 { + gpio3: gpio@ff270000 { compatible = "rockchip,gpio-bank"; reg = <0x0 0xff270000 0x0 0x100>; interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; @@ -1370,7 +1498,7 @@ }; tsadc { - tsadc_otp_gpio: tsadc-otp-gpio { + tsadc_otp_pin: tsadc-otp-pin { rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>; }; @@ -1933,7 +2061,7 @@ }; }; - serial_flash { + sfc { sfc_bus4: sfc-bus4 { rockchip,pins = <1 RK_PA0 3 &pcfg_pull_none>, diff --git a/arch/arm/dts/rk3326-odroid-go2-u-boot.dtsi b/arch/arm/dts/rk3326-odroid-go2-u-boot.dtsi index 63d87e16e1..87f277f78e 100644 --- a/arch/arm/dts/rk3326-odroid-go2-u-boot.dtsi +++ b/arch/arm/dts/rk3326-odroid-go2-u-boot.dtsi @@ -82,7 +82,7 @@ u-boot,dm-pre-reloc; }; -&{/sfc@ff3a0000/flash@0} { +&{/spi@ff3a0000/flash@0} { u-boot,dm-pre-reloc; }; diff --git a/arch/arm/dts/rk3326-odroid-go2.dts b/arch/arm/dts/rk3326-odroid-go2.dts index 4e3dceecbe..ea0695b51e 100644 --- a/arch/arm/dts/rk3326-odroid-go2.dts +++ b/arch/arm/dts/rk3326-odroid-go2.dts @@ -14,14 +14,12 @@ model = "ODROID-GO Advance"; compatible = "hardkernel,rk3326-odroid-go2", "rockchip,rk3326"; - chosen { - stdout-path = "serial2:115200n8"; + aliases { + mmc0 = &sdmmc; }; - backlight: backlight { - compatible = "pwm-backlight"; - power-supply = <&vcc_bl>; - pwms = <&pwm1 0 25000 0>; + chosen { + stdout-path = "serial2:115200n8"; }; adc-joystick { @@ -33,21 +31,27 @@ axis@0 { reg = <0>; - abs-range = <172 772>; - abs-fuzz = <10>; abs-flat = <10>; + abs-fuzz = <10>; + abs-range = <172 772>; linux,code = <ABS_X>; }; axis@1 { reg = <1>; - abs-range = <278 815>; - abs-fuzz = <10>; abs-flat = <10>; + abs-fuzz = <10>; + abs-range = <278 815>; linux,code = <ABS_Y>; }; }; + backlight: backlight { + compatible = "pwm-backlight"; + power-supply = <&vcc_bl>; + pwms = <&pwm1 0 25000 0>; + }; + gpio-keys { compatible = "gpio-keys"; pinctrl-names = "default"; @@ -163,25 +167,26 @@ rk817-sound { compatible = "simple-audio-card"; + simple-audio-card,name = "Analog"; simple-audio-card,format = "i2s"; - simple-audio-card,name = "rockchip,rk817-codec"; + simple-audio-card,hp-det-gpio = <&gpio2 RK_PC6 GPIO_ACTIVE_HIGH>; simple-audio-card,mclk-fs = <256>; simple-audio-card,widgets = "Microphone", "Mic Jack", - "Headphone", "Headphone Jack"; + "Headphone", "Headphones", + "Speaker", "Speaker"; simple-audio-card,routing = - "MIC_IN", "Mic Jack", - "Headphone Jack", "HPOL", - "Headphone Jack", "HPOR"; - simple-audio-card,hp-det-gpio = <&gpio2 RK_PC6 GPIO_ACTIVE_LOW>; - simple-audio-card,codec-hp-det = <1>; + "MICL", "Mic Jack", + "Headphones", "HPOL", + "Headphones", "HPOR", + "Speaker", "SPKO"; - simple-audio-card,cpu { - sound-dai = <&i2s1_2ch>; + simple-audio-card,codec { + sound-dai = <&rk817>; }; - simple-audio-card,codec { - sound-dai = <&rk817_codec>; + simple-audio-card,cpu { + sound-dai = <&i2s1_2ch>; }; }; @@ -202,7 +207,8 @@ gpio = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>; enable-active-high; regulator-always-on; - vin-supply = <&vccsys>; + regulator-boot-on; + vin-supply = <&usb_midu>; }; }; @@ -259,6 +265,7 @@ backlight = <&backlight>; iovcc-supply = <&vcc_lcd>; reset-gpios = <&gpio3 RK_PC0 GPIO_ACTIVE_LOW>; + rotation = <270>; vdd-supply = <&vcc_lcd>; port { @@ -289,16 +296,14 @@ reg = <0x20>; interrupt-parent = <&gpio0>; interrupts = <RK_PB2 IRQ_TYPE_LEVEL_LOW>; - pinctrl-names = "default", "pmic-sleep", - "pmic-power-off", "pmic-reset"; - pinctrl-0 = <&pmic_int>; - pinctrl-1 = <&soc_slppin_slp>, <&rk817_slppin_slp>; - pinctrl-2 = <&soc_slppin_gpio>, <&rk817_slppin_pwrdn>; - pinctrl-3 = <&soc_slppin_rst>, <&rk817_slppin_rst>; - rockchip,system-power-controller; + clock-output-names = "rk808-clkout1", "xin32k"; + clock-names = "mclk"; + clocks = <&cru SCLK_I2S1_OUT>; + pinctrl-names = "default"; + pinctrl-0 = <&pmic_int>, <&i2s1_2ch_mclk>; wakeup-source; #clock-cells = <1>; - clock-output-names = "rk808-clkout1", "xin32k"; + #sound-dai-cells = <0>; vcc1-supply = <&vccsys>; vcc2-supply = <&vccsys>; @@ -307,53 +312,7 @@ vcc5-supply = <&vccsys>; vcc6-supply = <&vccsys>; vcc7-supply = <&vccsys>; - - pinctrl_rk8xx: pinctrl_rk8xx { - gpio-controller; - #gpio-cells = <2>; - - rk817_ts_gpio1: rk817_ts_gpio1 { - pins = "gpio_ts"; - function = "pin_fun1"; - /* output-low; */ - /* input-enable; */ - }; - - rk817_gt_gpio2: rk817_gt_gpio2 { - pins = "gpio_gt"; - function = "pin_fun1"; - }; - - rk817_pin_ts: rk817_pin_ts { - pins = "gpio_ts"; - function = "pin_fun0"; - }; - - rk817_pin_gt: rk817_pin_gt { - pins = "gpio_gt"; - function = "pin_fun0"; - }; - - rk817_slppin_null: rk817_slppin_null { - pins = "gpio_slp"; - function = "pin_fun0"; - }; - - rk817_slppin_slp: rk817_slppin_slp { - pins = "gpio_slp"; - function = "pin_fun1"; - }; - - rk817_slppin_pwrdn: rk817_slppin_pwrdn { - pins = "gpio_slp"; - function = "pin_fun2"; - }; - - rk817_slppin_rst: rk817_slppin_rst { - pins = "gpio_slp"; - function = "pin_fun3"; - }; - }; + vcc8-supply = <&vccsys>; regulators { vdd_logic: DCDC_REG1 { @@ -503,66 +462,18 @@ regulator-suspend-microvolt = <3000000>; }; }; - }; - battery { - compatible = "rk817,battery"; - ocv_table = <3500 3625 3685 3697 3718 3735 3748 - 3760 3774 3788 3802 3816 3834 3853 - 3877 3908 3946 3975 4018 4071 4106>; - - /* KPL605475 Battery Spec */ - /* - Capacity : 3.7V 3000mA - Normal Voltage = 3.7V - Cut-Off Voltage : 3.1V - Internal Impedance : 180 mOhm - Charging Voltage : 4.2V - Charging Voltage Max : 4.25V - Sample resister : 10 mohm - */ - design_capacity = <3000>; - design_qmax = <3000>; - bat_res = <180>; - sleep_enter_current = <300>; - sleep_exit_current = <300>; - sleep_filter_current = <100>; - power_off_thresd = <3500>; - zero_algorithm_vol = <3700>; - max_soc_offset = <60>; - monitor_sec = <5>; - virtual_power = <0>; - sample_res = <10>; - }; - - charger { - compatible = "rk817,charger"; - min_input_voltage = <4500>; - max_input_current = <1500>; - max_chrg_current = <2000>; - max_chrg_voltage = <4200>; - chrg_term_mode = <0>; - chrg_finish_cur = <300>; - virtual_power = <0>; - sample_res = <10>; - - /* P.C.B rev0.2 DC Detect & Charger Status LED GPIO */ - dc_det_gpio = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>; - chg_led_gpio = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>; - - extcon = <&u2phy>; + usb_midu: BOOST { + regulator-name = "usb_midu"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5400000>; + regulator-always-on; + regulator-boot-on; + }; }; rk817_codec: codec { - #sound-dai-cells = <0>; - compatible = "rockchip,rk817-codec"; - clocks = <&cru SCLK_I2S1_OUT>; - clock-names = "mclk"; - pinctrl-names = "default"; - pinctrl-0 = <&i2s1_2ch_mclk>; - hp-volume = <20>; - spk-volume = <3>; - status = "okay"; + rockchip,mic-in-differential; }; }; }; @@ -604,7 +515,6 @@ }; &sdmmc { - bus-width = <4>; cap-sd-highspeed; card-detect-delay = <200>; cd-gpios = <&gpio0 RK_PA3 GPIO_ACTIVE_LOW>; /*[> CD GPIO <]*/ diff --git a/configs/px30-core-ctouch2-px30_defconfig b/configs/px30-core-ctouch2-px30_defconfig index a5dbbd7453..7d1920458e 100644 --- a/configs/px30-core-ctouch2-px30_defconfig +++ b/configs/px30-core-ctouch2-px30_defconfig @@ -6,7 +6,7 @@ CONFIG_SYS_MALLOC_F_LEN=0x2000 CONFIG_SPL_LIBCOMMON_SUPPORT=y CONFIG_SPL_LIBGENERIC_SUPPORT=y CONFIG_NR_DRAM_BANKS=1 -CONFIG_DEFAULT_DEVICE_TREE="px30-px30-core-ctouch2" +CONFIG_DEFAULT_DEVICE_TREE="px30-engicam-px30-core-ctouch2" CONFIG_SPL_TEXT_BASE=0x00000000 CONFIG_ROCKCHIP_PX30=y CONFIG_TARGET_PX30_CORE=y @@ -23,7 +23,7 @@ CONFIG_SYS_LOAD_ADDR=0x800800 CONFIG_FIT=y CONFIG_FIT_VERBOSE=y CONFIG_SPL_LOAD_FIT=y -CONFIG_DEFAULT_FDT_FILE="rockchip/px30-px30-core-ctouch2.dtb" +CONFIG_DEFAULT_FDT_FILE="rockchip/px30-engicam-px30-core-ctouch2.dtb" # CONFIG_CONSOLE_MUX is not set # CONFIG_DISPLAY_CPUINFO is not set CONFIG_DISPLAY_BOARDINFO_LATE=y diff --git a/configs/px30-core-edimm2.2-px30_defconfig b/configs/px30-core-edimm2.2-px30_defconfig index 1e138d63ed..84c57337ce 100644 --- a/configs/px30-core-edimm2.2-px30_defconfig +++ b/configs/px30-core-edimm2.2-px30_defconfig @@ -6,7 +6,7 @@ CONFIG_SYS_MALLOC_F_LEN=0x2000 CONFIG_SPL_LIBCOMMON_SUPPORT=y CONFIG_SPL_LIBGENERIC_SUPPORT=y CONFIG_NR_DRAM_BANKS=1 -CONFIG_DEFAULT_DEVICE_TREE="px30-px30-core-edimm2.2" +CONFIG_DEFAULT_DEVICE_TREE="px30-engicam-px30-core-edimm2.2" CONFIG_SPL_TEXT_BASE=0x00000000 CONFIG_ROCKCHIP_PX30=y CONFIG_TARGET_PX30_CORE=y @@ -23,7 +23,7 @@ CONFIG_SYS_LOAD_ADDR=0x800800 CONFIG_FIT=y CONFIG_FIT_VERBOSE=y CONFIG_SPL_LOAD_FIT=y -CONFIG_DEFAULT_FDT_FILE="rockchip/px30-px30-core-edimm2.2.dtb" +CONFIG_DEFAULT_FDT_FILE="rockchip/px30-engicam-px30-core-edimm2.2.dtb" # CONFIG_CONSOLE_MUX is not set # CONFIG_DISPLAY_CPUINFO is not set CONFIG_DISPLAY_BOARDINFO_LATE=y
Sync the px30 devicetree files from linux-next tree. commit <14ce8069f48b> ("lib/stackdepot: allow optional init and stack_table allocation by kvmalloc() - fixup3") Note, this path even sync rk3326 files as it depends on px30. Signed-off-by: Jagan Teki <jagan@amarulasolutions.com> --- Changes for v2: - add sync on v5.15 - add sync on rk3326 arch/arm/dts/Makefile | 4 +- arch/arm/dts/px30-engicam-common.dtsi | 90 ++++++ arch/arm/dts/px30-engicam-ctouch2.dtsi | 22 ++ arch/arm/dts/px30-engicam-edimm2.2.dtsi | 59 ++++ .../px30-engicam-px30-core-ctouch2-of10.dts | 77 +++++ ...dts => px30-engicam-px30-core-ctouch2.dts} | 4 +- .../dts/px30-engicam-px30-core-edimm2.2.dts | 43 +++ ...-core.dtsi => px30-engicam-px30-core.dtsi} | 11 +- arch/arm/dts/px30-evb.dts | 143 ++++++++-- arch/arm/dts/px30-px30-core-edimm2.2.dts | 21 -- arch/arm/dts/px30-u-boot.dtsi | 4 + arch/arm/dts/px30.dtsi | 270 +++++++++++++----- arch/arm/dts/rk3326-odroid-go2-u-boot.dtsi | 2 +- arch/arm/dts/rk3326-odroid-go2.dts | 178 +++--------- configs/px30-core-ctouch2-px30_defconfig | 4 +- configs/px30-core-edimm2.2-px30_defconfig | 4 +- 16 files changed, 681 insertions(+), 255 deletions(-) create mode 100644 arch/arm/dts/px30-engicam-px30-core-ctouch2-of10.dts rename arch/arm/dts/{px30-px30-core-ctouch2.dts => px30-engicam-px30-core-ctouch2.dts} (80%) create mode 100644 arch/arm/dts/px30-engicam-px30-core-edimm2.2.dts rename arch/arm/dts/{px30-px30-core.dtsi => px30-engicam-px30-core.dtsi} (96%) delete mode 100644 arch/arm/dts/px30-px30-core-edimm2.2.dts