// SPDX-License-Identifier: GPL-2.0 /* * AM625 SK: https://www.ti.com/lit/zip/sprr448 * * Copyright (C) 2021-2022 Texas Instruments Incorporated - https://www.ti.com/ */ /dts-v1/; #include #include #include #include #include "k3-am625.dtsi" #include "k3-am62x-sk-common.dtsi" #include / { compatible = "ti,am625-sk", "ti,am625"; model = "TL62x-EVM"; aliases { rtc0 = &bq32002; rtc1 = &wkup_rtc0; serial3 = &main_uart1; serial4 = &main_uart2; serial5 = &main_uart4; serial6 = &main_uart5; serial7 = &main_uart6; serial8 = &mcu_uart0; serial9 = &wkup_uart0; }; transceiver0: can-phy0 { compatible = "ti,tcan1042"; #phy-cells = <0>; max-bitrate = <5000000>; }; transceiver1: can-phy1 { compatible = "ti,tcan1042"; #phy-cells = <0>; max-bitrate = <5000000>; }; opp-table { /* Add 1.4GHz OPP for am625-sk board. Requires VDD_CORE to be at 0.85V */ opp-1400000000 { opp-hz = /bits/ 64 <1400000000>; opp-supported-hw = <0x01 0x0004>; clock-latency-ns = <6000000>; }; }; /delete-node/ tlv320_mclk; tlv320_mclk: clk-0 { #clock-cells = <0>; compatible = "fixed-clock"; clock-frequency = <24567000>; }; /delete-node/ leds; leds { compatible = "gpio-leds"; pinctrl-names = "default"; pinctrl-0 = <&main_leds_pins_default &mcu_leds_pins_default>; som_led0 { label = "heartbeat"; gpios = <&main_gpio0 1 GPIO_ACTIVE_HIGH>; linux,default-trigger = "heartbeat"; function = LED_FUNCTION_HEARTBEAT; default-state = "off"; }; som_led1 { label = "disk"; gpios = <&main_gpio0 12 GPIO_ACTIVE_HIGH>; linux,default-trigger = "mmc0"; function = LED_FUNCTION_DISK; default-state = "off"; }; run_led { label = "run_led"; gpios = <&mcu_gpio0 0 GPIO_ACTIVE_LOW>; linux,default-trigger = "default-on"; function = LED_FUNCTION_STATUS; default-state = "off"; }; err_led { label = "err_led"; gpios = <&mcu_gpio0 1 GPIO_ACTIVE_LOW>; linux,default-trigger = "default-on"; function = LED_FUNCTION_STATUS; default-state = "off"; }; can_led_run { label = "can_led_run"; gpios = <&main_gpio0 46 GPIO_ACTIVE_HIGH>; linux,default-trigger = "default-on"; function = LED_FUNCTION_STATUS; default-state = "on"; }; can_led_err { label = "can_led_err"; gpios = <&main_gpio0 45 GPIO_ACTIVE_HIGH>; linux,default-trigger = "default-on"; function = LED_FUNCTION_STATUS; default-state = "on"; }; }; cap-en { compatible = "gpio-leds"; pinctrl-names = "default"; pinctrl-0 = <&mcu_cap_en_pins_default>; cap-en1 { label = "cap-en"; gpios = <&mcu_gpio0 11 GPIO_ACTIVE_HIGH>; linux,default-trigger = "default-on"; function = LED_FUNCTION_STATUS; default-state = "on"; }; }; poweroff-signal { compatible = "gpio-keys"; autorepeat; pinctrl-names = "default"; pinctrl-0 = <&mcu_poweroff_signal_pins_default>; poweroff-signal1 { label = "poweroff-signal"; linux,code = ; gpios = <&mcu_gpio0 12 GPIO_ACTIVE_LOW>; debounce-interval = <0>; }; }; gpio-keys { compatible = "gpio-keys"; autorepeat; pinctrl-names = "default"; pinctrl-0 = <&mcu_keys_pins_default>; user_key@0 { label = "key0-button"; linux,code = ; gpios = <&mcu_gpio0 7 GPIO_ACTIVE_LOW>; debounce-interval = <0>; }; user_key@1 { label = "key1-switch"; linux,code = ; gpios = <&mcu_gpio0 8 GPIO_ACTIVE_HIGH>; debounce-interval = <0>; }; }; }; /* * device tree overlay for * GPMC CS0 with nonmultiplexed mode; */ &gpmc0{ status = "okay"; #address-cells = <2>; #size-cells = <1>; pinctrl-names = "default"; pinctrl-0 = <&main_gpmc_pins_default>; ranges = <0 0 0x00 0x50000000 0x01000000>; /* CS0 space. Min partition = 16MB */ nor@0,0 { compatible = "cfi-flash"; linux,mtd-name= "intel,pf48f6000m0y1be"; #address-cells = <1>; #size-cells = <1>; reg = <0 0 0x01000000>; /* gpmc fclk: 133MHz */ /* CONFIG 1 */ bank-width = <2>; gpmc,mux-add-data = <2>; /* 1: address-address-data multiplexing mode, 2: address-data multiplexing mode.*/ /* CONFIG 2 */ gpmc,cs-on-ns = <0>; gpmc,cs-rd-off-ns = <120>; gpmc,cs-wr-off-ns = <120>; /* CONFIG 3 */ gpmc,adv-on-ns = <0>; gpmc,adv-rd-off-ns = <20>; gpmc,adv-wr-off-ns = <20>; /* CONFIG 4 */ gpmc,oe-on-ns = <40>; gpmc,oe-off-ns = <100>; gpmc,we-on-ns = <40>; gpmc,we-off-ns = <100>; /* CONFIG 5 */ gpmc,rd-cycle-ns = <120>; gpmc,wr-cycle-ns = <120>; gpmc,access-ns = <100>; gpmc,page-burst-access-ns = <0>; /* CONFIG 6 */ gpmc,bus-turnaround-ns = <0>; gpmc,cycle2cycle-delay-ns = <0>; gpmc,wr-data-mux-bus-ns = <60>; gpmc,wr-access-ns = <80>; gpmc,cycle2cycle-samecsen; gpmc,cycle2cycle-diffcsen; }; }; &mcu_pmx0 { pinctrl-names = "default"; pinctrl-0 = < &mcu_fan_pins_default &mcu_phy_reset_pins_default>; mcu_leds_pins_default: mcu_leds_pins_default { pinctrl-single,pins = < AM62X_MCU_IOPAD(0x0000, PIN_OUTPUT, 7) /* (E8) MCU_SPI0_CS0.MCU_GPIO0_0*/ AM62X_MCU_IOPAD(0x0004, PIN_OUTPUT, 7) /* (B8) MCU_SPI0_CS1.MCU_GPIO0_1 */ >; }; mcu_keys_pins_default: mcu_keys_pins_default { pinctrl-single,pins = < AM62X_MCU_IOPAD(0x001c, PIN_INPUT, 7) /* (A6) MCU_UART0_CTSn.MCU_GPIO0_7 */ AM62X_MCU_IOPAD(0x0020, PIN_INPUT, 7) /* (B6) MCU_UART0_RTSn.MCU_GPIO0_8 */ >; }; mcu_poweroff_signal_pins_default: mcu_poweroff_signal_pins_default { pinctrl-single,pins = < AM62X_MCU_IOPAD(0x0030, PIN_INPUT, 7) /* (A4) WKUP_UART0_RTSn.MCU_GPIO0_12 */ >; }; mcu_cap_en_pins_default: mcu_cap_en_pins_default { pinctrl-single,pins = < AM62X_MCU_IOPAD(0x002c, PIN_OUTPUT, 7) /* (C6) WKUP_UART0_CTSn.MCU_GPIO0_11 */ >; }; mcu_uart0_pins_default: mcu_uart0_pins_default { pinctrl-single,pins = < AM62X_MCU_IOPAD(0x0014, PIN_INPUT, 0) /* (B5) MCU_UART0_RXD */ AM62X_MCU_IOPAD(0x0018, PIN_OUTPUT, 0) /* (A5) MCU_UART0_TXD */ >; }; mcu_fan_pins_default: mcu_fan_pins_default { pinctrl-single,pins = < /* set the pull-up, the fan is turned on by default */ AM62X_MCU_IOPAD(0x0010, PIN_OUTPUT_PULLUP, 7) /* (A7) MCU_SPI0_CLK.MCU_GPIO0_4(fan) */ >; }; mcu_phy_reset_pins_default: mcu_phy_reset_pins_default { pinctrl-single,pins = < AM62X_MCU_IOPAD(0x0008, PIN_INPUT_PULLUP, 7) /* (B8) MCU_SPI0_CS1.MCU_GPIO0_2 */ AM62X_MCU_IOPAD(0x000c, PIN_INPUT_PULLUP, 7) /* (D9) MCU_SPI0_D0.MCU_GPIO0_3 */ >; }; }; &main_pmx0 { pinctrl-names = "default"; pinctrl-0 = <&main_watchdog_pins_default &main_isolate_pins_default &main_uart0_control_pins_default>; main_watchdog_pins_default: main_watchdog_pins_default { pinctrl-single,pins = < AM62X_IOPAD(0x00ac, PIN_OUTPUT, 7) /* (L21) GPMC0_CSn1.GPIO0_42 */ >; }; main_isolate_pins_default: main_isolate_pins_default { pinctrl-single,pins = < AM62X_IOPAD(0x0090, PIN_INPUT, 7) /* (M24) GPMC0_BE0n_CLE.GPIO0_35 */ AM62X_IOPAD(0x0094, PIN_INPUT, 7) /* (N20) GPMC0_BE1n.GPIO0_36 */ AM62X_IOPAD(0x0098, PIN_INPUT, 7) /* (U23) GPMC0_WAIT0.GPIO0_37 */ AM62X_IOPAD(0x00a4, PIN_INPUT, 7) /* (M22) GPMC0_DIR.GPIO0_40 */ AM62X_IOPAD(0x00a0, PIN_OUTPUT, 7) /* (K25) GPMC0_WPn.GPIO0_39 */ AM62X_IOPAD(0x0114, PIN_OUTPUT, 7) /* (B24) MMC2_DAT0.GPIO0_68 */ >; }; main_leds_pins_default: main_leds_pins_default { pinctrl-single,pins = < AM62X_IOPAD(0x0004, PIN_OUTPUT, 7) /* (G25) OSPI0_LBCLKO.GPIO0_1 */ AM62X_IOPAD(0x0030, PIN_OUTPUT, 7) /* (G21) OSPI0_CSn1.GPIO0_12 */ AM62X_IOPAD(0x0244, PIN_OUTPUT, 7) /* (C17) MMC1_SDWP.GPIO1_49 */ AM62X_IOPAD(0x00b8, PIN_OUTPUT, 7) /* (R21) VOUT0_DATA0.GPIO0_45 */ AM62X_IOPAD(0x00bc, PIN_OUTPUT, 7) /*(C17) VOUT0_DATA1.GPIO0_46 */ >; }; main_uart0_control_pins_default: main-uart0-control-pins-default { pinctrl-single,pins = < AM62X_IOPAD(0x0104, PIN_OUTPUT, 7) /* (AC24) VOUT0_PCLK.GPIO0_64 */ >; }; main_uart1_pins_default: main-uart1-pins-default { pinctrl-single,pins = < AM62X_IOPAD(0x01e8, PIN_INPUT, 1) /* (B17) I2C1_SCL.UART1_RXD */ AM62X_IOPAD(0x01ec, PIN_OUTPUT, 1) /* (A17) I2C1_SDA.UART1_TXD */ >; }; main_uart2_pins_default: main-uart2-pins-default { pinctrl-single,pins = < AM62X_IOPAD(0x01d0, PIN_INPUT, 3) /* (A15) UART0_CTSn.UART2_RXD */ AM62X_IOPAD(0x01d4, PIN_OUTPUT, 3) /* (B15) UART0_RTSn.UART2_TXD */ AM62X_IOPAD(0x00f4, PIN_OUTPUT, 7) /*(AA21) VOUT0_DATA15.GPIO0_60 */ >; }; main_uart4_pins_default: main-uart4-pins-default { pinctrl-single,pins = < AM62X_IOPAD(0x0124, PIN_INPUT, 3) /* (A23) MMC2_SDCD.UART4_RXD */ AM62X_IOPAD(0x0128, PIN_OUTPUT, 3) /* (B23) MMC2_SDWP.UART4_TXD */ AM62X_IOPAD(0x0110, PIN_OUTPUT, 7) /* (C25) MMC2_DAT1.GPIO0.67 */ >; }; main_uart5_pins_default: main-uart5-pins-default { pinctrl-single,pins = < AM62X_IOPAD(0x0108, PIN_INPUT, 3) /* (D24) MMC2_DAT3.UART5_RXD */ AM62X_IOPAD(0x010c, PIN_OUTPUT, 3) /* (E23) MMC2_DAT2.UART5_TXD */ AM62X_IOPAD(0x01ac, PIN_OUTPUT, 7) /* (E19) MCASP0_AFSR.GPIO1_13*/ >; }; main_uart6_pins_default: main-uart6-pins-default { pinctrl-single,pins = < AM62X_IOPAD(0x0118, PIN_INPUT, 3) /* (D25) MMC2_CLK.UART6_RXD */ AM62X_IOPAD(0x0120, PIN_OUTPUT, 3) /* (C24) MMC2_CMD.UART6_TXD */ >; }; main_ehrpwm1_pins_default: main_ehrpwm1_pins_default { pinctrl-single,pins = < AM62X_IOPAD(0x019c, PIN_OUTPUT, 6) /* (B18) MCASP0_AXR1.EHRPWM1_A */ >; }; main_spi0_clk_data_pins_default: main_spi0_clk_data_pins_default { pinctrl-single,pins = < AM62X_IOPAD(0x01bc, PIN_OUTPUT, 0) /* (A14) SPI0_CLK */ AM62X_IOPAD(0x01c0, PIN_INPUT, 0) /* (B13) SPI0_D0 */ AM62X_IOPAD(0x01c4, PIN_INPUT, 0) /* (B14) SPI0_D1 */ >; }; main_spi0_cs0_pins_default: main_spi0_cs0_pins_default { pinctrl-single,pins = < AM62X_IOPAD(0x01b4, PIN_OUTPUT_PULLUP, 0) /* (A13) SPI0_CS0 */ >; }; main_ads7846_pins_default: main_ads7846_pins_default { pinctrl-single,pins = < AM62X_IOPAD(0x01f0, PIN_INPUT_PULLUP, 7) /* (A18) EXT_REFCLK1.GPIO1_30 */ >; }; main_usb0_pins_default: main_usb0_pins_default { pinctrl-single,pins = < AM62X_IOPAD(0x0254, PIN_OUTPUT, 0) /* (C20) USB0_DRVVBUS */ >; }; main_mcan0_pins_default: main_mcan0_pins_default { pinctrl-single,pins = < AM62X_IOPAD(0x01dc, PIN_INPUT, 0) /* (E15) MCAN0_RX */ AM62X_IOPAD(0x01d8, PIN_OUTPUT, 0) /* (C15) MCAN0_TX */ >; }; main_mcasp0_pins_default: main-mcasp0-pins-default { pinctrl-single,pins = < AM62X_IOPAD(0x01B0, PIN_OUTPUT, 0) /* (A20) MCASP0_ACLKR.MCASP0_ACLKR */ AM62X_IOPAD(0x01A4, PIN_INPUT, 0) /* (B20) MCASP0_ACLKX.MCASP0_ACLKX */ AM62X_IOPAD(0x01A8, PIN_INPUT, 0) /* (D20) MCASP0_AFSX.MCASP0_AFSX */ AM62X_IOPAD(0x0198, PIN_OUTPUT, 0) /* (A19) MCASP0_AXR2.MCASP0_AXR2 */ AM62X_IOPAD(0x0194, PIN_INPUT, 0) /* (B19) MCASP0_AXR3.MCASP0_AXR3 */ >; }; main_pmic_intr_pins_default: main_pmic_intr_pins_default { pinctrl-single,pins = < AM62X_IOPAD(0x01f4, PIN_INPUT_PULLUP, 7) /* (D16) EXTINTn.GPIO1_31 */ >; }; main_gpmc_pins_default: main_gpmc_pins_default { pinctrl-single,pins = < AM62X_IOPAD(0x003c, PIN_INPUT, 0) /* (M25) GPMC0_AD0 */ AM62X_IOPAD(0x0040, PIN_INPUT, 0) /* (N23) GPMC0_AD1 */ AM62X_IOPAD(0x0064, PIN_INPUT, 0) /* (T25) GPMC0_AD10 */ AM62X_IOPAD(0x0068, PIN_INPUT, 0) /* (R21) GPMC0_AD11 */ AM62X_IOPAD(0x006c, PIN_INPUT, 0) /* (T22) GPMC0_AD12 */ AM62X_IOPAD(0x0070, PIN_INPUT, 0) /* (T24) GPMC0_AD13 */ AM62X_IOPAD(0x0074, PIN_INPUT, 0) /* (U25) GPMC0_AD14 */ AM62X_IOPAD(0x0078, PIN_INPUT, 0) /* (U24) GPMC0_AD15 */ AM62X_IOPAD(0x0044, PIN_INPUT, 0) /* (N24) GPMC0_AD2 */ AM62X_IOPAD(0x0048, PIN_INPUT, 0) /* (N25) GPMC0_AD3 */ AM62X_IOPAD(0x004c, PIN_INPUT, 0) /* (P24) GPMC0_AD4 */ AM62X_IOPAD(0x0050, PIN_INPUT, 0) /* (P22) GPMC0_AD5 */ AM62X_IOPAD(0x0054, PIN_INPUT, 0) /* (P21) GPMC0_AD6 */ AM62X_IOPAD(0x0058, PIN_INPUT, 0) /* (R23) GPMC0_AD7 */ AM62X_IOPAD(0x005c, PIN_INPUT, 0) /* (R24) GPMC0_AD8 */ AM62X_IOPAD(0x0060, PIN_INPUT, 0) /* (R25) GPMC0_AD9 */ AM62X_IOPAD(0x00a8, PIN_OUTPUT, 0) /* (M21) GPMC0_CSn0 */ AM62X_IOPAD(0x0084, PIN_OUTPUT, 0) /* (L23) GPMC0_ADVn_ALE */ AM62X_IOPAD(0x0088, PIN_OUTPUT, 0) /* (L24) GPMC0_OEn_REn */ AM62X_IOPAD(0x008c, PIN_OUTPUT, 0) /* (L25) GPMC0_WEn */ >; }; }; &main_i2c0 { bq32002: rtc@68{ compatible = "ti,bq32000"; reg = <0x68> ; trickle-resistor-ohms = <1120>; }; }; &main_i2c1 { }; &ospi0 { }; &main_uart1 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&main_uart1_pins_default>; }; &main_uart2 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&main_uart2_pins_default>; rts-gpios =<&main_gpio0 60 GPIO_ACTIVE_HIGH>; rs485-rts-active-high; linux,rs485-enabled-at-boot-time; }; &main_uart4 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&main_uart4_pins_default>; rts-gpios =<&main_gpio0 67 GPIO_ACTIVE_HIGH>; rs485-rts-active-high; linux,rs485-enabled-at-boot-time; }; &main_uart5 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&main_uart5_pins_default>; rts-gpios =<&main_gpio1 13 GPIO_ACTIVE_HIGH>; rs485-rts-active-high; linux,rs485-enabled-at-boot-time; }; &main_uart6 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&main_uart6_pins_default>; }; &dss_ports { #address-cells = <1>; #size-cells = <0>; }; &epwm1 { status = "okay"; }; &main_spi0 { status = "disable"; }; &usb0 { pinctrl-names = "default"; pinctrl-0 = <&main_usb0_pins_default>; #address-cells = <1>; #size-cells = <0>; usb-role-switch; role-switch-default-mode = "peripheral"; }; &main_mcan0 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&main_mcan0_pins_default>; }; &main_i2c2 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&main_i2c2_pins_default>; clock-frequency = <400000>; at24cx: at24c128@51 { compatible = "atmel,24c128"; reg = <0x51>; // trickle-resistor-ohms = <250>; }; }; &mcasp0 { status = "okay"; #sound-dai-cells = <0>; pinctrl-names = "default"; pinctrl-0 = <&main_mcasp0_pins_default>; op-mode = <0>; /* MCASP_IIS_MODE */ tdm-slots = <2>; serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */ 0 0 1 2 0 0 0 0 0 0 0 0 0 0 0 0 >; tx-num-evt = <32>; rx-num-evt = <32>; }; &mcu_pmx0 { wkup_uart0_pins_default: wkup-uart0-pins-default { pinctrl-single,pins = < AM62X_MCU_IOPAD(0x0024, PIN_INPUT, 0) /* (B4) WKUP_UART0_RXD */ AM62X_MCU_IOPAD(0x0028, PIN_OUTPUT, 0) /* (C5) WKUP_UART0_TXD */ >; }; }; &wkup_uart0 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&wkup_uart0_pins_default>; }; &mcu_uart0 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&mcu_uart0_pins_default>; }; &csi0_port0 { status = "disabled"; }; &pruss { status = "disabled"; }; &main_rti1 { status = "disabled"; }; &main_rti2 { status = "disabled"; }; &main_rti3 { status = "disabled"; }; &main_rti15 { status = "disabled"; }; &mcu_pmx0 { }; &mcu_mcan0 { status = "disable"; }; &mcu_mcan1 { status = "disable"; };