140137b58SJagan Teki// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 240137b58SJagan Teki/* 340137b58SJagan Teki * Copyright (c) 2023 Edgeble AI Technologies Pvt. Ltd. 440137b58SJagan Teki */ 540137b58SJagan Teki 68c711ff3SJagan Teki#include <dt-bindings/gpio/gpio.h> 7*4a2fdf91SJagan Teki#include <dt-bindings/soc/rockchip,vop2.h> 88c711ff3SJagan Teki 940137b58SJagan Teki/ { 1040137b58SJagan Teki chosen { 1140137b58SJagan Teki stdout-path = "serial2:1500000n8"; 1240137b58SJagan Teki }; 138c711ff3SJagan Teki 14*4a2fdf91SJagan Teki hdmi1-con { 15*4a2fdf91SJagan Teki compatible = "hdmi-connector"; 16*4a2fdf91SJagan Teki type = "a"; 17*4a2fdf91SJagan Teki 18*4a2fdf91SJagan Teki port { 19*4a2fdf91SJagan Teki hdmi1_con_in: endpoint { 20*4a2fdf91SJagan Teki remote-endpoint = <&hdmi1_out_con>; 21*4a2fdf91SJagan Teki }; 22*4a2fdf91SJagan Teki }; 23*4a2fdf91SJagan Teki }; 24*4a2fdf91SJagan Teki 25e2ee8a44SJagan Teki /* Unnamed gated oscillator: 100MHz,3.3V,3225 */ 26e2ee8a44SJagan Teki pcie30_port0_refclk: pcie30_port1_refclk: pcie-oscillator { 27e2ee8a44SJagan Teki compatible = "gated-fixed-clock"; 28e2ee8a44SJagan Teki #clock-cells = <0>; 29e2ee8a44SJagan Teki clock-frequency = <100000000>; 30e2ee8a44SJagan Teki clock-output-names = "pcie30_refclk"; 31e2ee8a44SJagan Teki vdd-supply = <&vcc3v3_pi6c_05>; 32e2ee8a44SJagan Teki }; 33e2ee8a44SJagan Teki 345c96e633SJohan Jonker vcc3v3_pcie2x1l0: regulator-vcc3v3-pcie2x1l0 { 358c711ff3SJagan Teki compatible = "regulator-fixed"; 368c711ff3SJagan Teki regulator-name = "vcc3v3_pcie2x1l0"; 378c711ff3SJagan Teki regulator-min-microvolt = <3300000>; 388c711ff3SJagan Teki regulator-max-microvolt = <3300000>; 398c711ff3SJagan Teki startup-delay-us = <5000>; 408c711ff3SJagan Teki vin-supply = <&vcc_3v3_s3>; 418c711ff3SJagan Teki }; 425d85d4c7SJagan Teki 43e2ee8a44SJagan Teki vcc3v3_bkey: regulator-vcc3v3-bkey { 4492eaee21SJagan Teki compatible = "regulator-fixed"; 4592eaee21SJagan Teki enable-active-high; 4692eaee21SJagan Teki gpios = <&gpio2 RK_PC4 GPIO_ACTIVE_HIGH>; /* PCIE_4G_PWEN */ 4792eaee21SJagan Teki pinctrl-names = "default"; 48e2ee8a44SJagan Teki pinctrl-0 = <&pcie_4g_pwen>; 49e2ee8a44SJagan Teki regulator-name = "vcc3v3_bkey"; 5092eaee21SJagan Teki regulator-min-microvolt = <3300000>; 5192eaee21SJagan Teki regulator-max-microvolt = <3300000>; 5292eaee21SJagan Teki startup-delay-us = <5000>; 5392eaee21SJagan Teki vin-supply = <&vcc5v0_sys>; 5492eaee21SJagan Teki }; 5592eaee21SJagan Teki 56e2ee8a44SJagan Teki vcc3v3_pcie30: vcc3v3_pi6c_05: regulator-vcc3v3-pi6c-05 { 575d85d4c7SJagan Teki compatible = "regulator-fixed"; 585d85d4c7SJagan Teki enable-active-high; 595d85d4c7SJagan Teki gpios = <&gpio2 RK_PC5 GPIO_ACTIVE_HIGH>; /* PCIE30x4_PWREN_H */ 605d85d4c7SJagan Teki pinctrl-names = "default"; 61e2ee8a44SJagan Teki pinctrl-0 = <&pcie30x4_pwren_h>; 62e2ee8a44SJagan Teki regulator-name = "vcc3v3_pcie30"; 635d85d4c7SJagan Teki regulator-min-microvolt = <3300000>; 645d85d4c7SJagan Teki regulator-max-microvolt = <3300000>; 655d85d4c7SJagan Teki startup-delay-us = <5000>; 665d85d4c7SJagan Teki vin-supply = <&vcc5v0_sys>; 675d85d4c7SJagan Teki }; 68762751c1SJagan Teki 695c96e633SJohan Jonker vcc5v0_host: regulator-vcc5v0-host { 70762751c1SJagan Teki compatible = "regulator-fixed"; 71762751c1SJagan Teki enable-active-high; 72762751c1SJagan Teki gpio = <&gpio3 RK_PC7 GPIO_ACTIVE_HIGH>; 73762751c1SJagan Teki pinctrl-names = "default"; 74762751c1SJagan Teki pinctrl-0 = <&vcc5v0_host_en>; 75762751c1SJagan Teki regulator-name = "vcc5v0_host"; 76762751c1SJagan Teki regulator-min-microvolt = <5000000>; 77762751c1SJagan Teki regulator-max-microvolt = <5000000>; 78762751c1SJagan Teki regulator-boot-on; 79762751c1SJagan Teki regulator-always-on; 80762751c1SJagan Teki vin-supply = <&vcc5v0_sys>; 81762751c1SJagan Teki }; 8240137b58SJagan Teki}; 8340137b58SJagan Teki 8440137b58SJagan Teki&combphy0_ps { 8540137b58SJagan Teki status = "okay"; 8640137b58SJagan Teki}; 8740137b58SJagan Teki 888c711ff3SJagan Teki&combphy1_ps { 898c711ff3SJagan Teki status = "okay"; 908c711ff3SJagan Teki}; 918c711ff3SJagan Teki 927676e126SAnand Moon&combphy2_psu { 937676e126SAnand Moon status = "okay"; 947676e126SAnand Moon}; 957676e126SAnand Moon 96*4a2fdf91SJagan Teki&hdmi1 { 97*4a2fdf91SJagan Teki status = "okay"; 98*4a2fdf91SJagan Teki}; 99*4a2fdf91SJagan Teki 100*4a2fdf91SJagan Teki&hdmi1_in { 101*4a2fdf91SJagan Teki hdmi1_in_vp0: endpoint { 102*4a2fdf91SJagan Teki remote-endpoint = <&vp0_out_hdmi1>; 103*4a2fdf91SJagan Teki }; 104*4a2fdf91SJagan Teki}; 105*4a2fdf91SJagan Teki 106*4a2fdf91SJagan Teki&hdmi1_out { 107*4a2fdf91SJagan Teki hdmi1_out_con: endpoint { 108*4a2fdf91SJagan Teki remote-endpoint = <&hdmi1_con_in>; 109*4a2fdf91SJagan Teki }; 110*4a2fdf91SJagan Teki}; 111*4a2fdf91SJagan Teki 112*4a2fdf91SJagan Teki&hdptxphy1 { 113*4a2fdf91SJagan Teki status = "okay"; 114*4a2fdf91SJagan Teki}; 115*4a2fdf91SJagan Teki 11640137b58SJagan Teki&i2c6 { 11740137b58SJagan Teki status = "okay"; 11840137b58SJagan Teki 11940137b58SJagan Teki hym8563: rtc@51 { 12040137b58SJagan Teki compatible = "haoyu,hym8563"; 12140137b58SJagan Teki reg = <0x51>; 12240137b58SJagan Teki interrupt-parent = <&gpio0>; 12340137b58SJagan Teki interrupts = <RK_PB0 IRQ_TYPE_LEVEL_LOW>; 12440137b58SJagan Teki #clock-cells = <0>; 12540137b58SJagan Teki clock-output-names = "hym8563"; 12640137b58SJagan Teki pinctrl-names = "default"; 12740137b58SJagan Teki pinctrl-0 = <&hym8563_int>; 12840137b58SJagan Teki wakeup-source; 12940137b58SJagan Teki }; 13040137b58SJagan Teki}; 13140137b58SJagan Teki 1328c711ff3SJagan Teki/* ETH */ 1338c711ff3SJagan Teki&pcie2x1l0 { 1348c711ff3SJagan Teki pinctrl-names = "default"; 1358c711ff3SJagan Teki pinctrl-0 = <&pcie2_0_rst>; 1368c711ff3SJagan Teki reset-gpios = <&gpio4 RK_PA5 GPIO_ACTIVE_HIGH>; /* PCIE20_1_PERST_L */ 1378c711ff3SJagan Teki vpcie3v3-supply = <&vcc3v3_pcie2x1l0>; 1388c711ff3SJagan Teki status = "okay"; 1398c711ff3SJagan Teki}; 1408c711ff3SJagan Teki 1415d85d4c7SJagan Teki&pcie30phy { 142e2ee8a44SJagan Teki data-lanes = <1 1 2 2>; 143e2ee8a44SJagan Teki /* separate clock lines from the clock generator to phy and devices */ 144e2ee8a44SJagan Teki rockchip,rx-common-refclk-mode = <0 0 0 0>; 14592eaee21SJagan Teki status = "okay"; 14692eaee21SJagan Teki}; 14792eaee21SJagan Teki 1485d85d4c7SJagan Teki/* M-Key */ 149e2ee8a44SJagan Teki&pcie3x2 { 150e2ee8a44SJagan Teki /* 151e2ee8a44SJagan Teki * The board has a "pcie_refclk" oscillator that needs enabling, 152e2ee8a44SJagan Teki * so add it to the list of clocks. 153e2ee8a44SJagan Teki */ 154e2ee8a44SJagan Teki clocks = <&cru ACLK_PCIE_2L_MSTR>, <&cru ACLK_PCIE_2L_SLV>, 155e2ee8a44SJagan Teki <&cru ACLK_PCIE_2L_DBI>, <&cru PCLK_PCIE_2L>, 156e2ee8a44SJagan Teki <&cru CLK_PCIE_AUX1>, <&cru CLK_PCIE2L_PIPE>, 157e2ee8a44SJagan Teki <&pcie30_port1_refclk>; 158e2ee8a44SJagan Teki clock-names = "aclk_mst", "aclk_slv", 159e2ee8a44SJagan Teki "aclk_dbi", "pclk", 160e2ee8a44SJagan Teki "aux", "pipe", 161e2ee8a44SJagan Teki "ref"; 162e2ee8a44SJagan Teki num-lanes = <2>; 1635d85d4c7SJagan Teki pinctrl-names = "default"; 164e2ee8a44SJagan Teki pinctrl-0 = <&pcie30x2_perstn_m1_l>; 1655d85d4c7SJagan Teki reset-gpios = <&gpio4 RK_PB0 GPIO_ACTIVE_HIGH>; /* PCIE30X2_PERSTn_M1_L */ 166e2ee8a44SJagan Teki vpcie3v3-supply = <&vcc3v3_pcie30>; 167e2ee8a44SJagan Teki status = "okay"; 168e2ee8a44SJagan Teki}; 169e2ee8a44SJagan Teki 170e2ee8a44SJagan Teki/* B-Key and E-Key */ 171e2ee8a44SJagan Teki&pcie3x4 { 172e2ee8a44SJagan Teki /* 173e2ee8a44SJagan Teki * The board has a "pcie_refclk" oscillator that needs enabling, 174e2ee8a44SJagan Teki * so add it to the list of clocks. 175e2ee8a44SJagan Teki */ 176e2ee8a44SJagan Teki clocks = <&cru ACLK_PCIE_4L_MSTR>, <&cru ACLK_PCIE_4L_SLV>, 177e2ee8a44SJagan Teki <&cru ACLK_PCIE_4L_DBI>, <&cru PCLK_PCIE_4L>, 178e2ee8a44SJagan Teki <&cru CLK_PCIE_AUX0>, <&cru CLK_PCIE4L_PIPE>, 179e2ee8a44SJagan Teki <&pcie30_port0_refclk>; 180e2ee8a44SJagan Teki clock-names = "aclk_mst", "aclk_slv", 181e2ee8a44SJagan Teki "aclk_dbi", "pclk", 182e2ee8a44SJagan Teki "aux", "pipe", 183e2ee8a44SJagan Teki "ref"; 184e2ee8a44SJagan Teki pinctrl-names = "default"; 185e2ee8a44SJagan Teki pinctrl-0 = <&pcie30x4_perstn_m1_l>; 186e2ee8a44SJagan Teki reset-gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>; /* PCIE30X4_PERSTn_M1_L */ 187e2ee8a44SJagan Teki vpcie3v3-supply = <&vcc3v3_bkey>; 1885d85d4c7SJagan Teki status = "okay"; 1895d85d4c7SJagan Teki}; 1905d85d4c7SJagan Teki 19140137b58SJagan Teki&pinctrl { 1928c711ff3SJagan Teki pcie2 { 1938c711ff3SJagan Teki pcie2_0_rst: pcie2-0-rst { 1948c711ff3SJagan Teki rockchip,pins = <4 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>; 1958c711ff3SJagan Teki }; 1968c711ff3SJagan Teki }; 1978c711ff3SJagan Teki 1985d85d4c7SJagan Teki pcie3 { 199e2ee8a44SJagan Teki pcie30x2_perstn_m1_l: pcie30x2-perstn-m1-l { 2005d85d4c7SJagan Teki rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; 2015d85d4c7SJagan Teki }; 2025d85d4c7SJagan Teki 203e2ee8a44SJagan Teki pcie_4g_pwen: pcie-4g-pwen { 204e2ee8a44SJagan Teki rockchip,pins = <2 RK_PC4 RK_FUNC_GPIO &pcfg_pull_down>; 205e2ee8a44SJagan Teki }; 206e2ee8a44SJagan Teki 207e2ee8a44SJagan Teki pcie30x4_perstn_m1_l: pcie30x4-perstn-m1-l { 208e2ee8a44SJagan Teki rockchip,pins = <4 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>; 209e2ee8a44SJagan Teki }; 210e2ee8a44SJagan Teki 211e2ee8a44SJagan Teki pcie30x4_pwren_h: pcie30x4-pwren-h { 212e2ee8a44SJagan Teki rockchip,pins = <2 RK_PC5 RK_FUNC_GPIO &pcfg_pull_down>; 2135d85d4c7SJagan Teki }; 2145d85d4c7SJagan Teki }; 2155d85d4c7SJagan Teki 21640137b58SJagan Teki hym8563 { 21740137b58SJagan Teki hym8563_int: hym8563-int { 21840137b58SJagan Teki rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; 21940137b58SJagan Teki }; 22040137b58SJagan Teki }; 221762751c1SJagan Teki 222762751c1SJagan Teki usb { 223762751c1SJagan Teki vcc5v0_host_en: vcc5v0-host-en { 224762751c1SJagan Teki rockchip,pins = <3 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>; 225762751c1SJagan Teki }; 226762751c1SJagan Teki }; 22740137b58SJagan Teki}; 22840137b58SJagan Teki 22940137b58SJagan Teki/* FAN */ 23040137b58SJagan Teki&pwm2 { 23140137b58SJagan Teki pinctrl-0 = <&pwm2m1_pins>; 23240137b58SJagan Teki pinctrl-names = "default"; 23340137b58SJagan Teki status = "okay"; 23440137b58SJagan Teki}; 23540137b58SJagan Teki 23640137b58SJagan Teki&sata0 { 23740137b58SJagan Teki status = "okay"; 23840137b58SJagan Teki}; 23940137b58SJagan Teki 24040137b58SJagan Teki&sdmmc { 24140137b58SJagan Teki bus-width = <4>; 24240137b58SJagan Teki cap-mmc-highspeed; 24340137b58SJagan Teki cap-sd-highspeed; 24440137b58SJagan Teki disable-wp; 24540137b58SJagan Teki no-sdio; 24640137b58SJagan Teki no-mmc; 24740137b58SJagan Teki sd-uhs-sdr104; 24840137b58SJagan Teki vmmc-supply = <&vcc_3v3_s3>; 24940137b58SJagan Teki vqmmc-supply = <&vccio_sd_s0>; 25040137b58SJagan Teki status = "okay"; 25140137b58SJagan Teki}; 25240137b58SJagan Teki 25340137b58SJagan Teki&uart2 { 25440137b58SJagan Teki pinctrl-0 = <&uart2m0_xfer>; 25540137b58SJagan Teki status = "okay"; 25640137b58SJagan Teki}; 25740137b58SJagan Teki 25840137b58SJagan Teki/* RS232 */ 25940137b58SJagan Teki&uart6 { 26040137b58SJagan Teki pinctrl-0 = <&uart6m0_xfer>; 26140137b58SJagan Teki pinctrl-names = "default"; 26240137b58SJagan Teki status = "okay"; 26340137b58SJagan Teki}; 26440137b58SJagan Teki 26540137b58SJagan Teki/* RS485 */ 26640137b58SJagan Teki&uart7 { 26740137b58SJagan Teki pinctrl-0 = <&uart7m2_xfer>; 26840137b58SJagan Teki pinctrl-names = "default"; 26940137b58SJagan Teki status = "okay"; 27040137b58SJagan Teki}; 271762751c1SJagan Teki 272762751c1SJagan Teki&u2phy2 { 273762751c1SJagan Teki status = "okay"; 274762751c1SJagan Teki}; 275762751c1SJagan Teki 276762751c1SJagan Teki&u2phy2_host { 277762751c1SJagan Teki /* connected to USB hub, which is powered by vcc5v0_sys */ 278762751c1SJagan Teki phy-supply = <&vcc5v0_sys>; 279762751c1SJagan Teki status = "okay"; 280762751c1SJagan Teki}; 281762751c1SJagan Teki 282762751c1SJagan Teki&u2phy3 { 283762751c1SJagan Teki status = "okay"; 284762751c1SJagan Teki}; 285762751c1SJagan Teki 286762751c1SJagan Teki&u2phy3_host { 287762751c1SJagan Teki phy-supply = <&vcc5v0_host>; 288762751c1SJagan Teki status = "okay"; 289762751c1SJagan Teki}; 290762751c1SJagan Teki 291762751c1SJagan Teki&usb_host0_ehci { 292762751c1SJagan Teki status = "okay"; 293762751c1SJagan Teki}; 294762751c1SJagan Teki 295762751c1SJagan Teki&usb_host0_ohci { 296762751c1SJagan Teki status = "okay"; 297762751c1SJagan Teki}; 298762751c1SJagan Teki 299762751c1SJagan Teki&usb_host1_ehci { 300762751c1SJagan Teki status = "okay"; 301762751c1SJagan Teki}; 302762751c1SJagan Teki 303762751c1SJagan Teki&usb_host1_ohci { 304762751c1SJagan Teki status = "okay"; 305762751c1SJagan Teki}; 3067676e126SAnand Moon 3077676e126SAnand Moon&usb_host2_xhci { 3087676e126SAnand Moon status = "okay"; 3097676e126SAnand Moon}; 310*4a2fdf91SJagan Teki 311*4a2fdf91SJagan Teki&vop_mmu { 312*4a2fdf91SJagan Teki status = "okay"; 313*4a2fdf91SJagan Teki}; 314*4a2fdf91SJagan Teki 315*4a2fdf91SJagan Teki&vop { 316*4a2fdf91SJagan Teki status = "okay"; 317*4a2fdf91SJagan Teki}; 318*4a2fdf91SJagan Teki 319*4a2fdf91SJagan Teki&vp0 { 320*4a2fdf91SJagan Teki vp0_out_hdmi1: endpoint@ROCKCHIP_VOP2_EP_HDMI1 { 321*4a2fdf91SJagan Teki reg = <ROCKCHIP_VOP2_EP_HDMI1>; 322*4a2fdf91SJagan Teki remote-endpoint = <&hdmi1_in_vp0>; 323*4a2fdf91SJagan Teki }; 324*4a2fdf91SJagan Teki}; 325