/* * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ /dts-v1/; #include "am33xx.dtsi" #include / { model = "TI AM3359 ICE-V2"; compatible = "ti,am3359-icev2", "ti,am33xx"; chosen { stdout-path = &uart0; tick-timer = &timer2; }; cpus { cpu@0 { cpu0-supply = <&vdd1_reg>; }; }; memory { device_type = "memory"; reg = <0x80000000 0x10000000>; /* 256 MB */ }; aliases { ethernet0 = &pruss_emac0; ethernet1 = &pruss_emac1; }; vbat: fixedregulator@0 { compatible = "regulator-fixed"; regulator-name = "vbat"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; regulator-boot-on; }; vtt_fixed: fixedregulator@1 { compatible = "regulator-fixed"; regulator-name = "vtt"; regulator-min-microvolt = <1500000>; regulator-max-microvolt = <1500000>; gpio = <&gpio2 2 GPIO_ACTIVE_HIGH>; regulator-always-on; regulator-boot-on; enable-active-high; }; /* Wakeup M3 Remoteproc */ /*wkup_m3_ipc { ti,scale-data-fw = "am335x-evm-scale-data.bin"; }; */ /* PRUSS Ethernet */ pruss_eth { compatible = "ti,am3359-prueth"; pruss = <&pruss>; sram = <&ocmcram_nocache>; interrupt-parent = <&pruss_intc>; pinctrl-0 = <&pruss_eth_default>; pinctrl-names = "default"; /* PRUSS - Ethernet 1 */ pruss_emac0: ethernet-mii0 { phy-handle = <&pruss_eth0_phy>; phy-mode = "mii"; interrupts = <20>, <22>; interrupt-names = "rx", "tx"; /* Filled in by bootloader */ local-mac-address = [00 00 00 00 00 01]; }; /* PRUSS - Ethernet 2 */ pruss_emac1: ethernet-mii1 { phy-handle = <&pruss_eth1_phy>; phy-mode = "mii"; interrupts = <21>, <23>; interrupt-names = "rx", "tx"; /* Filled in by bootloader */ local-mac-address = [00 00 00 00 00 02]; }; }; }; &am33xx_pinmux { pinctrl-names = "default"; /* PRUSS Ethernet - Ethernet 1 & Ethernet 2, both MII */ pruss_eth_default: pruss_eth_default { pinctrl-single,pins = < /* Ethernet 1 PRU1_MII0 */ 0x20 ( PIN_INPUT | MUX_MODE5 ) /* (U10) gpmc_ad8.pr1_mii_mt0_clk */ 0x38 ( PIN_OUTPUT | MUX_MODE5 ) /* (V13) gpmc_ad14.pr1_mii0_txd0 */ 0x34 ( PIN_OUTPUT | MUX_MODE5 ) /* (R12) gpmc_ad13.pr1_mii0_txd1 */ 0x30 ( PIN_OUTPUT | MUX_MODE5 ) /* (T12) gpmc_ad12.pr1_mii0_txd2 */ 0x2c ( PIN_OUTPUT | MUX_MODE5 ) /* (U12) gpmc_ad11.pr1_mii0_txd3 */ 0xcc ( PIN_INPUT | MUX_MODE5 ) /* (U4) lcd_data11.pr1_mii0_rxd0 */ 0xc8 ( PIN_INPUT | MUX_MODE5 ) /* (U3) lcd_data10.pr1_mii0_rxd1 */ 0xc4 ( PIN_INPUT | MUX_MODE5 ) /* (U2) lcd_data9.pr1_mii0_rxd2 */ 0xc0 ( PIN_INPUT | MUX_MODE5 ) /* (U1) lcd_data8.pr1_mii0_rxd3 */ 0x28 ( PIN_OUTPUT | MUX_MODE5 ) /* (T11) gpmc_ad10.pr1_mii0_txen */ 0xd8 ( PIN_INPUT | MUX_MODE5 ) /* (V4) lcd_data14.pr1_mii_mr0_clk */ 0xdc ( PIN_INPUT | MUX_MODE5 ) /* (T5) lcd_data15.pr1_mii0_rxdv */ 0xd4 ( PIN_INPUT | MUX_MODE5 ) /* (V3) lcd_data13.pr1_mii0_rxer */ 0xd0 ( PIN_INPUT | MUX_MODE5 ) /* (V2) lcd_data12.pr1_mii0_rxlink */ 0xe8 ( PIN_INPUT | MUX_MODE2 ) /* (V5) lcd_pclk.pr1_mii0_crs */ 0x24 ( PIN_INPUT | MUX_MODE5 ) /* (T10) gpmc_ad9.pr1_mii0_col */ /* Ethernet 2 PRU1_MII1 */ 0x40 ( PIN_INPUT | MUX_MODE5 ) /* (R13) gpmc_a0.pr1_mii_mt1_clk */ 0x50 ( PIN_OUTPUT | MUX_MODE5 ) /* (R14) gpmc_a4.pr1_mii1_txd0 */ 0x4c ( PIN_OUTPUT | MUX_MODE5 ) /* (T14) gpmc_a3.pr1_mii1_txd1 */ 0x48 ( PIN_OUTPUT | MUX_MODE5 ) /* (U14) gpmc_a2.pr1_mii1_txd2 */ 0x44 ( PIN_OUTPUT | MUX_MODE5 ) /* (V14) gpmc_a1.pr1_mii1_txd3 */ 0x60 ( PIN_INPUT | MUX_MODE5 ) /* (V16) gpmc_a8.pr1_mii1_rxd0 */ 0x5c ( PIN_INPUT | MUX_MODE5 ) /* (T15) gpmc_a7.pr1_mii1_rxd1 */ 0x58 ( PIN_INPUT | MUX_MODE5 ) /* (U15) gpmc_a6.pr1_mii1_rxd2 */ 0x54 ( PIN_INPUT | MUX_MODE5 ) /* (V15) gpmc_a5.pr1_mii1_rxd3 */ 0x74 ( PIN_OUTPUT | MUX_MODE5 ) /* (U17) gpmc_wpn.pr1_mii1_txen */ 0x64 ( PIN_INPUT | MUX_MODE5 ) /* (U16) gpmc_a9.pr1_mii_mr1_clk */ 0x68 ( PIN_INPUT | MUX_MODE5 ) /* (T16) gpmc_a10.pr1_mii1_rxdv */ 0x6c ( PIN_INPUT | MUX_MODE5 ) /* (V17) gpmc_a11.pr1_mii1_rxer */ 0x78 ( PIN_INPUT | MUX_MODE5 ) /* (U18) gpmc_be1n.pr1_mii1_rxlink */ 0xec ( PIN_INPUT | MUX_MODE2 ) /* (R6) lcd_ac_bias_en.pr1_mii1_crs */ 0x70 ( PIN_INPUT | MUX_MODE5 ) /* (T17) gpmc_wait0.pr1_mii1_col */ >; }; pruss_mdio_default: pruss_mdio_default { pinctrl-single,pins = < 0x8c ( PIN_OUTPUT | MUX_MODE5 ) /* (V12) gpmc_clk.pr1_mdio_mdclk */ 0x88 ( PIN_INPUT | MUX_MODE5 ) /* (T13) gpmc_csn3.pr1_mdio_data */ /* 0x140 ( PIN_INPUT_PULLUP | MUX_MODE7 ) /* (M16) gmii1_rxd0.gpio2[21] */ >; }; gpio3_pins_default: gpio3_pins_default { pinctrl-single,pins = < 0x108 ( PIN_INPUT | MUX_MODE7 ) /* (H16) gmii1_col.gpio3[0] */ /* 0x110 ( PIN_INPUT | MUX_MODE7 ) /* (J15) gmii1_rxer.gpio3[2] */ 0x114 ( PIN_INPUT | MUX_MODE7 ) /* (J16) gmii1_txen.gpio3[3] */ /* 0x118 ( PIN_INPUT | MUX_MODE7 ) /* (J17) gmii1_rxdv.gpio3[4] */ 0x12c ( PIN_INPUT | MUX_MODE7 ) /* (K18) gmii1_txclk.gpio3[9] */ 0x130 ( PIN_INPUT | MUX_MODE7 ) /* (L18) gmii1_rxclk.gpio3[10] */ 0x194 ( PIN_INPUT | MUX_MODE7 ) /* (B13) mcasp0_fsx.gpio3[15] */ 0x198 ( PIN_INPUT | MUX_MODE7 ) /* (D12) mcasp0_axr0.gpio3[16] */ 0x19c ( PIN_INPUT | MUX_MODE7 ) /* (C12) mcasp0_ahclkr.gpio3[17] */ 0x1a0 ( PIN_INPUT | MUX_MODE7 ) /* (B12) mcasp0_aclkr.gpio3[18] */ 0x1a4 ( PIN_INPUT | MUX_MODE7 ) /* (C13) mcasp0_fsr.gpio3[19] */ 0x1a8 ( PIN_INPUT | MUX_MODE7 ) /* (D13) mcasp0_axr1.gpio3[20] */ >; }; gpio2_pins_default: gpio2_pins_default { pinctrl-single,pins = < 0x94 ( PIN_INPUT | MUX_MODE7 ) /* (T7) gpmc_oen_ren.gpio2[3] */ 0x98 ( PIN_INPUT | MUX_MODE7 ) /* (U6) gpmc_wen.gpio2[4] */ 0x9c ( PIN_INPUT | MUX_MODE7 ) /* (T6) gpmc_be0n_cle.gpio2[5] */ 0x134 ( PIN_INPUT | MUX_MODE7 ) /* (L17) gmii1_rxd3.gpio2[18] */ 0x138 ( PIN_INPUT | MUX_MODE7 ) /* (L16) gmii1_rxd2.gpio2[19] */ 0x13c ( PIN_INPUT | MUX_MODE7 ) /* (L15) gmii1_rxd1.gpio2[20] */ 0xe4 ( PIN_INPUT | MUX_MODE7 ) /* (R5) lcd_hsync.gpio2[23] */ >; }; gpio1_pins_default: gpio1_pins_default { pinctrl-single,pins = < 0x7c ( PIN_INPUT | MUX_MODE7 ) /* (V6) gpmc_csn0.gpio1[29] */ >; }; gpio0_pins_default: gpio0_pins_default { pinctrl-single,pins = < 0x148 ( PIN_INPUT | MUX_MODE7 ) /* (M17) mdio_data.gpio0[0] */ 0x14c ( PIN_INPUT | MUX_MODE7 ) /* (M18) mdio_clk.gpio0[1] */ 0x1b4 ( PIN_INPUT | MUX_MODE7 ) /* (D14) xdma_event_intr1.gpio0[20] */ 0x124 ( PIN_INPUT | MUX_MODE7 ) /* (K16) gmii1_txd1.gpio0[21] */ 0x144 ( PIN_INPUT | MUX_MODE7 ) /* (H18) rmii1_refclk.gpio0[29] */ >; }; dcan0_pins_default: dcan0_pins_default { pinctrl-single,pins = < 0x17c ( PIN_INPUT | MUX_MODE2 ) /* (D17) uart1_rtsn.dcan0_rx */ 0x178 ( PIN_OUTPUT | MUX_MODE2 ) /* (D18) uart1_ctsn.dcan0_tx */ >; }; mmc1_pins: pinmux_mmc1_pins { pinctrl-single,pins = < 0x100 ( PIN_INPUT_PULLUP | MUX_MODE0 ) /* (G17) mmc0_clk.mmc0_clk */ 0x104 ( PIN_INPUT_PULLUP | MUX_MODE0 ) /* (G18) mmc0_cmd.mmc0_cmd */ 0xfc ( PIN_INPUT_PULLUP | MUX_MODE0 ) /* (G16) mmc0_dat0.mmc0_dat0 */ 0xf8 ( PIN_INPUT_PULLUP | MUX_MODE0 ) /* (G15) mmc0_dat1.mmc0_dat1 */ 0xf4 ( PIN_INPUT_PULLUP | MUX_MODE0 ) /* (F18) mmc0_dat2.mmc0_dat2 */ 0xf0 ( PIN_INPUT_PULLUP | MUX_MODE0 ) /* (F17) mmc0_dat3.mmc0_dat3 */ 0x160 ( PIN_INPUT_PULLUP | MUX_MODE5 ) /* (C15) spi0_cs1.mmc0_sdcd */ 0x164 ( PIN_INPUT_PULLDOWN | MUX_MODE5 ) /* (C18) eCAP0_in_PWM0_out.mmc0_sdwp */ >; }; mmc2_pins: mmc2_pins_default { pinctrl-single,pins = < 0x80 ( PIN_INPUT_PULLUP | MUX_MODE2 ) /* (U9) gpmc_csn1.mmc1_clk */ 0x84 ( PIN_INPUT_PULLUP | MUX_MODE2 ) /* (V9) gpmc_csn2.mmc1_cmd */ 0x0 ( PIN_INPUT_PULLUP | MUX_MODE1 ) /* (U7) gpmc_ad0.mmc1_dat0 */ 0x4 ( PIN_INPUT_PULLUP | MUX_MODE1 ) /* (V7) gpmc_ad1.mmc1_dat1 */ 0x8 ( PIN_INPUT_PULLUP | MUX_MODE1 ) /* (R8) gpmc_ad2.mmc1_dat2 */ 0xc ( PIN_INPUT_PULLUP | MUX_MODE1 ) /* (T8) gpmc_ad3.mmc1_dat3 */ 0x10 ( PIN_INPUT_PULLUP | MUX_MODE1 ) /* (U8) gpmc_ad4.mmc1_dat4 */ 0x14 ( PIN_INPUT_PULLUP | MUX_MODE1 ) /* (V8) gpmc_ad5.mmc1_dat5 */ 0x18 ( PIN_INPUT_PULLUP | MUX_MODE1 ) /* (R9) gpmc_ad6.mmc1_dat6 */ 0x1c ( PIN_INPUT_PULLUP | MUX_MODE1 ) /* (T9) gpmc_ad7.mmc1_dat7 */ >; }; i2c0_pins: pinmux_i2c0_pins { pinctrl-single,pins = < 0x188 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_sda.i2c0_sda */ 0x18c (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_scl.i2c0_scl */ >; }; i2c1_pins: pinmux_i2c1_pins { pinctrl-single,pins = < 0x16c ( PIN_INPUT | MUX_MODE3 ) /* (E17) uart0_rtsn.I2C1_SCL */ 0x168 ( PIN_INPUT | MUX_MODE3 ) /* (E18) uart0_ctsn.I2C1_SDA */ >; }; usb1_pins_default: usb1_pins_default { pinctrl-single,pins = < 0x21c ( PIN_OUTPUT | MUX_MODE0 ) /* (F16) USB0_DRVVBUS.USB0_DRVVBUS */ >; }; spi0_pins_default: spi0_pins_default { pinctrl-single,pins = < 0x150 ( PIN_INPUT | MUX_MODE0 ) /* (A17) spi0_sclk.spi0_sclk */ 0x154 ( PIN_INPUT | MUX_MODE0 ) /* (B17) spi0_d0.spi0_d0 */ 0x158 ( PIN_INPUT | MUX_MODE0 ) /* (B16) spi0_d1.spi0_d1 */ 0x15c ( PIN_OUTPUT | MUX_MODE0 ) /* (A16) spi0_cs0.spi0_cs0 */ >; }; uart0_pins: pinmux_uart0_pins { pinctrl-single,pins = < 0x170 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd */ 0x174 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd */ >; }; uart1_pins: pinmux_uart1_pins { pinctrl-single,pins = < 0x180 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart1_rxd.uart1_rxd */ 0x184 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_txd.uart1_txd */ >; }; uart4_pins: uart4_pins_default { pinctrl-single,pins = < 0x11c ( PIN_INPUT | MUX_MODE3 ) /* (J18) gmii1_txd3.uart4_rxd */ 0x120 ( PIN_OUTPUT | MUX_MODE3 ) /* (K15) gmii1_txd2.uart4_txd */ >; }; }; &uart0 { pinctrl-names = "default"; pinctrl-0 = <&uart0_pins>; status = "okay"; }; &uart1 { pinctrl-names = "default"; pinctrl-0 = <&uart1_pins>; status = "okay"; }; &uart4 { pinctrl-names = "default"; pinctrl-0 = <&uart4_pins>; status = "okay"; }; /* SPI0 */ &spi0 { status = "disabled"; pinctrl-names = "default"; pinctrl-0 = <&spi0_pins_default>; ti,spi-num-cs = <1>; ti,pindir-d0-in-d1-out; //spi-cpol; fram@0 { // spi-cpol; reg = <0x0>; spi-max-frequency = <1000000>; compatible = "atmel,at25", "cypress,fm25l16b"; pagesize = <256>; size = <2048>; address-width = <16>; }; }; &i2c0 { pinctrl-names = "default"; pinctrl-0 = <&i2c0_pins>; status = "okay"; clock-frequency = <400000>; tps: tps@2d { reg = <0x2d>; }; }; &i2c1 { pinctrl-names = "default"; pinctrl-0 = <&i2c1_pins>; status = "disabled"; clock-frequency = <400000>; }; &usb { status = "disabled"; }; &usb_ctrl_mod { status = "disabled"; }; &usb0_phy { status = "disabled"; }; &usb1_phy { status = "disabled"; }; &usb0 { status = "disabled"; }; &usb1 { status = "disabled"; dr_mode = "host"; }; /*&cppi41dma { status = "okay"; };*/ #include "tps65910.dtsi" &tps { interrupts = <7>; interrupt-parent = <&intc>; vcc1-supply = <&vbat>; vcc2-supply = <&vbat>; vcc3-supply = <&vbat>; vcc4-supply = <&vbat>; vcc5-supply = <&vbat>; vcc6-supply = <&vbat>; vcc7-supply = <&vbat>; vccio-supply = <&vbat>; regulators { vrtc_reg: regulator@0 { regulator-always-on; }; vio_reg: regulator@1 { regulator-always-on; }; vdd1_reg: regulator@2 { /* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */ regulator-name = "vdd_mpu"; regulator-min-microvolt = <912500>; regulator-max-microvolt = <1312500>; regulator-boot-on; regulator-always-on; }; vdd2_reg: regulator@3 { /* VDD_CORE voltage limits 0.95V - 1.1V with +/-4% tolerance */ regulator-name = "vdd_core"; regulator-min-microvolt = <912500>; regulator-max-microvolt = <1150000>; regulator-boot-on; regulator-always-on; }; vdd3_reg: regulator@4 { regulator-always-on; }; vdig1_reg: regulator@5 { regulator-always-on; }; vdig2_reg: regulator@6 { regulator-always-on; }; vpll_reg: regulator@7 { regulator-always-on; }; vdac_reg: regulator@8 { regulator-always-on; }; vaux1_reg: regulator@9 { regulator-always-on; }; vaux2_reg: regulator@10 { regulator-always-on; }; vaux33_reg: regulator@11 { regulator-always-on; }; vmmc_reg: regulator@12 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <3300000>; regulator-always-on; }; }; }; /******************/ /* MMC */ /******************/ /* MMC1 - SD-Card */ &mmc1 { pinctrl-names = "default"; pinctrl-0 = <&mmc1_pins>; vmmc-supply = <&vmmc_reg>; bus-width = <4>; status = "okay"; }; /* MMC2 - eMMC */ &mmc2 { pinctrl-names = "default"; pinctrl-0 = <&mmc2_pins>; vmmc-supply = <&vmmc_reg>; max-frequency = <26000000>; bus-width = <8>; //ti,non-removable; status = "disabled"; }; /******************/ /* &edma { ti,edma-xbar-event-map = /bits/ 16 <1 12 2 13>; }; &sham { status = "okay"; }; &aes { status = "okay"; }; */ /******************/ /* CAN */ /******************/ /* CAN0 */ &dcan0 { status = "okey"; pinctrl-names = "default"; pinctrl-0 = <&dcan0_pins_default>; }; /******************/ /* GPIO */ &gpio0 { ti,no-reset-on-init; ti,no-idle-on-init; pinctrl-names = "default"; pinctrl-0 = <&gpio0_pins_default>; status = "disabled"; }; &gpio1 { ti,no-reset-on-init; ti,no-idle-on-init; pinctrl-names = "default"; pinctrl-0 = <&gpio1_pins_default>; status = "disabled"; }; &gpio2 { ti,no-reset-on-init; ti,no-idle-on-init; pinctrl-names = "default"; pinctrl-0 = <&gpio2_pins_default>; status = "disabled"; }; &gpio3 { ti,no-reset-on-init; ti,no-idle-on-init; pinctrl-names = "default"; pinctrl-0 = <&gpio3_pins_default>; status = "disabled"; }; /******************/ &pruss_mdio { pinctrl-0 = <&pruss_mdio_default>; pinctrl-names = "default"; /* reset-gpios = <&gpio2 21 GPIO_ACTIVE_LOW>; reset-delay-us = <2>; /* PHY datasheet states 1uS min */ status = "okay"; pruss_eth0_phy: ethernet-phy@1 { reg = <1>; }; pruss_eth1_phy: ethernet-phy@3 { reg = <3>; }; }; &rtc{ status="disabled"; /* ti,hwmods = "disabled"; */ ti,hwmod-disabled; };