// SPDX-License-Identifier: GPL-2.0 /* * Copyright 2020, Compass Electronics Group, LLC */ #include <dt-bindings/gpio/gpio.h> #include <dt-bindings/clock/versaclock.h> / { memory@48000000 { device_type = "memory"; /* first 128MB is reserved for secure area. */ reg = <0x0 0x48000000 0x0 0x78000000>; }; osc_32k: osc_32k { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <32768>; clock-output-names = "osc_32k"; }; reg_1p8v: regulator-1p8v { compatible = "regulator-fixed"; regulator-name = "fixed-1.8V"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-boot-on; regulator-always-on; }; reg_3p3v: regulator-3p3v { compatible = "regulator-fixed"; regulator-name = "fixed-3.3V"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-boot-on; regulator-always-on; }; wlan_pwrseq: wlan_pwrseq { compatible = "mmc-pwrseq-simple"; reset-gpios = <&pca9654 1 GPIO_ACTIVE_LOW>; clocks = <&osc_32k>; clock-names = "ext_clock"; post-power-on-delay-ms = <80>; }; }; &avb { pinctrl-0 = <&avb_pins>; pinctrl-names = "default"; phy-mode = "rgmii-rxid"; phy-handle = <&phy0>; rx-internal-delay-ps = <1800>; tx-internal-delay-ps = <2000>; clocks = <&cpg CPG_MOD 812>, <&versaclock5 4>; clock-names = "fck", "refclk"; status = "okay"; phy0: ethernet-phy@0 { compatible = "ethernet-phy-id0022.1640", "ethernet-phy-ieee802.3-c22"; reg = <0>; interrupt-parent = <&gpio2>; interrupts = <11 IRQ_TYPE_LEVEL_LOW>; reset-gpios = <&gpio2 10 GPIO_ACTIVE_LOW>; }; }; &extal_clk { clock-frequency = <16666666>; }; &extalr_clk { clock-frequency = <32768>; }; &gpio6 { usb-hub-reset-hog { gpio-hog; gpios = <10 GPIO_ACTIVE_HIGH>; output-high; line-name = "usb-hub-reset"; }; }; &hscif0 { pinctrl-0 = <&hscif0_pins>; pinctrl-names = "default"; uart-has-rtscts; status = "okay"; bluetooth { compatible = "brcm,bcm43438-bt"; shutdown-gpios = <&pca9654 2 GPIO_ACTIVE_HIGH>; host-wakeup-gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>; device-wakeup-gpios = <&pca9654 5 GPIO_ACTIVE_HIGH>; clocks = <&osc_32k>; clock-names = "extclk"; max-speed = <4000000>; }; }; &hscif2 { status = "okay"; pinctrl-0 = <&hscif2_pins>; pinctrl-names = "default"; }; &i2c4 { status = "okay"; clock-frequency = <100000>; pca9654: gpio@20 { compatible = "onnn,pca9654"; reg = <0x20>; gpio-controller; #gpio-cells = <2>; gpio-line-names = "i2c4_20_0", "wl_reg_on", "bt_reg_on", "i2c4_20_3", "i2c4_20_4", "bt_dev_wake", "i2c4_20_6", "i2c4_20_7"; }; pca9654_lte: gpio@21 { compatible = "onnn,pca9654"; reg = <0x21>; interrupt-parent = <&gpio5>; interrupts = <25 IRQ_TYPE_EDGE_FALLING>; interrupt-controller; #interrupt-cells = <2>; gpio-controller; #gpio-cells = <2>; gpio-line-names = "i2c4_21_0", "zoe_pwr_on", "zoe_extint", "zoe_reset_n", "sara_reset", "i2c4_21_5", "sara_pwr_off", "sara_networking_status"; }; eeprom@50 { compatible = "microchip,24c64", "atmel,24c64"; pagesize = <32>; read-only; /* Manufacturing EEPROM programmed at factory */ reg = <0x50>; }; rtc@51 { compatible = "nxp,pcf85263"; reg = <0x51>; }; versaclock5: versaclock_som@6a { compatible = "idt,5p49v6965"; reg = <0x6a>; #clock-cells = <1>; clocks = <&x304_clk>; clock-names = "xin"; /* du_dotclkin0, du_dotclkin2, usb_extal, avb_txcrefclk */ assigned-clocks = <&versaclock5 1>, <&versaclock5 2>, <&versaclock5 3>, <&versaclock5 4>; assigned-clock-rates = <33333333>, <33333333>, <50000000>, <125000000>; OUT1 { idt,mode = <VC5_CMOS>; idt,voltage-microvolt = <1800000>; idt,slew-percent = <100>; }; OUT2 { idt,mode = <VC5_CMOS>; idt,voltage-microvolt = <1800000>; idt,slew-percent = <100>; }; OUT3 { idt,mode = <VC5_CMOS>; idt,voltage-microvolt = <1800000>; idt,slew-percent = <100>; }; OUT4 { idt,mode = <VC5_CMOS>; idt,voltage-microvolt = <3300000>; idt,slew-percent = <100>; }; }; }; &pfc { pinctrl-0 = <&scif_clk_pins>; pinctrl-names = "default"; avb_pins: avb { mux { groups = "avb_link", "avb_mdio", "avb_mii"; function = "avb"; }; pins_mdio { groups = "avb_mdio"; drive-strength = <24>; }; pins_mii_tx { pins = "PIN_AVB_TX_CTL", "PIN_AVB_TXC", "PIN_AVB_TD0", "PIN_AVB_TD1", "PIN_AVB_TD2", "PIN_AVB_TD3"; drive-strength = <12>; }; }; scif2_pins: scif2 { groups = "scif2_data_a"; function = "scif2"; }; hscif0_pins: hscif0 { groups = "hscif0_data", "hscif0_ctrl"; function = "hscif0"; }; hscif1_pins: hscif1 { groups = "hscif1_data_a", "hscif1_ctrl_a"; function = "hscif1"; }; hscif2_pins: hscif2 { groups = "hscif2_data_a"; function = "hscif2"; }; scif0_pins: scif0 { groups = "scif0_data"; function = "scif0"; }; scif5_pins: scif5 { groups = "scif5_data_a"; function = "scif5"; }; scif_clk_pins: scif_clk { groups = "scif_clk_a"; function = "scif_clk"; }; i2c0_pins: i2c0 { groups = "i2c0"; function = "i2c0"; }; sdhi2_pins: sd2 { groups = "sdhi2_data4", "sdhi2_ctrl"; function = "sdhi2"; power-source = <1800>; }; sdhi3_pins: sd3 { groups = "sdhi3_data8", "sdhi3_ctrl", "sdhi3_ds"; function = "sdhi3"; power-source = <1800>; }; }; &scif_clk { clock-frequency = <14745600>; }; &scif2 { pinctrl-0 = <&scif2_pins>; pinctrl-names = "default"; status = "okay"; }; &sdhi2 { pinctrl-names = "default"; pinctrl-0 = <&sdhi2_pins>; bus-width = <4>; vmmc-supply = <®_3p3v>; vqmmc-supply = <®_1p8v>; non-removable; cap-power-off-card; keep-power-in-suspend; mmc-pwrseq = <&wlan_pwrseq>; status = "okay"; #address-cells = <1>; #size-cells = <0>; brcmf: bcrmf@1 { reg = <1>; compatible = "brcm,bcm4329-fmac"; interrupt-parent = <&gpio1>; interrupts = <27 IRQ_TYPE_LEVEL_LOW>; interrupt-names = "host-wake"; }; }; &sdhi3 { pinctrl-0 = <&sdhi3_pins>; pinctrl-1 = <&sdhi3_pins>; pinctrl-names = "default", "state_uhs"; vmmc-supply = <®_3p3v>; vqmmc-supply = <®_1p8v>; bus-width = <8>; mmc-hs200-1_8v; no-sd; no-sdio; non-removable; fixed-emmc-driver-type = <1>; status = "okay"; }; &usb2_clksel { clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>, <&versaclock5 3>, <&usb3s0_clk>; status = "okay"; }; &usb3s0_clk { clock-frequency = <100000000>; };