1a1d8a344SAdam Ford// SPDX-License-Identifier: GPL-2.0 2a1d8a344SAdam Ford/* 3a1d8a344SAdam Ford * Copyright 2020, Compass Electronics Group, LLC 4a1d8a344SAdam Ford */ 5a1d8a344SAdam Ford 6a1d8a344SAdam Ford#include <dt-bindings/gpio/gpio.h> 7*ba6165bcSLukas Bulwahn#include <dt-bindings/clock/versaclock.h> 8a1d8a344SAdam Ford 9a1d8a344SAdam Ford/ { 10a1d8a344SAdam Ford memory@48000000 { 11a1d8a344SAdam Ford device_type = "memory"; 12a1d8a344SAdam Ford /* first 128MB is reserved for secure area. */ 13a1d8a344SAdam Ford reg = <0x0 0x48000000 0x0 0x78000000>; 14a1d8a344SAdam Ford }; 15a1d8a344SAdam Ford 16a1d8a344SAdam Ford osc_32k: osc_32k { 17a1d8a344SAdam Ford compatible = "fixed-clock"; 18a1d8a344SAdam Ford #clock-cells = <0>; 19a1d8a344SAdam Ford clock-frequency = <32768>; 20a1d8a344SAdam Ford clock-output-names = "osc_32k"; 21a1d8a344SAdam Ford }; 22a1d8a344SAdam Ford 235cf12ac9SGeert Uytterhoeven reg_1p8v: regulator-1p8v { 24a1d8a344SAdam Ford compatible = "regulator-fixed"; 25a1d8a344SAdam Ford regulator-name = "fixed-1.8V"; 26a1d8a344SAdam Ford regulator-min-microvolt = <1800000>; 27a1d8a344SAdam Ford regulator-max-microvolt = <1800000>; 28a1d8a344SAdam Ford regulator-boot-on; 29a1d8a344SAdam Ford regulator-always-on; 30a1d8a344SAdam Ford }; 31a1d8a344SAdam Ford 325cf12ac9SGeert Uytterhoeven reg_3p3v: regulator-3p3v { 33a1d8a344SAdam Ford compatible = "regulator-fixed"; 34a1d8a344SAdam Ford regulator-name = "fixed-3.3V"; 35a1d8a344SAdam Ford regulator-min-microvolt = <3300000>; 36a1d8a344SAdam Ford regulator-max-microvolt = <3300000>; 37a1d8a344SAdam Ford regulator-boot-on; 38a1d8a344SAdam Ford regulator-always-on; 39a1d8a344SAdam Ford }; 40a1d8a344SAdam Ford 41a1d8a344SAdam Ford wlan_pwrseq: wlan_pwrseq { 42a1d8a344SAdam Ford compatible = "mmc-pwrseq-simple"; 43a1d8a344SAdam Ford reset-gpios = <&pca9654 1 GPIO_ACTIVE_LOW>; 44a1d8a344SAdam Ford clocks = <&osc_32k>; 45a1d8a344SAdam Ford clock-names = "ext_clock"; 46a1d8a344SAdam Ford post-power-on-delay-ms = <80>; 47a1d8a344SAdam Ford }; 48a1d8a344SAdam Ford}; 49a1d8a344SAdam Ford 50a1d8a344SAdam Ford&avb { 51a1d8a344SAdam Ford pinctrl-0 = <&avb_pins>; 52a1d8a344SAdam Ford pinctrl-names = "default"; 5359a8bda0SGeert Uytterhoeven phy-mode = "rgmii-rxid"; 54a1d8a344SAdam Ford phy-handle = <&phy0>; 55a5200e63SGeert Uytterhoeven rx-internal-delay-ps = <1800>; 56a5200e63SGeert Uytterhoeven tx-internal-delay-ps = <2000>; 570decd50bSAdam Ford clocks = <&cpg CPG_MOD 812>, <&versaclock5 4>; 580decd50bSAdam Ford clock-names = "fck", "refclk"; 59a1d8a344SAdam Ford status = "okay"; 60a1d8a344SAdam Ford 61a1d8a344SAdam Ford phy0: ethernet-phy@0 { 6218a24271SGeert Uytterhoeven compatible = "ethernet-phy-id004d.d074", 6318a24271SGeert Uytterhoeven "ethernet-phy-ieee802.3-c22"; 64a1d8a344SAdam Ford reg = <0>; 65a1d8a344SAdam Ford interrupt-parent = <&gpio2>; 66a1d8a344SAdam Ford interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 67a1d8a344SAdam Ford reset-gpios = <&gpio2 10 GPIO_ACTIVE_LOW>; 68a1d8a344SAdam Ford }; 69a1d8a344SAdam Ford}; 70a1d8a344SAdam Ford 71a1d8a344SAdam Ford&extal_clk { 72a1d8a344SAdam Ford clock-frequency = <16666666>; 73a1d8a344SAdam Ford}; 74a1d8a344SAdam Ford 75a1d8a344SAdam Ford&extalr_clk { 76a1d8a344SAdam Ford clock-frequency = <32768>; 77a1d8a344SAdam Ford}; 78a1d8a344SAdam Ford 79a1d8a344SAdam Ford&gpio6 { 8048d8ee5bSGeert Uytterhoeven usb-hub-reset-hog { 81a1d8a344SAdam Ford gpio-hog; 82a1d8a344SAdam Ford gpios = <10 GPIO_ACTIVE_HIGH>; 83a1d8a344SAdam Ford output-high; 84a1d8a344SAdam Ford line-name = "usb-hub-reset"; 85a1d8a344SAdam Ford }; 86a1d8a344SAdam Ford}; 87a1d8a344SAdam Ford 88a1d8a344SAdam Ford&hscif0 { 89a1d8a344SAdam Ford pinctrl-0 = <&hscif0_pins>; 90a1d8a344SAdam Ford pinctrl-names = "default"; 91a1d8a344SAdam Ford uart-has-rtscts; 92a1d8a344SAdam Ford status = "okay"; 93a1d8a344SAdam Ford 94a1d8a344SAdam Ford bluetooth { 95a1d8a344SAdam Ford compatible = "brcm,bcm43438-bt"; 96a1d8a344SAdam Ford shutdown-gpios = <&pca9654 2 GPIO_ACTIVE_HIGH>; 97a1d8a344SAdam Ford host-wakeup-gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>; 98a1d8a344SAdam Ford device-wakeup-gpios = <&pca9654 5 GPIO_ACTIVE_HIGH>; 99a1d8a344SAdam Ford clocks = <&osc_32k>; 100a1d8a344SAdam Ford clock-names = "extclk"; 101db030c5aSAdam Ford max-speed = <4000000>; 102a1d8a344SAdam Ford }; 103a1d8a344SAdam Ford}; 104a1d8a344SAdam Ford 105a1d8a344SAdam Ford&hscif2 { 106a1d8a344SAdam Ford status = "okay"; 107a1d8a344SAdam Ford pinctrl-0 = <&hscif2_pins>; 108a1d8a344SAdam Ford pinctrl-names = "default"; 109a1d8a344SAdam Ford}; 110a1d8a344SAdam Ford 111a1d8a344SAdam Ford&i2c4 { 112a1d8a344SAdam Ford status = "okay"; 113900d9fc3SAdam Ford clock-frequency = <100000>; 114a1d8a344SAdam Ford 115a1d8a344SAdam Ford pca9654: gpio@20 { 116a1d8a344SAdam Ford compatible = "onnn,pca9654"; 117a1d8a344SAdam Ford reg = <0x20>; 118a1d8a344SAdam Ford gpio-controller; 119a1d8a344SAdam Ford #gpio-cells = <2>; 120a1d8a344SAdam Ford gpio-line-names = 121a1d8a344SAdam Ford "i2c4_20_0", 122a1d8a344SAdam Ford "wl_reg_on", 123a1d8a344SAdam Ford "bt_reg_on", 124a1d8a344SAdam Ford "i2c4_20_3", 125a1d8a344SAdam Ford "i2c4_20_4", 126a1d8a344SAdam Ford "bt_dev_wake", 127a1d8a344SAdam Ford "i2c4_20_6", 128a1d8a344SAdam Ford "i2c4_20_7"; 129a1d8a344SAdam Ford }; 130a1d8a344SAdam Ford 131a1d8a344SAdam Ford pca9654_lte: gpio@21 { 132a1d8a344SAdam Ford compatible = "onnn,pca9654"; 133a1d8a344SAdam Ford reg = <0x21>; 134a1d8a344SAdam Ford interrupt-parent = <&gpio5>; 135a1d8a344SAdam Ford interrupts = <25 IRQ_TYPE_EDGE_FALLING>; 136a1d8a344SAdam Ford interrupt-controller; 137a1d8a344SAdam Ford #interrupt-cells = <2>; 138a1d8a344SAdam Ford gpio-controller; 139a1d8a344SAdam Ford #gpio-cells = <2>; 140a1d8a344SAdam Ford gpio-line-names = 141a1d8a344SAdam Ford "i2c4_21_0", 142a1d8a344SAdam Ford "zoe_pwr_on", 143a1d8a344SAdam Ford "zoe_extint", 144a1d8a344SAdam Ford "zoe_reset_n", 145a1d8a344SAdam Ford "sara_reset", 146a1d8a344SAdam Ford "i2c4_21_5", 147a1d8a344SAdam Ford "sara_pwr_off", 148a1d8a344SAdam Ford "sara_networking_status"; 149a1d8a344SAdam Ford }; 150a1d8a344SAdam Ford 151a1d8a344SAdam Ford eeprom@50 { 15274477936SGeert Uytterhoeven compatible = "microchip,24c64", "atmel,24c64"; 153a1d8a344SAdam Ford pagesize = <32>; 154a1d8a344SAdam Ford read-only; /* Manufacturing EEPROM programmed at factory */ 155a1d8a344SAdam Ford reg = <0x50>; 156a1d8a344SAdam Ford }; 157a1d8a344SAdam Ford 158a1d8a344SAdam Ford rtc@51 { 159a1d8a344SAdam Ford compatible = "nxp,pcf85263"; 160a1d8a344SAdam Ford reg = <0x51>; 161a1d8a344SAdam Ford }; 162a1d8a344SAdam Ford 163a1d8a344SAdam Ford versaclock5: versaclock_som@6a { 164a1d8a344SAdam Ford compatible = "idt,5p49v6965"; 165a1d8a344SAdam Ford reg = <0x6a>; 166a1d8a344SAdam Ford #clock-cells = <1>; 167a1d8a344SAdam Ford clocks = <&x304_clk>; 168a1d8a344SAdam Ford clock-names = "xin"; 169a1d8a344SAdam Ford /* du_dotclkin0, du_dotclkin2, usb_extal, avb_txcrefclk */ 170a1d8a344SAdam Ford assigned-clocks = <&versaclock5 1>, 171a1d8a344SAdam Ford <&versaclock5 2>, 172a1d8a344SAdam Ford <&versaclock5 3>, 173a1d8a344SAdam Ford <&versaclock5 4>; 174fe82bb4dSAdam Ford 175a1d8a344SAdam Ford assigned-clock-rates = <33333333>, <33333333>, <50000000>, <125000000>; 176fe82bb4dSAdam Ford 177fe82bb4dSAdam Ford OUT1 { 178fe82bb4dSAdam Ford idt,mode = <VC5_CMOS>; 179fe82bb4dSAdam Ford idt,voltage-microvolt = <1800000>; 180fe82bb4dSAdam Ford idt,slew-percent = <100>; 181fe82bb4dSAdam Ford }; 182fe82bb4dSAdam Ford 183fe82bb4dSAdam Ford OUT2 { 184fe82bb4dSAdam Ford idt,mode = <VC5_CMOS>; 185fe82bb4dSAdam Ford idt,voltage-microvolt = <1800000>; 186fe82bb4dSAdam Ford idt,slew-percent = <100>; 187fe82bb4dSAdam Ford }; 188fe82bb4dSAdam Ford 189fe82bb4dSAdam Ford OUT3 { 190fe82bb4dSAdam Ford idt,mode = <VC5_CMOS>; 191fe82bb4dSAdam Ford idt,voltage-microvolt = <1800000>; 192fe82bb4dSAdam Ford idt,slew-percent = <100>; 193fe82bb4dSAdam Ford }; 194fe82bb4dSAdam Ford 195fe82bb4dSAdam Ford OUT4 { 196fe82bb4dSAdam Ford idt,mode = <VC5_CMOS>; 197fe82bb4dSAdam Ford idt,voltage-microvolt = <3300000>; 198fe82bb4dSAdam Ford idt,slew-percent = <100>; 199fe82bb4dSAdam Ford }; 200a1d8a344SAdam Ford }; 201a1d8a344SAdam Ford}; 202a1d8a344SAdam Ford 203a1d8a344SAdam Ford&pfc { 204a1d8a344SAdam Ford pinctrl-0 = <&scif_clk_pins>; 205a1d8a344SAdam Ford pinctrl-names = "default"; 206a1d8a344SAdam Ford 207a1d8a344SAdam Ford avb_pins: avb { 208a1d8a344SAdam Ford mux { 209a1d8a344SAdam Ford groups = "avb_link", "avb_mdio", "avb_mii"; 210a1d8a344SAdam Ford function = "avb"; 211a1d8a344SAdam Ford }; 212a1d8a344SAdam Ford 213a1d8a344SAdam Ford pins_mdio { 214a1d8a344SAdam Ford groups = "avb_mdio"; 215a1d8a344SAdam Ford drive-strength = <24>; 216a1d8a344SAdam Ford }; 217a1d8a344SAdam Ford 218a1d8a344SAdam Ford pins_mii_tx { 219a1d8a344SAdam Ford pins = "PIN_AVB_TX_CTL", "PIN_AVB_TXC", "PIN_AVB_TD0", 220a1d8a344SAdam Ford "PIN_AVB_TD1", "PIN_AVB_TD2", "PIN_AVB_TD3"; 221a1d8a344SAdam Ford drive-strength = <12>; 222a1d8a344SAdam Ford }; 223a1d8a344SAdam Ford }; 224a1d8a344SAdam Ford 225a1d8a344SAdam Ford scif2_pins: scif2 { 226a1d8a344SAdam Ford groups = "scif2_data_a"; 227a1d8a344SAdam Ford function = "scif2"; 228a1d8a344SAdam Ford }; 229a1d8a344SAdam Ford 230a1d8a344SAdam Ford hscif0_pins: hscif0 { 231a1d8a344SAdam Ford groups = "hscif0_data", "hscif0_ctrl"; 232a1d8a344SAdam Ford function = "hscif0"; 233a1d8a344SAdam Ford }; 234a1d8a344SAdam Ford 235a1d8a344SAdam Ford hscif1_pins: hscif1 { 236a1d8a344SAdam Ford groups = "hscif1_data_a", "hscif1_ctrl_a"; 237a1d8a344SAdam Ford function = "hscif1"; 238a1d8a344SAdam Ford }; 239a1d8a344SAdam Ford 240a1d8a344SAdam Ford hscif2_pins: hscif2 { 241a1d8a344SAdam Ford groups = "hscif2_data_a"; 242a1d8a344SAdam Ford function = "hscif2"; 243a1d8a344SAdam Ford }; 244a1d8a344SAdam Ford 245a1d8a344SAdam Ford scif0_pins: scif0 { 246a1d8a344SAdam Ford groups = "scif0_data"; 247a1d8a344SAdam Ford function = "scif0"; 248a1d8a344SAdam Ford }; 249a1d8a344SAdam Ford 250a1d8a344SAdam Ford scif5_pins: scif5 { 251a1d8a344SAdam Ford groups = "scif5_data_a"; 252a1d8a344SAdam Ford function = "scif5"; 253a1d8a344SAdam Ford }; 254a1d8a344SAdam Ford 255a1d8a344SAdam Ford scif_clk_pins: scif_clk { 256a1d8a344SAdam Ford groups = "scif_clk_a"; 257a1d8a344SAdam Ford function = "scif_clk"; 258a1d8a344SAdam Ford }; 259a1d8a344SAdam Ford 260a1d8a344SAdam Ford i2c0_pins: i2c0 { 261a1d8a344SAdam Ford groups = "i2c0"; 262a1d8a344SAdam Ford function = "i2c0"; 263a1d8a344SAdam Ford }; 264a1d8a344SAdam Ford 265a1d8a344SAdam Ford sdhi2_pins: sd2 { 266a1d8a344SAdam Ford groups = "sdhi2_data4", "sdhi2_ctrl"; 267a1d8a344SAdam Ford function = "sdhi2"; 268a1d8a344SAdam Ford power-source = <1800>; 269a1d8a344SAdam Ford }; 270a1d8a344SAdam Ford 271a1d8a344SAdam Ford sdhi3_pins: sd3 { 272a1d8a344SAdam Ford groups = "sdhi3_data8", "sdhi3_ctrl", "sdhi3_ds"; 273a1d8a344SAdam Ford function = "sdhi3"; 274a1d8a344SAdam Ford power-source = <1800>; 275a1d8a344SAdam Ford }; 276a1d8a344SAdam Ford}; 277a1d8a344SAdam Ford 278a1d8a344SAdam Ford&scif_clk { 279a1d8a344SAdam Ford clock-frequency = <14745600>; 280a1d8a344SAdam Ford}; 281a1d8a344SAdam Ford 282a1d8a344SAdam Ford&scif2 { 283a1d8a344SAdam Ford pinctrl-0 = <&scif2_pins>; 284a1d8a344SAdam Ford pinctrl-names = "default"; 285a1d8a344SAdam Ford status = "okay"; 286a1d8a344SAdam Ford}; 287a1d8a344SAdam Ford 288a1d8a344SAdam Ford&sdhi2 { 289a1d8a344SAdam Ford pinctrl-names = "default"; 290a1d8a344SAdam Ford pinctrl-0 = <&sdhi2_pins>; 291a1d8a344SAdam Ford bus-width = <4>; 292a1d8a344SAdam Ford vmmc-supply = <®_3p3v>; 293a1d8a344SAdam Ford vqmmc-supply = <®_1p8v>; 294a1d8a344SAdam Ford non-removable; 295a1d8a344SAdam Ford cap-power-off-card; 296a1d8a344SAdam Ford keep-power-in-suspend; 297a1d8a344SAdam Ford mmc-pwrseq = <&wlan_pwrseq>; 298a1d8a344SAdam Ford status = "okay"; 299a1d8a344SAdam Ford #address-cells = <1>; 300a1d8a344SAdam Ford #size-cells = <0>; 301a1d8a344SAdam Ford 302a1d8a344SAdam Ford brcmf: bcrmf@1 { 303a1d8a344SAdam Ford reg = <1>; 304a1d8a344SAdam Ford compatible = "brcm,bcm4329-fmac"; 305a1d8a344SAdam Ford interrupt-parent = <&gpio1>; 306a1d8a344SAdam Ford interrupts = <27 IRQ_TYPE_LEVEL_LOW>; 307a1d8a344SAdam Ford interrupt-names = "host-wake"; 308a1d8a344SAdam Ford }; 309a1d8a344SAdam Ford}; 310a1d8a344SAdam Ford 311a1d8a344SAdam Ford&sdhi3 { 312a1d8a344SAdam Ford pinctrl-0 = <&sdhi3_pins>; 313a1d8a344SAdam Ford pinctrl-1 = <&sdhi3_pins>; 314a1d8a344SAdam Ford pinctrl-names = "default", "state_uhs"; 315a1d8a344SAdam Ford vmmc-supply = <®_3p3v>; 316a1d8a344SAdam Ford vqmmc-supply = <®_1p8v>; 317a1d8a344SAdam Ford bus-width = <8>; 318a1d8a344SAdam Ford mmc-hs200-1_8v; 319d68c9edfSWolfram Sang no-sd; 320d68c9edfSWolfram Sang no-sdio; 321a1d8a344SAdam Ford non-removable; 322a1d8a344SAdam Ford fixed-emmc-driver-type = <1>; 323a1d8a344SAdam Ford status = "okay"; 324a1d8a344SAdam Ford}; 325a1d8a344SAdam Ford 32656bc5449SAdam Ford&usb2_clksel { 32756bc5449SAdam Ford clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>, 32856bc5449SAdam Ford <&versaclock5 3>, <&usb3s0_clk>; 32956bc5449SAdam Ford status = "okay"; 330a1d8a344SAdam Ford}; 331a1d8a344SAdam Ford 332a1d8a344SAdam Ford&usb3s0_clk { 333a1d8a344SAdam Ford clock-frequency = <100000000>; 334a1d8a344SAdam Ford}; 335