|
@@ -1,1115 +0,0 @@
|
|
-From 81db1f21530d256a248a0bc51a71ab5bdf819fdf Mon Sep 17 00:00:00 2001
|
|
|
|
-From: Le Jin <le.jin@siemens.com>
|
|
|
|
-Date: Mon, 18 Nov 2019 17:58:08 +0800
|
|
|
|
-Subject: [PATCH 08/26] iot2050: add iot2050 platform support
|
|
|
|
-
|
|
|
|
-Add support for two iot2050 variants, BASIC and ADVANCED.
|
|
|
|
-Also add support for fixed gpio number naming.
|
|
|
|
-
|
|
|
|
-Signed-off-by: le.jin <le.jin@siemens.com>
|
|
|
|
----
|
|
|
|
- arch/arm64/boot/dts/ti/Makefile | 5 +
|
|
|
|
- .../boot/dts/ti/k3-am65-iot2050-oldfw.dtsi | 20 +
|
|
|
|
- arch/arm64/boot/dts/ti/k3-am65-iot2050.dtsi | 795 ++++++++++++++++++
|
|
|
|
- .../dts/ti/k3-am6528-iot2050-basic-oldfw.dts | 24 +
|
|
|
|
- .../boot/dts/ti/k3-am6528-iot2050-basic.dts | 12 +
|
|
|
|
- .../boot/dts/ti/k3-am6528-iot2050-basic.dtsi | 47 ++
|
|
|
|
- .../ti/k3-am6548-iot2050-advanced-oldfw.dts | 10 +
|
|
|
|
- .../dts/ti/k3-am6548-iot2050-advanced.dts | 12 +
|
|
|
|
- .../dts/ti/k3-am6548-iot2050-advanced.dtsi | 53 ++
|
|
|
|
- drivers/gpio/gpio-davinci.c | 10 +
|
|
|
|
- drivers/tty/serial/8250/8250_port.c | 5 +-
|
|
|
|
- 11 files changed, 991 insertions(+), 2 deletions(-)
|
|
|
|
- create mode 100644 arch/arm64/boot/dts/ti/k3-am65-iot2050-oldfw.dtsi
|
|
|
|
- create mode 100644 arch/arm64/boot/dts/ti/k3-am65-iot2050.dtsi
|
|
|
|
- create mode 100644 arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic-oldfw.dts
|
|
|
|
- create mode 100644 arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic.dts
|
|
|
|
- create mode 100644 arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic.dtsi
|
|
|
|
- create mode 100644 arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced-oldfw.dts
|
|
|
|
- create mode 100644 arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced.dts
|
|
|
|
- create mode 100644 arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced.dtsi
|
|
|
|
-
|
|
|
|
-diff --git a/arch/arm64/boot/dts/ti/Makefile b/arch/arm64/boot/dts/ti/Makefile
|
|
|
|
-index b952d3e730d6..3f6fc2f8445c 100644
|
|
|
|
---- a/arch/arm64/boot/dts/ti/Makefile
|
|
|
|
-+++ b/arch/arm64/boot/dts/ti/Makefile
|
|
|
|
-@@ -22,6 +22,11 @@ dtb-$(CONFIG_ARCH_K3_AM6_SOC) += k3-am654-base-board.dtb \
|
|
|
|
- k3-am654-base-board-jailhouse.dtbo \
|
|
|
|
- k3-am654-evm-prupwm.dtbo
|
|
|
|
-
|
|
|
|
-+dtb-$(CONFIG_ARCH_K3_AM6_SOC) += k3-am6528-iot2050-basic-oldfw.dtb
|
|
|
|
-+dtb-$(CONFIG_ARCH_K3_AM6_SOC) += k3-am6528-iot2050-basic.dtb
|
|
|
|
-+dtb-$(CONFIG_ARCH_K3_AM6_SOC) += k3-am6548-iot2050-advanced-oldfw.dtb
|
|
|
|
-+dtb-$(CONFIG_ARCH_K3_AM6_SOC) += k3-am6548-iot2050-advanced.dtb
|
|
|
|
-+
|
|
|
|
- dtb-$(CONFIG_ARCH_K3_J721E_SOC) += k3-j721e-common-proc-board.dtb \
|
|
|
|
- k3-j721e-proc-board-tps65917.dtb \
|
|
|
|
- k3-j721e-common-proc-board-infotainment.dtbo \
|
|
|
|
-diff --git a/arch/arm64/boot/dts/ti/k3-am65-iot2050-oldfw.dtsi b/arch/arm64/boot/dts/ti/k3-am65-iot2050-oldfw.dtsi
|
|
|
|
-new file mode 100644
|
|
|
|
-index 000000000000..93b53d63ef60
|
|
|
|
---- /dev/null
|
|
|
|
-+++ b/arch/arm64/boot/dts/ti/k3-am65-iot2050-oldfw.dtsi
|
|
|
|
-@@ -0,0 +1,20 @@
|
|
|
|
-+// SPDX-License-Identifier: GPL-2.0
|
|
|
|
-+/*
|
|
|
|
-+ * (C) Copyright 2018-2020 Siemens AG
|
|
|
|
-+ */
|
|
|
|
-+
|
|
|
|
-+/*
|
|
|
|
-+ * Swap clock TISCI clock IDs between sdhci0 and sdhci1 to work
|
|
|
|
-+ * around an issue in System Firmware 2019.12a (and earlier) known
|
|
|
|
-+ * as SYSFW-3179.
|
|
|
|
-+ */
|
|
|
|
-+
|
|
|
|
-+&sdhci0 {
|
|
|
|
-+ clocks = <&k3_clks 48 0>, <&k3_clks 48 1>;
|
|
|
|
-+ assigned-clocks = <&k3_clks 48 1>;
|
|
|
|
-+ assigned-clock-rates = <142860000>;
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+&sdhci1 {
|
|
|
|
-+ clocks = <&k3_clks 47 0>, <&k3_clks 47 1>;
|
|
|
|
-+};
|
|
|
|
-diff --git a/arch/arm64/boot/dts/ti/k3-am65-iot2050.dtsi b/arch/arm64/boot/dts/ti/k3-am65-iot2050.dtsi
|
|
|
|
-new file mode 100644
|
|
|
|
-index 000000000000..c32c75e80e85
|
|
|
|
---- /dev/null
|
|
|
|
-+++ b/arch/arm64/boot/dts/ti/k3-am65-iot2050.dtsi
|
|
|
|
-@@ -0,0 +1,795 @@
|
|
|
|
-+// SPDX-License-Identifier: GPL-2.0
|
|
|
|
-+/*
|
|
|
|
-+ * (C) Copyright 2018-2020 Siemens AG
|
|
|
|
-+ */
|
|
|
|
-+
|
|
|
|
-+#include <dt-bindings/input/input.h>
|
|
|
|
-+#include <dt-bindings/net/ti-dp83867.h>
|
|
|
|
-+#include <dt-bindings/phy/phy.h>
|
|
|
|
-+#include "k3-am654.dtsi"
|
|
|
|
-+
|
|
|
|
-+/ {
|
|
|
|
-+ aliases {
|
|
|
|
-+ ethernet1 = &pruss0_emac0;
|
|
|
|
-+ ethernet2 = &pruss0_emac1;
|
|
|
|
-+ gpio0 = &main_gpio0;
|
|
|
|
-+ gpio96 = &main_gpio1;
|
|
|
|
-+ gpio186 = &wkup_gpio0;
|
|
|
|
-+ spi0 = &mcu_spi0;
|
|
|
|
-+ };
|
|
|
|
-+
|
|
|
|
-+ chosen {
|
|
|
|
-+ stdout-path = "serial3:115200n8";
|
|
|
|
-+ bootargs = "earlycon=ns16550a,mmio32,0x02800000";
|
|
|
|
-+ };
|
|
|
|
-+
|
|
|
|
-+ reserved-memory {
|
|
|
|
-+ #address-cells = <2>;
|
|
|
|
-+ #size-cells = <2>;
|
|
|
|
-+ ranges;
|
|
|
|
-+
|
|
|
|
-+ secure_ddr: secure_ddr@9e800000 {
|
|
|
|
-+ reg = <0 0x9e800000 0 0x01800000>; /* for OP-TEE */
|
|
|
|
-+ alignment = <0x1000>;
|
|
|
|
-+ no-map;
|
|
|
|
-+ };
|
|
|
|
-+
|
|
|
|
-+ mcu_r5fss0_core0_dma_memory_region: r5f-dma-memory@a0000000 {
|
|
|
|
-+ compatible = "shared-dma-pool";
|
|
|
|
-+ reg = <0 0xa0000000 0 0x100000>;
|
|
|
|
-+ no-map;
|
|
|
|
-+ };
|
|
|
|
-+
|
|
|
|
-+ mcu_r5fss0_core0_memory_region: r5f-memory@a0100000 {
|
|
|
|
-+ compatible = "shared-dma-pool";
|
|
|
|
-+ reg = <0 0xa0100000 0 0xf00000>;
|
|
|
|
-+ no-map;
|
|
|
|
-+ };
|
|
|
|
-+
|
|
|
|
-+ mcu_r5fss0_core1_dma_memory_region: r5f-dma-memory@a1000000 {
|
|
|
|
-+ compatible = "shared-dma-pool";
|
|
|
|
-+ reg = <0 0xa1000000 0 0x100000>;
|
|
|
|
-+ no-map;
|
|
|
|
-+ };
|
|
|
|
-+
|
|
|
|
-+ mcu_r5fss0_core1_memory_region: r5f-memory@a1100000 {
|
|
|
|
-+ compatible = "shared-dma-pool";
|
|
|
|
-+ reg = <0 0xa1100000 0 0xf00000>;
|
|
|
|
-+ no-map;
|
|
|
|
-+ };
|
|
|
|
-+
|
|
|
|
-+ rtos_ipc_memory_region: ipc-memories@a2000000 {
|
|
|
|
-+ reg = <0x00 0xa2000000 0x00 0x00200000>;
|
|
|
|
-+ alignment = <0x1000>;
|
|
|
|
-+ no-map;
|
|
|
|
-+ };
|
|
|
|
-+ };
|
|
|
|
-+
|
|
|
|
-+ gpio_leds {
|
|
|
|
-+ compatible = "gpio-leds";
|
|
|
|
-+ pinctrl-names = "default";
|
|
|
|
-+ pinctrl-0 = <&leds_pins_default>;
|
|
|
|
-+
|
|
|
|
-+ status-led-red {
|
|
|
|
-+ gpios = <&wkup_gpio0 32 GPIO_ACTIVE_HIGH>;
|
|
|
|
-+ panic-indicator;
|
|
|
|
-+ linux,default-trigger = "gpio";
|
|
|
|
-+ };
|
|
|
|
-+
|
|
|
|
-+ status-led-green {
|
|
|
|
-+ gpios = <&wkup_gpio0 24 GPIO_ACTIVE_HIGH>;
|
|
|
|
-+ panic-indicator-off;
|
|
|
|
-+ linux,default-trigger = "gpio";
|
|
|
|
-+ };
|
|
|
|
-+
|
|
|
|
-+ user-led1-red {
|
|
|
|
-+ gpios = <&pcal9535_3 14 GPIO_ACTIVE_HIGH>;
|
|
|
|
-+ linux,default-trigger = "gpio";
|
|
|
|
-+ };
|
|
|
|
-+
|
|
|
|
-+ user-led1-green {
|
|
|
|
-+ gpios = <&pcal9535_2 15 GPIO_ACTIVE_HIGH>;
|
|
|
|
-+ linux,default-trigger = "gpio";
|
|
|
|
-+ };
|
|
|
|
-+
|
|
|
|
-+ user-led2-red {
|
|
|
|
-+ gpios = <&wkup_gpio0 17 GPIO_ACTIVE_HIGH>;
|
|
|
|
-+ linux,default-trigger = "gpio";
|
|
|
|
-+ };
|
|
|
|
-+
|
|
|
|
-+ user-led2-green {
|
|
|
|
-+ gpios = <&wkup_gpio0 22 GPIO_ACTIVE_HIGH>;
|
|
|
|
-+ linux,default-trigger = "gpio";
|
|
|
|
-+ };
|
|
|
|
-+ };
|
|
|
|
-+
|
|
|
|
-+ dp_refclk: clock {
|
|
|
|
-+ compatible = "fixed-clock";
|
|
|
|
-+ #clock-cells = <0>;
|
|
|
|
-+ clock-frequency = <19200000>;
|
|
|
|
-+ };
|
|
|
|
-+
|
|
|
|
-+ /* Dual Ethernet application node on PRU-ICSSG0 */
|
|
|
|
-+ pruss0_eth {
|
|
|
|
-+ compatible = "ti,am654-icssg-prueth";
|
|
|
|
-+ pinctrl-names = "default";
|
|
|
|
-+ pinctrl-0 = <&icssg0_rgmii_pins_default>;
|
|
|
|
-+ sram = <&msmc_ram>;
|
|
|
|
-+ interrupt-parent = <&main_udmass_inta>;
|
|
|
|
-+
|
|
|
|
-+ prus = <&pru0_0>, <&rtu0_0>, <&pru0_1>, <&rtu0_1>;
|
|
|
|
-+ firmware-name = "ti-pruss/am65x-pru0-prueth-fw.elf",
|
|
|
|
-+ "ti-pruss/am65x-rtu0-prueth-fw.elf",
|
|
|
|
-+ "ti-pruss/am65x-pru1-prueth-fw.elf",
|
|
|
|
-+ "ti-pruss/am65x-rtu1-prueth-fw.elf";
|
|
|
|
-+ mii-g-rt = <&icssg0_mii_g_rt>;
|
|
|
|
-+ mii-rt = <&icssg0_mii_rt>;
|
|
|
|
-+ dma-coherent;
|
|
|
|
-+ dmas = <&main_udmap &icssg0 0 UDMA_DIR_TX>, /* egress slice 0 */
|
|
|
|
-+ <&main_udmap &icssg0 1 UDMA_DIR_TX>, /* egress slice 0 */
|
|
|
|
-+ <&main_udmap &icssg0 2 UDMA_DIR_TX>, /* egress slice 0 */
|
|
|
|
-+ <&main_udmap &icssg0 3 UDMA_DIR_TX>, /* egress slice 0 */
|
|
|
|
-+ <&main_udmap &icssg0 4 UDMA_DIR_TX>, /* egress slice 1 */
|
|
|
|
-+ <&main_udmap &icssg0 5 UDMA_DIR_TX>, /* egress slice 1 */
|
|
|
|
-+ <&main_udmap &icssg0 6 UDMA_DIR_TX>, /* egress slice 1 */
|
|
|
|
-+ <&main_udmap &icssg0 7 UDMA_DIR_TX>, /* egress slice 1 */
|
|
|
|
-+
|
|
|
|
-+ <&main_udmap &icssg0 0 UDMA_DIR_RX>, /* ingress slice 0 */
|
|
|
|
-+ <&main_udmap &icssg0 1 UDMA_DIR_RX>, /* ingress slice 1 */
|
|
|
|
-+ <&main_udmap &icssg0 2 UDMA_DIR_RX>, /* mgmnt rsp slice 0 */
|
|
|
|
-+ <&main_udmap &icssg0 3 UDMA_DIR_RX>; /* mgmnt rsp slice 1 */
|
|
|
|
-+ dma-names = "tx0-0", "tx0-1", "tx0-2", "tx0-3",
|
|
|
|
-+ "tx1-0", "tx1-1", "tx1-2", "tx1-3",
|
|
|
|
-+ "rx0", "rx1",
|
|
|
|
-+ "rxmgm0", "rxmgm1";
|
|
|
|
-+
|
|
|
|
-+ pruss0_emac0: ethernet-mii0 {
|
|
|
|
-+ phy-handle = <&pruss0_eth0_phy>;
|
|
|
|
-+ phy-mode = "rgmii-rxid";
|
|
|
|
-+ syscon-rgmii-delay = <&scm_conf 0x4100>;
|
|
|
|
-+ iep = <&icssg0_iep0>;
|
|
|
|
-+ /* Filled in by bootloader */
|
|
|
|
-+ local-mac-address = [00 00 00 00 00 00];
|
|
|
|
-+ enable-half-duplex;
|
|
|
|
-+ };
|
|
|
|
-+
|
|
|
|
-+ pruss0_emac1: ethernet-mii1 {
|
|
|
|
-+ phy-handle = <&pruss0_eth1_phy>;
|
|
|
|
-+ phy-mode = "rgmii-rxid";
|
|
|
|
-+ syscon-rgmii-delay = <&scm_conf 0x4104>;
|
|
|
|
-+ iep = <&icssg0_iep1>;
|
|
|
|
-+ /* Filled in by bootloader */
|
|
|
|
-+ local-mac-address = [00 00 00 00 00 00];
|
|
|
|
-+ enable-half-duplex;
|
|
|
|
-+ };
|
|
|
|
-+ };
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+&wkup_pmx0 {
|
|
|
|
-+ wkup_i2c0_pins_default: wkup-i2c0-pins-default {
|
|
|
|
-+ pinctrl-single,pins = <
|
|
|
|
-+ AM65X_WKUP_IOPAD(0x00e0, PIN_INPUT, 0) /* (AC7) WKUP_I2C0_SCL */
|
|
|
|
-+ AM65X_WKUP_IOPAD(0x00e4, PIN_INPUT, 0) /* (AD6) WKUP_I2C0_SDA */
|
|
|
|
-+ >;
|
|
|
|
-+ };
|
|
|
|
-+
|
|
|
|
-+ mcu_i2c0_pins_default: mcu_i2c0_pins_default {
|
|
|
|
-+ pinctrl-single,pins = <
|
|
|
|
-+ AM65X_WKUP_IOPAD(0x00e8, PIN_INPUT, 0) /* (AD8) MCU_I2C0_SCL */
|
|
|
|
-+ AM65X_WKUP_IOPAD(0x00ec, PIN_INPUT, 0) /* (AD7) MCU_I2C0_SDA */
|
|
|
|
-+ >;
|
|
|
|
-+ };
|
|
|
|
-+
|
|
|
|
-+ arduino_i2c_aio_switch_pins_default: arduino_i2c_aio_switch_pins_default {
|
|
|
|
-+ pinctrl-single,pins = <
|
|
|
|
-+ AM65X_WKUP_IOPAD(0x0024, PIN_OUTPUT, 7) /* (R2) WKUP_GPIO0_21 */
|
|
|
|
-+ >;
|
|
|
|
-+ };
|
|
|
|
-+
|
|
|
|
-+ push_button_pins_default: push_button_pins_default {
|
|
|
|
-+ pinctrl-single,pins = <
|
|
|
|
-+ AM65X_WKUP_IOPAD(0x0034, PIN_INPUT, 7) /* (T1) MCU_OSPI1_CLK.WKUP_GPIO0_25 */
|
|
|
|
-+ >;
|
|
|
|
-+ };
|
|
|
|
-+
|
|
|
|
-+ arduino_uart_pins_default: arduino_uart_pins_default {
|
|
|
|
-+ pinctrl-single,pins = <
|
|
|
|
-+ AM65X_WKUP_IOPAD(0x0044, PIN_INPUT, 4) /* (P4) MCU_UART0_RXD */
|
|
|
|
-+ AM65X_WKUP_IOPAD(0x0048, PIN_OUTPUT, 4)/* (P5) MCU_UART0_TXD */
|
|
|
|
-+ >;
|
|
|
|
-+ };
|
|
|
|
-+
|
|
|
|
-+ arduino_io_d2_to_d3_pins_default: arduino_io_d2_to_d3_pins_default {
|
|
|
|
-+ pinctrl-single,pins = <
|
|
|
|
-+ AM65X_WKUP_IOPAD(0x004C, PIN_OUTPUT, 7)/* (P1) WKUP_GPIO0_31 */
|
|
|
|
-+ AM65X_WKUP_IOPAD(0x0054, PIN_OUTPUT, 7)/* (N3) WKUP_GPIO0_33 */
|
|
|
|
-+ >;
|
|
|
|
-+ };
|
|
|
|
-+
|
|
|
|
-+ arduino_io_oe_pins_default: arduino_io_oe_pins_default {
|
|
|
|
-+ pinctrl-single,pins = <
|
|
|
|
-+ AM65X_WKUP_IOPAD(0x0058, PIN_OUTPUT, 7)/* (N4) WKUP_GPIO0_34 */
|
|
|
|
-+ AM65X_WKUP_IOPAD(0x0060, PIN_OUTPUT, 7)/* (M2) WKUP_GPIO0_36 */
|
|
|
|
-+ AM65X_WKUP_IOPAD(0x0064, PIN_OUTPUT, 7)/* (M3) WKUP_GPIO0_37 */
|
|
|
|
-+ AM65X_WKUP_IOPAD(0x0068, PIN_OUTPUT, 7)/* (M4) WKUP_GPIO0_38 */
|
|
|
|
-+ AM65X_WKUP_IOPAD(0x0074, PIN_OUTPUT, 7)/* (M1) WKUP_GPIO0_41 */
|
|
|
|
-+ >;
|
|
|
|
-+ };
|
|
|
|
-+
|
|
|
|
-+ mcu_fss0_ospi0_pins_default: mcu-fss0-ospi0-pins_default {
|
|
|
|
-+ pinctrl-single,pins = <
|
|
|
|
-+ AM65X_WKUP_IOPAD(0x0000, PIN_OUTPUT, 0) /* (V1) MCU_OSPI0_CLK */
|
|
|
|
-+ AM65X_WKUP_IOPAD(0x000c, PIN_INPUT, 0) /* (U4) MCU_OSPI0_D0 */
|
|
|
|
-+ AM65X_WKUP_IOPAD(0x0010, PIN_INPUT, 0) /* (U5) MCU_OSPI0_D1 */
|
|
|
|
-+ AM65X_WKUP_IOPAD(0x002c, PIN_OUTPUT, 0) /* (R4) MCU_OSPI0_CSn0 */
|
|
|
|
-+ >;
|
|
|
|
-+ };
|
|
|
|
-+
|
|
|
|
-+ db9_com_mode_pins_default: db9_com_mode_pins_default {
|
|
|
|
-+ pinctrl-single,pins = <
|
|
|
|
-+ AM65X_WKUP_IOPAD(0x00c4, PIN_OUTPUT, 7) /* (AD3) WKUP_GPIO0_5, used as uart0 mode 0 */
|
|
|
|
-+ AM65X_WKUP_IOPAD(0x00c0, PIN_OUTPUT, 7) /* (AC3) WKUP_GPIO0_4, used as uart0 mode 1 */
|
|
|
|
-+ AM65X_WKUP_IOPAD(0x00cc, PIN_OUTPUT, 7) /* (AC1) WKUP_GPIO0_7, used as uart0 term */
|
|
|
|
-+ AM65X_WKUP_IOPAD(0x00c8, PIN_OUTPUT, 7) /* (AC2) WKUP_GPIO0_6, used as uart0 en */
|
|
|
|
-+ >;
|
|
|
|
-+ };
|
|
|
|
-+
|
|
|
|
-+ leds_pins_default: leds_pins_default {
|
|
|
|
-+ pinctrl-single,pins = <
|
|
|
|
-+ AM65X_WKUP_IOPAD(0x0014, PIN_OUTPUT, 7) /* (T2) WKUP_GPIO0_17, used as user led1 red */
|
|
|
|
-+ AM65X_WKUP_IOPAD(0x0028, PIN_OUTPUT, 7) /* (R3) WKUP_GPIO0_22, used as user led1 green */
|
|
|
|
-+ AM65X_WKUP_IOPAD(0x0030, PIN_OUTPUT, 7) /* (R5) WKUP_GPIO0_24, used as status led red */
|
|
|
|
-+ AM65X_WKUP_IOPAD(0x0050, PIN_OUTPUT, 7) /* (R5) WKUP_GPIO0_32, used as status led green */
|
|
|
|
-+ >;
|
|
|
|
-+ };
|
|
|
|
-+
|
|
|
|
-+ mcu_spi0_pins_default: mcu_spi0_pins_default {
|
|
|
|
-+ pinctrl-single,pins = <
|
|
|
|
-+ AM65X_WKUP_IOPAD(0x0090, PIN_INPUT, 0) /* (Y1) MCU_SPI0_CLK */
|
|
|
|
-+ AM65X_WKUP_IOPAD(0x0094, PIN_INPUT, 0) /* (Y3) MCU_SPI0_D0 */
|
|
|
|
-+ AM65X_WKUP_IOPAD(0x0098, PIN_INPUT, 0) /* (Y2) MCU_SPI0_D1 */
|
|
|
|
-+ AM65X_WKUP_IOPAD(0x009c, PIN_OUTPUT, 0) /* (Y4) MCU_SPI0_CS0 */
|
|
|
|
-+ >;
|
|
|
|
-+ };
|
|
|
|
-+
|
|
|
|
-+ minipcie_pins_default: minipcie_pins_default {
|
|
|
|
-+ pinctrl-single,pins = <
|
|
|
|
-+ AM65X_WKUP_IOPAD(0x003C, PIN_OUTPUT, 7) /* (P2) MCU_OSPI1_DQS.WKUP_GPIO0_27 */
|
|
|
|
-+ >;
|
|
|
|
-+ };
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+&main_pmx0 {
|
|
|
|
-+ main_uart1_pins_default: main_uart1_pins_default {
|
|
|
|
-+ pinctrl-single,pins = <
|
|
|
|
-+ AM65X_IOPAD(0x0174, PIN_INPUT, 6) /* (AE23) UART1_RXD */
|
|
|
|
-+ AM65X_IOPAD(0x014c, PIN_OUTPUT, 6) /* (AD23) UART1_TXD */
|
|
|
|
-+ AM65X_IOPAD(0x0178, PIN_INPUT, 6) /* (AD22) UART1_CTSn */
|
|
|
|
-+ AM65X_IOPAD(0x017c, PIN_OUTPUT, 6) /* (AC21) UART1_RTSn */
|
|
|
|
-+ >;
|
|
|
|
-+ };
|
|
|
|
-+
|
|
|
|
-+ main_i2c3_pins_default: main_i2c3_pins_default {
|
|
|
|
-+ pinctrl-single,pins = <
|
|
|
|
-+ AM65X_IOPAD(0x01c0, PIN_INPUT, 2) /* (AF13) I2C3_SCL */
|
|
|
|
-+ AM65X_IOPAD(0x01d4, PIN_INPUT, 2) /* (AG12) I2C3_SDA */
|
|
|
|
-+ >;
|
|
|
|
-+ };
|
|
|
|
-+
|
|
|
|
-+ main_mmc1_pins_default: main_mmc1_pins_default {
|
|
|
|
-+ pinctrl-single,pins = <
|
|
|
|
-+ AM65X_IOPAD(0x02d4, PIN_INPUT_PULLDOWN, 0) /* (C27) MMC1_CLK */
|
|
|
|
-+ AM65X_IOPAD(0x02d8, PIN_INPUT_PULLUP, 0) /* (C28) MMC1_CMD */
|
|
|
|
-+ AM65X_IOPAD(0x02d0, PIN_INPUT_PULLUP, 0) /* (D28) MMC1_DAT0 */
|
|
|
|
-+ AM65X_IOPAD(0x02cc, PIN_INPUT_PULLUP, 0) /* (E27) MMC1_DAT1 */
|
|
|
|
-+ AM65X_IOPAD(0x02c8, PIN_INPUT_PULLUP, 0) /* (D26) MMC1_DAT2 */
|
|
|
|
-+ AM65X_IOPAD(0x02c4, PIN_INPUT_PULLUP, 0) /* (D27) MMC1_DAT3 */
|
|
|
|
-+ AM65X_IOPAD(0x02dc, PIN_INPUT_PULLUP, 0) /* (B24) MMC1_SDCD */
|
|
|
|
-+ AM65X_IOPAD(0x02e0, PIN_INPUT_PULLUP, 0) /* (C24) MMC1_SDWP */
|
|
|
|
-+ >;
|
|
|
|
-+ };
|
|
|
|
-+
|
|
|
|
-+ usb0_pins_default: usb0_pins_default {
|
|
|
|
-+ pinctrl-single,pins = <
|
|
|
|
-+ AM65X_IOPAD(0x02bc, PIN_OUTPUT, 0) /* (AD9) USB0_DRVVBUS */
|
|
|
|
-+ >;
|
|
|
|
-+ };
|
|
|
|
-+
|
|
|
|
-+ usb1_pins_default: usb1_pins_default {
|
|
|
|
-+ pinctrl-single,pins = <
|
|
|
|
-+ AM65X_IOPAD(0x02c0, PIN_OUTPUT, 0) /* (AC8) USB1_DRVVBUS */
|
|
|
|
-+ >;
|
|
|
|
-+ };
|
|
|
|
-+
|
|
|
|
-+ arduino_io_d4_to_d9_pins_default: arduino_io_d4_to_d9_pins_default {
|
|
|
|
-+ pinctrl-single,pins = <
|
|
|
|
-+ AM65X_IOPAD(0x0084, PIN_OUTPUT, 7)/* (AG18) GPIO0_33 */
|
|
|
|
-+ AM65X_IOPAD(0x008C, PIN_OUTPUT, 7)/* (AF17) GPIO0_35 */
|
|
|
|
-+ AM65X_IOPAD(0x0098, PIN_OUTPUT, 7)/* (AH16) GPIO0_38 */
|
|
|
|
-+ AM65X_IOPAD(0x00AC, PIN_OUTPUT, 7)/* (AH15) GPIO0_43 */
|
|
|
|
-+ AM65X_IOPAD(0x00C0, PIN_OUTPUT, 7)/* (AG15) GPIO0_48 */
|
|
|
|
-+ AM65X_IOPAD(0x00CC, PIN_OUTPUT, 7)/* (AD15) GPIO0_51 */
|
|
|
|
-+ >;
|
|
|
|
-+ };
|
|
|
|
-+
|
|
|
|
-+ icssg0_mdio_pins_default: icssg0_mdio_pins_default {
|
|
|
|
-+ pinctrl-single,pins = <
|
|
|
|
-+ AM65X_IOPAD(0x0294, PIN_INPUT, 0) /* (AE26) PRG0_MDIO0_MDIO */
|
|
|
|
-+ AM65X_IOPAD(0x0298, PIN_OUTPUT, 0) /* (AE28) PRG0_MDIO0_MDC */
|
|
|
|
-+ >;
|
|
|
|
-+ };
|
|
|
|
-+
|
|
|
|
-+ icssg0_rgmii_pins_default: icssg0_rgmii_pins_default {
|
|
|
|
-+ pinctrl-single,pins = <
|
|
|
|
-+ AM65X_IOPAD(0x0244, PIN_INPUT, 2) /* (AB28) PRG0_PRU1_GPO0.PRG0_RGMII2_RD0 */
|
|
|
|
-+ AM65X_IOPAD(0x0248, PIN_INPUT, 2) /* (AC28) PRG0_PRU1_GPO1.PRG0_RGMII2_RD1 */
|
|
|
|
-+ AM65X_IOPAD(0x024c, PIN_INPUT, 2) /* (AC27) PRG0_PRU1_GPO2.PRG0_RGMII2_RD2 */
|
|
|
|
-+ AM65X_IOPAD(0x0250, PIN_INPUT, 2) /* (AB26) PRG0_PRU1_GPO3.PRG0_RGMII2_RD3 */
|
|
|
|
-+ AM65X_IOPAD(0x0274, PIN_OUTPUT, 2) /* (AC25) PRG0_PRU1_GPO12.PRG0_RGMII2_TD0 */
|
|
|
|
-+ AM65X_IOPAD(0x0278, PIN_OUTPUT, 2) /* (AD25) PRG0_PRU1_GPO13.PRG0_RGMII2_TD1 */
|
|
|
|
-+ AM65X_IOPAD(0x027c, PIN_OUTPUT, 2) /* (AD24) PRG0_PRU1_GPO14.PRG0_RGMII2_TD2 */
|
|
|
|
-+ AM65X_IOPAD(0x0280, PIN_OUTPUT, 2) /* (AE27) PRG0_PRU1_GPO15.PRG0_RGMII2_TD3 */
|
|
|
|
-+ AM65X_IOPAD(0x0284, PIN_INPUT, 2) /* (AC24) PRG0_PRU1_GPO16.PRG0_RGMII2_TXC */
|
|
|
|
-+ AM65X_IOPAD(0x0270, PIN_OUTPUT, 2) /* (AB24) PRG0_PRU1_GPO11.PRG0_RGMII2_TX_CTL */
|
|
|
|
-+ AM65X_IOPAD(0x025c, PIN_INPUT, 2) /* (AB27) PRG0_PRU1_GPO6.PRG0_RGMII2_RXC */
|
|
|
|
-+ AM65X_IOPAD(0x0254, PIN_INPUT, 2) /* (AA25) PRG0_PRU1_GPO4.PRG0_RGMII2_RX_CTL */
|
|
|
|
-+
|
|
|
|
-+ AM65X_IOPAD(0x01f4, PIN_INPUT, 2) /* (V24) PRG0_PRU0_GPO0.PRG0_RGMII1_RD0 */
|
|
|
|
-+ AM65X_IOPAD(0x01f8, PIN_INPUT, 2) /* (W25) PRG0_PRU0_GPO1.PRG0_RGMII1_RD1 */
|
|
|
|
-+ AM65X_IOPAD(0x01fc, PIN_INPUT, 2) /* (W24) PRG0_PRU0_GPO2.PRG0_RGMII1_RD2 */
|
|
|
|
-+ AM65X_IOPAD(0x0200, PIN_INPUT, 2) /* (AA27) PRG0_PRU0_GPO3.PRG0_RGMII1_RD3 */
|
|
|
|
-+ AM65X_IOPAD(0x0224, PIN_OUTPUT, 2) /* (AD27) PRG0_PRU0_GPO12.PRG0_RGMII1_TD0 */
|
|
|
|
-+ AM65X_IOPAD(0x0228, PIN_OUTPUT, 2) /* (AC26) PRG0_PRU0_GPO13.PRG0_RGMII1_TD1 */
|
|
|
|
-+ AM65X_IOPAD(0x022c, PIN_OUTPUT, 2) /* (AD26) PRG0_PRU0_GPO14.PRG0_RGMII1_TD2 */
|
|
|
|
-+ AM65X_IOPAD(0x0230, PIN_OUTPUT, 2) /* (AA24) PRG0_PRU0_GPO15.PRG0_RGMII1_TD3 */
|
|
|
|
-+ AM65X_IOPAD(0x0234, PIN_INPUT, 2) /* (AD28) PRG0_PRU0_GPO16.PRG0_RGMII1_TXC */
|
|
|
|
-+ AM65X_IOPAD(0x0220, PIN_OUTPUT, 2) /* (AB25) PRG0_PRU0_GPO11.PRG0_RGMII1_TX_CTL */
|
|
|
|
-+ AM65X_IOPAD(0x020c, PIN_INPUT, 2) /* (Y25) PRG0_PRU0_GPO6.PRG0_RGMII1_RXC */
|
|
|
|
-+ AM65X_IOPAD(0x0204, PIN_INPUT, 2) /* (Y24) PRG0_PRU0_GPO4.PRG0_RGMII1_RX_CTL */
|
|
|
|
-+ >;
|
|
|
|
-+ };
|
|
|
|
-+
|
|
|
|
-+ dss_vout1_pins_default: dss_vout1_pins_default {
|
|
|
|
-+ pinctrl-single,pins = <
|
|
|
|
-+ AM65X_IOPAD(0x0000, PIN_OUTPUT, 1) /* VOUT1_DATA0 */
|
|
|
|
-+ AM65X_IOPAD(0x0004, PIN_OUTPUT, 1) /* VOUT1_DATA1 */
|
|
|
|
-+ AM65X_IOPAD(0x0008, PIN_OUTPUT, 1) /* VOUT1_DATA2 */
|
|
|
|
-+ AM65X_IOPAD(0x000c, PIN_OUTPUT, 1) /* VOUT1_DATA3 */
|
|
|
|
-+ AM65X_IOPAD(0x0010, PIN_OUTPUT, 1) /* VOUT1_DATA4 */
|
|
|
|
-+ AM65X_IOPAD(0x0014, PIN_OUTPUT, 1) /* VOUT1_DATA5 */
|
|
|
|
-+ AM65X_IOPAD(0x0018, PIN_OUTPUT, 1) /* VOUT1_DATA6 */
|
|
|
|
-+ AM65X_IOPAD(0x001c, PIN_OUTPUT, 1) /* VOUT1_DATA7 */
|
|
|
|
-+ AM65X_IOPAD(0x0020, PIN_OUTPUT, 1) /* VOUT1_DATA8 */
|
|
|
|
-+ AM65X_IOPAD(0x0024, PIN_OUTPUT, 1) /* VOUT1_DATA9 */
|
|
|
|
-+ AM65X_IOPAD(0x0028, PIN_OUTPUT, 1) /* VOUT1_DATA10 */
|
|
|
|
-+ AM65X_IOPAD(0x002c, PIN_OUTPUT, 1) /* VOUT1_DATA11 */
|
|
|
|
-+ AM65X_IOPAD(0x0030, PIN_OUTPUT, 1) /* VOUT1_DATA12 */
|
|
|
|
-+ AM65X_IOPAD(0x0034, PIN_OUTPUT, 1) /* VOUT1_DATA13 */
|
|
|
|
-+ AM65X_IOPAD(0x0038, PIN_OUTPUT, 1) /* VOUT1_DATA14 */
|
|
|
|
-+ AM65X_IOPAD(0x003c, PIN_OUTPUT, 1) /* VOUT1_DATA15 */
|
|
|
|
-+ AM65X_IOPAD(0x0040, PIN_OUTPUT, 1) /* VOUT1_DATA16 */
|
|
|
|
-+ AM65X_IOPAD(0x0044, PIN_OUTPUT, 1) /* VOUT1_DATA17 */
|
|
|
|
-+ AM65X_IOPAD(0x0048, PIN_OUTPUT, 1) /* VOUT1_DATA18 */
|
|
|
|
-+ AM65X_IOPAD(0x004c, PIN_OUTPUT, 1) /* VOUT1_DATA19 */
|
|
|
|
-+ AM65X_IOPAD(0x0050, PIN_OUTPUT, 1) /* VOUT1_DATA20 */
|
|
|
|
-+ AM65X_IOPAD(0x0054, PIN_OUTPUT, 1) /* VOUT1_DATA21 */
|
|
|
|
-+ AM65X_IOPAD(0x0058, PIN_OUTPUT, 1) /* VOUT1_DATA22 */
|
|
|
|
-+ AM65X_IOPAD(0x005c, PIN_OUTPUT, 1) /* VOUT1_DATA23 */
|
|
|
|
-+ AM65X_IOPAD(0x0060, PIN_OUTPUT, 1) /* VOUT1_VSYNC */
|
|
|
|
-+ AM65X_IOPAD(0x0064, PIN_OUTPUT, 1) /* VOUT1_HSYNC */
|
|
|
|
-+ AM65X_IOPAD(0x0068, PIN_OUTPUT, 1) /* VOUT1_PCLK */
|
|
|
|
-+ AM65X_IOPAD(0x006c, PIN_OUTPUT, 1) /* VOUT1_DE */
|
|
|
|
-+ >;
|
|
|
|
-+ };
|
|
|
|
-+
|
|
|
|
-+ dp_pins_default: dp_pins_default {
|
|
|
|
-+ pinctrl-single,pins = <
|
|
|
|
-+ AM65X_IOPAD(0x0078, PIN_OUTPUT, 7) /* (AF18) DP rst_n */
|
|
|
|
-+ >;
|
|
|
|
-+ };
|
|
|
|
-+
|
|
|
|
-+ main_i2c2_pins_default: main_i2c2_pins_default {
|
|
|
|
-+ pinctrl-single,pins = <
|
|
|
|
-+ AM65X_IOPAD(0x0074, PIN_INPUT, 5) /* (T27) I2C2_SCL */
|
|
|
|
-+ AM65X_IOPAD(0x0070, PIN_INPUT, 5) /* (R25) I2C2_SDA */
|
|
|
|
-+ >;
|
|
|
|
-+ };
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+&main_pmx1 {
|
|
|
|
-+ main_i2c0_pins_default: main-i2c0-pins-default {
|
|
|
|
-+ pinctrl-single,pins = <
|
|
|
|
-+ AM65X_IOPAD(0x0000, PIN_INPUT, 0) /* (D20) I2C0_SCL */
|
|
|
|
-+ AM65X_IOPAD(0x0004, PIN_INPUT, 0) /* (C21) I2C0_SDA */
|
|
|
|
-+ >;
|
|
|
|
-+ };
|
|
|
|
-+
|
|
|
|
-+ main_i2c1_pins_default: main-i2c1-pins-default {
|
|
|
|
-+ pinctrl-single,pins = <
|
|
|
|
-+ AM65X_IOPAD(0x0008, PIN_INPUT, 0) /* (B21) I2C1_SCL */
|
|
|
|
-+ AM65X_IOPAD(0x000c, PIN_INPUT, 0) /* (E21) I2C1_SDA */
|
|
|
|
-+ >;
|
|
|
|
-+ };
|
|
|
|
-+
|
|
|
|
-+ ecap0_pins_default: ecap0-pins-default {
|
|
|
|
-+ pinctrl-single,pins = <
|
|
|
|
-+ AM65X_IOPAD(0x0010, PIN_INPUT, 0) /* (D21) ECAP0_IN_APWM_OUT */
|
|
|
|
-+ >;
|
|
|
|
-+ };
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+&wkup_uart0 {
|
|
|
|
-+ /* Wakeup UART is used by System firmware */
|
|
|
|
-+ status = "disabled";
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+&main_uart1 {
|
|
|
|
-+ pinctrl-names = "default";
|
|
|
|
-+ pinctrl-0 = <&main_uart1_pins_default>;
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+&main_uart2 {
|
|
|
|
-+ status = "disabled";
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+&mcu_uart0 {
|
|
|
|
-+ pinctrl-names = "default";
|
|
|
|
-+ pinctrl-0 = <&arduino_uart_pins_default>;
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+&main_gpio0 {
|
|
|
|
-+ pinctrl-names = "default";
|
|
|
|
-+ pinctrl-0 = <&arduino_io_d4_to_d9_pins_default>;
|
|
|
|
-+ gpio-line-names =
|
|
|
|
-+ "main_gpio0-base", "", "", "", "", "", "", "", "", "",
|
|
|
|
-+ "", "", "", "", "", "", "", "", "", "",
|
|
|
|
-+ "", "", "", "", "", "", "", "", "", "",
|
|
|
|
-+ "", "", "", "IO4", "", "IO5", "", "", "IO6", "",
|
|
|
|
-+ "", "", "", "IO7", "", "", "", "", "IO8", "",
|
|
|
|
-+ "", "IO9", "", "", "", "", "", "", "", "",
|
|
|
|
-+ "", "", "", "", "", "", "", "", "", "",
|
|
|
|
-+ "", "", "", "", "", "", "", "", "", "",
|
|
|
|
-+ "", "", "", "", "", "", "", "", "", "",
|
|
|
|
-+ "", "", "", "", "", "";
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+&wkup_gpio0 {
|
|
|
|
-+ pinctrl-names = "default";
|
|
|
|
-+ pinctrl-0 = <&arduino_io_d2_to_d3_pins_default
|
|
|
|
-+ &arduino_i2c_aio_switch_pins_default
|
|
|
|
-+ &arduino_io_oe_pins_default
|
|
|
|
-+ &push_button_pins_default
|
|
|
|
-+ &db9_com_mode_pins_default>;
|
|
|
|
-+ gpio-line-names =
|
|
|
|
-+ "wkup_gpio0-base", "", "", "", "UART0-mode1", "UART0-mode0",
|
|
|
|
-+ "UART0-enable", "UART0-terminate", "", "WIFI-disable",
|
|
|
|
-+ "", "", "", "", "", "", "", "", "", "",
|
|
|
|
-+ "", "A4A5-I2C-mux", "", "", "", "USER-button", "", "", "","IO0",
|
|
|
|
-+ "IO1", "IO2", "", "IO3", "IO17-direction",
|
|
|
|
-+ "A5", "IO16-direction", "IO15-direction",
|
|
|
|
-+ "IO14-direction", "A3",
|
|
|
|
-+ "", "IO18-direction", "A4", "A2", "A1",
|
|
|
|
-+ "A0", "", "", "IO13", "IO11",
|
|
|
|
-+ "IO12", "IO10", "", "", "", "";
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+&wkup_i2c0 {
|
|
|
|
-+ pinctrl-names = "default";
|
|
|
|
-+ pinctrl-0 = <&wkup_i2c0_pins_default>;
|
|
|
|
-+ clock-frequency = <400000>;
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+&mcu_i2c0 {
|
|
|
|
-+ pinctrl-names = "default";
|
|
|
|
-+ pinctrl-0 = <&mcu_i2c0_pins_default>;
|
|
|
|
-+ clock-frequency = <400000>;
|
|
|
|
-+
|
|
|
|
-+ psu: tps62363@60 {
|
|
|
|
-+ compatible = "ti,tps62363";
|
|
|
|
-+ reg = <0x60>;
|
|
|
|
-+ regulator-name = "tps62363-vout";
|
|
|
|
-+ regulator-min-microvolt = <500000>;
|
|
|
|
-+ regulator-max-microvolt = <1500000>;
|
|
|
|
-+ regulator-boot-on;
|
|
|
|
-+ /* ti,vsel0-gpio = <&gpio1 16 0>; */
|
|
|
|
-+ /* ti,vsel1-gpio = <&gpio1 17 0>; */
|
|
|
|
-+ ti,vsel0-state-high;
|
|
|
|
-+ ti,vsel1-state-high;
|
|
|
|
-+ /* ti,enable-pull-down; */
|
|
|
|
-+ /* ti,enable-force-pwm; */
|
|
|
|
-+ ti,enable-vout-discharge;
|
|
|
|
-+ };
|
|
|
|
-+
|
|
|
|
-+ /*D4200*/
|
|
|
|
-+ pcal9535_1: gpio@20 {
|
|
|
|
-+ compatible = "nxp,pcal9535";
|
|
|
|
-+ reg = <0x20>;
|
|
|
|
-+ #gpio-cells = <2>;
|
|
|
|
-+ gpio-controller;
|
|
|
|
-+ gpio-line-names =
|
|
|
|
-+ "A0-pull", "A1-pull", "A2-pull", "A3-pull", "A4-pull",
|
|
|
|
-+ "A5-pull", "", "",
|
|
|
|
-+ "IO14-enable", "IO15-enable", "IO16-enable",
|
|
|
|
-+ "IO17-enable", "IO18-enable", "IO19-enable", "", "";
|
|
|
|
-+ };
|
|
|
|
-+
|
|
|
|
-+ /*D4201*/
|
|
|
|
-+ pcal9535_2: gpio@21 {
|
|
|
|
-+ compatible = "nxp,pcal9535";
|
|
|
|
-+ reg = <0x21>;
|
|
|
|
-+ #gpio-cells = <2>;
|
|
|
|
-+ gpio-controller;
|
|
|
|
-+ gpio-line-names =
|
|
|
|
-+ "IO0-direction", "IO1-direction", "IO2-direction",
|
|
|
|
-+ "IO3-direction", "IO4-direction", "IO5-direction",
|
|
|
|
-+ "IO6-direction", "IO7-direction",
|
|
|
|
-+ "IO8-direction", "IO9-direction", "IO10-direction",
|
|
|
|
-+ "IO11-direction", "IO12-direction", "IO13-direction",
|
|
|
|
-+ "IO19-direction", "";
|
|
|
|
-+ };
|
|
|
|
-+
|
|
|
|
-+ /*D4202*/
|
|
|
|
-+ pcal9535_3: gpio@25 {
|
|
|
|
-+ compatible = "nxp,pcal9535";
|
|
|
|
-+ reg = <0x25>;
|
|
|
|
-+ #gpio-cells = <2>;
|
|
|
|
-+ gpio-controller;
|
|
|
|
-+ gpio-line-names =
|
|
|
|
-+ "IO0-pull", "IO1-pull", "IO2-pull", "IO3-pull",
|
|
|
|
-+ "IO4-pull", "IO5-pull", "IO6-pull", "IO7-pull",
|
|
|
|
-+ "IO8-pull", "IO9-pull", "IO10-pull", "IO11-pull",
|
|
|
|
-+ "IO12-pull", "IO13-pull", "", "";
|
|
|
|
-+ };
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+&main_i2c0 {
|
|
|
|
-+ pinctrl-names = "default";
|
|
|
|
-+ pinctrl-0 = <&main_i2c0_pins_default>;
|
|
|
|
-+ clock-frequency = <400000>;
|
|
|
|
-+
|
|
|
|
-+ rtc:rtc8564@51 {
|
|
|
|
-+ compatible = "nxp,pcf8563";
|
|
|
|
-+ reg = <0x51>;
|
|
|
|
-+ };
|
|
|
|
-+
|
|
|
|
-+ eeprom: eeprom@54 {
|
|
|
|
-+ compatible = "atmel,24c08";
|
|
|
|
-+ reg = <0x54>;
|
|
|
|
-+ pagesize = <16>;
|
|
|
|
-+ };
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+&main_i2c1 {
|
|
|
|
-+ pinctrl-names = "default";
|
|
|
|
-+ pinctrl-0 = <&main_i2c1_pins_default>;
|
|
|
|
-+ clock-frequency = <400000>;
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+&main_i2c2 {
|
|
|
|
-+ pinctrl-names = "default";
|
|
|
|
-+ pinctrl-0 = <&main_i2c2_pins_default>;
|
|
|
|
-+ clock-frequency = <400000>;
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+&main_i2c3 {
|
|
|
|
-+ pinctrl-names = "default";
|
|
|
|
-+ pinctrl-0 = <&main_i2c3_pins_default>;
|
|
|
|
-+ clock-frequency = <400000>;
|
|
|
|
-+
|
|
|
|
-+ #address-cells = <1>;
|
|
|
|
-+ #size-cells = <0>;
|
|
|
|
-+
|
|
|
|
-+ edp-bridge@f {
|
|
|
|
-+ compatible = "toshiba,tc358867", "toshiba,tc358767";
|
|
|
|
-+ reg = <0x0f>;
|
|
|
|
-+ pinctrl-names = "default";
|
|
|
|
-+ pinctrl-0 = <&dp_pins_default>;
|
|
|
|
-+ reset-gpios = <&main_gpio0 30 GPIO_ACTIVE_HIGH>;
|
|
|
|
-+
|
|
|
|
-+ clock-names = "ref";
|
|
|
|
-+ clocks = <&dp_refclk>;
|
|
|
|
-+
|
|
|
|
-+ toshiba,hpd-pin = <0>;
|
|
|
|
-+
|
|
|
|
-+ ports {
|
|
|
|
-+ #address-cells = <1>;
|
|
|
|
-+ #size-cells = <0>;
|
|
|
|
-+
|
|
|
|
-+ port@1 {
|
|
|
|
-+ reg = <1>;
|
|
|
|
-+
|
|
|
|
-+ bridge_in: endpoint {
|
|
|
|
-+ remote-endpoint = <&dpi_out>;
|
|
|
|
-+ };
|
|
|
|
-+ };
|
|
|
|
-+ };
|
|
|
|
-+ };
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+&mcu_cpsw {
|
|
|
|
-+ status = "disabled";
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+&ecap0 {
|
|
|
|
-+ pinctrl-names = "default";
|
|
|
|
-+ pinctrl-0 = <&ecap0_pins_default>;
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+&sdhci1 {
|
|
|
|
-+ pinctrl-names = "default";
|
|
|
|
-+ pinctrl-0 = <&main_mmc1_pins_default>;
|
|
|
|
-+ ti,driver-strength-ohm = <50>;
|
|
|
|
-+ disable-wp;
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+&gpu {
|
|
|
|
-+ status = "okay";
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+&dwc3_0 {
|
|
|
|
-+ status = "okay";
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+&usb0_phy {
|
|
|
|
-+ status = "okay";
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+&usb0 {
|
|
|
|
-+ pinctrl-names = "default";
|
|
|
|
-+ pinctrl-0 = <&usb0_pins_default>;
|
|
|
|
-+ dr_mode = "host";
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+&dwc3_1 {
|
|
|
|
-+ status = "okay";
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+&usb1_phy {
|
|
|
|
-+ status = "okay";
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+&usb1 {
|
|
|
|
-+ pinctrl-names = "default";
|
|
|
|
-+ pinctrl-0 = <&usb1_pins_default>;
|
|
|
|
-+ dr_mode = "host";
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+&mcu_spi0 {
|
|
|
|
-+ pinctrl-names = "default";
|
|
|
|
-+ pinctrl-0 = <&mcu_spi0_pins_default>;
|
|
|
|
-+
|
|
|
|
-+ #address-cells = <1>;
|
|
|
|
-+ #size-cells= <0>;
|
|
|
|
-+ ti,pindir-d0-out-d1-in = <1>;
|
|
|
|
-+
|
|
|
|
-+ spidev@0x00 {
|
|
|
|
-+ compatible = "rohm,dh2228fv";
|
|
|
|
-+ spi-max-frequency = <20000000>;
|
|
|
|
-+ reg = <0>;
|
|
|
|
-+ };
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+&tscadc0 {
|
|
|
|
-+ status = "disabled";
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+&tscadc1 {
|
|
|
|
-+ adc {
|
|
|
|
-+ ti,adc-channels = <0 1 2 3 4 5>;
|
|
|
|
-+ };
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+&mcu_r5fss0_core0 {
|
|
|
|
-+ memory-region = <&mcu_r5fss0_core0_dma_memory_region>,
|
|
|
|
-+ <&mcu_r5fss0_core0_memory_region>;
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+&mcu_r5fss0_core1 {
|
|
|
|
-+ memory-region = <&mcu_r5fss0_core1_dma_memory_region>,
|
|
|
|
-+ <&mcu_r5fss0_core1_memory_region>;
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+&ospi0 {
|
|
|
|
-+ pinctrl-names = "default";
|
|
|
|
-+ pinctrl-0 = <&mcu_fss0_ospi0_pins_default>;
|
|
|
|
-+
|
|
|
|
-+ flash@0{
|
|
|
|
-+ compatible = "jedec,spi-nor";
|
|
|
|
-+ reg = <0x0>;
|
|
|
|
-+ spi-tx-bus-width = <1>;
|
|
|
|
-+ spi-rx-bus-width = <1>;
|
|
|
|
-+ spi-max-frequency = <50000000>;
|
|
|
|
-+ cdns,tshsl-ns = <60>;
|
|
|
|
-+ cdns,tsd2d-ns = <60>;
|
|
|
|
-+ cdns,tchsh-ns = <60>;
|
|
|
|
-+ cdns,tslch-ns = <60>;
|
|
|
|
-+ cdns,read-delay = <2>;
|
|
|
|
-+ #address-cells = <1>;
|
|
|
|
-+ #size-cells = <1>;
|
|
|
|
-+ };
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+&dss {
|
|
|
|
-+ status = "okay";
|
|
|
|
-+
|
|
|
|
-+ pinctrl-names = "default";
|
|
|
|
-+ pinctrl-0 = <&dss_vout1_pins_default>;
|
|
|
|
-+
|
|
|
|
-+ assigned-clocks = <&k3_clks 67 2>;
|
|
|
|
-+ assigned-clock-parents = <&k3_clks 67 5>;
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+&dss_ports {
|
|
|
|
-+ #address-cells = <1>;
|
|
|
|
-+ #size-cells = <0>;
|
|
|
|
-+ port@1 {
|
|
|
|
-+ reg = <1>;
|
|
|
|
-+
|
|
|
|
-+ dpi_out: endpoint {
|
|
|
|
-+ remote-endpoint = <&bridge_in>;
|
|
|
|
-+ };
|
|
|
|
-+ };
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+&icssg0_mdio {
|
|
|
|
-+ status = "okay";
|
|
|
|
-+ pinctrl-names = "default";
|
|
|
|
-+ pinctrl-0 = <&icssg0_mdio_pins_default>;
|
|
|
|
-+ #address-cells = <1>;
|
|
|
|
-+ #size-cells = <0>;
|
|
|
|
-+
|
|
|
|
-+ pruss0_eth0_phy: ethernet-phy@0 {
|
|
|
|
-+ reg = <0>;
|
|
|
|
-+ ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
|
|
|
|
-+ ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
|
|
|
|
-+ };
|
|
|
|
-+
|
|
|
|
-+ pruss0_eth1_phy: ethernet-phy@1 {
|
|
|
|
-+ reg = <1>;
|
|
|
|
-+ ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
|
|
|
|
-+ ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
|
|
|
|
-+ };
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+&serdes1 {
|
|
|
|
-+ status = "okay";
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+&pcie1_rc {
|
|
|
|
-+ pinctrl-names = "default";
|
|
|
|
-+ pinctrl-0 = <&minipcie_pins_default>;
|
|
|
|
-+
|
|
|
|
-+ phys = <&serdes1 PHY_TYPE_PCIE 0>;
|
|
|
|
-+ phy-names = "pcie-phy0";
|
|
|
|
-+ reset-gpio = <&wkup_gpio0 27 GPIO_ACTIVE_HIGH>;
|
|
|
|
-+ status = "okay";
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+/* Disable crypto and eip76d_trng temporarily, because the HS system firmware has taken them up */
|
|
|
|
-+&crypto {
|
|
|
|
-+ status = "disabled";
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+&eip76d_trng {
|
|
|
|
-+ status = "disabled";
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+/*
|
|
|
|
-+ * Workaround for UART issues:
|
|
|
|
-+ * DMA for UARTs does not work with TI kernel but is enabled already in the
|
|
|
|
-+ * downstream DTS.
|
|
|
|
-+ */
|
|
|
|
-+&main_uart0 {
|
|
|
|
-+ /delete-property/ dmas;
|
|
|
|
-+ /delete-property/ dma-names;
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+&main_uart1 {
|
|
|
|
-+ /delete-property/ dmas;
|
|
|
|
-+ /delete-property/ dma-names;
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+&mcu_uart0 {
|
|
|
|
-+ /delete-property/ dmas;
|
|
|
|
-+ /delete-property/ dma-names;
|
|
|
|
-+};
|
|
|
|
-diff --git a/arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic-oldfw.dts b/arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic-oldfw.dts
|
|
|
|
-new file mode 100644
|
|
|
|
-index 000000000000..28a2ec6ec4ca
|
|
|
|
---- /dev/null
|
|
|
|
-+++ b/arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic-oldfw.dts
|
|
|
|
-@@ -0,0 +1,24 @@
|
|
|
|
-+// SPDX-License-Identifier: GPL-2.0
|
|
|
|
-+/*
|
|
|
|
-+ * (C) Copyright 2018-2020 Siemens AG
|
|
|
|
-+ */
|
|
|
|
-+
|
|
|
|
-+/dts-v1/;
|
|
|
|
-+
|
|
|
|
-+#include "k3-am65-iot2050.dtsi"
|
|
|
|
-+#include "k3-am6528-iot2050-basic.dtsi"
|
|
|
|
-+#include "k3-am65-iot2050-oldfw.dtsi"
|
|
|
|
-+
|
|
|
|
-+/* Compat support for bootloader V01.00.00.1 */
|
|
|
|
-+
|
|
|
|
-+&ospi0 {
|
|
|
|
-+ clocks = <&k3_clks 55 5>;
|
|
|
|
-+ assigned-clocks = <&k3_clks 55 5>;
|
|
|
|
-+ assigned-clock-parents = <&k3_clks 55 7>;
|
|
|
|
-+ power-domains = <&k3_pds 55 TI_SCI_PD_EXCLUSIVE>;
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+&ospi1 {
|
|
|
|
-+ clocks = <&k3_clks 55 16>;
|
|
|
|
-+ power-domains = <&k3_pds 55 TI_SCI_PD_EXCLUSIVE>;
|
|
|
|
-+};
|
|
|
|
-diff --git a/arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic.dts b/arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic.dts
|
|
|
|
-new file mode 100644
|
|
|
|
-index 000000000000..835bd694feb0
|
|
|
|
---- /dev/null
|
|
|
|
-+++ b/arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic.dts
|
|
|
|
-@@ -0,0 +1,12 @@
|
|
|
|
-+// SPDX-License-Identifier: GPL-2.0
|
|
|
|
-+/*
|
|
|
|
-+ * (C) Copyright 2018-2020 Siemens AG
|
|
|
|
-+ */
|
|
|
|
-+
|
|
|
|
-+/dts-v1/;
|
|
|
|
-+
|
|
|
|
-+#include "k3-am65-iot2050.dtsi"
|
|
|
|
-+#include "k3-am6528-iot2050-basic.dtsi"
|
|
|
|
-+#include "k3-am65-main-abi3_x.dtsi"
|
|
|
|
-+#include "k3-am65-mcu-abi3_x.dtsi"
|
|
|
|
-+#include "k3-am65-wakeup-abi3_x.dtsi"
|
|
|
|
-diff --git a/arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic.dtsi b/arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic.dtsi
|
|
|
|
-new file mode 100644
|
|
|
|
-index 000000000000..14d0fa84dd2b
|
|
|
|
---- /dev/null
|
|
|
|
-+++ b/arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic.dtsi
|
|
|
|
-@@ -0,0 +1,47 @@
|
|
|
|
-+// SPDX-License-Identifier: GPL-2.0
|
|
|
|
-+/*
|
|
|
|
-+ * (C) Copyright 2018-2020 Siemens AG
|
|
|
|
-+ */
|
|
|
|
-+
|
|
|
|
-+/ {
|
|
|
|
-+ compatible = "siemens,iot2050-basic", "ti,am654";
|
|
|
|
-+ model = "SIMATIC IOT2050 Basic";
|
|
|
|
-+
|
|
|
|
-+ memory@80000000 {
|
|
|
|
-+ device_type = "memory";
|
|
|
|
-+ /* 1G RAM */
|
|
|
|
-+ reg = <0x00000000 0x80000000 0x00000000 0x40000000>;
|
|
|
|
-+ };
|
|
|
|
-+
|
|
|
|
-+ cpus {
|
|
|
|
-+ cpu-map {
|
|
|
|
-+ /delete-node/ cluster1;
|
|
|
|
-+ };
|
|
|
|
-+ /delete-node/ cpu@100;
|
|
|
|
-+ /delete-node/ cpu@101;
|
|
|
|
-+ };
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+&main_pmx0 {
|
|
|
|
-+ main_uart0_pins_default: main-uart0-pins-default {
|
|
|
|
-+ pinctrl-single,pins = <
|
|
|
|
-+ AM65X_IOPAD(0x01e4, PIN_INPUT, 0) /* (AF11) UART0_RXD */
|
|
|
|
-+ AM65X_IOPAD(0x01e8, PIN_OUTPUT, 0) /* (AE11) UART0_TXD */
|
|
|
|
-+ AM65X_IOPAD(0x01ec, PIN_INPUT, 0) /* (AG11) UART0_CTSn */
|
|
|
|
-+ AM65X_IOPAD(0x01f0, PIN_OUTPUT, 0) /* (AD11) UART0_RTSn */
|
|
|
|
-+ AM65X_IOPAD(0x0188, PIN_INPUT, 1) /* (D25) UART0_DCDn */
|
|
|
|
-+ AM65X_IOPAD(0x018c, PIN_INPUT, 1) /* (B26) UART0_DSRn */
|
|
|
|
-+ AM65X_IOPAD(0x0190, PIN_OUTPUT, 1) /* (A24) UART0_DTRn */
|
|
|
|
-+ AM65X_IOPAD(0x0194, PIN_INPUT, 1) /* (E24) UART0_RIN */
|
|
|
|
-+ >;
|
|
|
|
-+ };
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+&main_uart0 {
|
|
|
|
-+ pinctrl-names = "default";
|
|
|
|
-+ pinctrl-0 = <&main_uart0_pins_default>;
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+&sdhci0 {
|
|
|
|
-+ status = "disabled";
|
|
|
|
-+};
|
|
|
|
-diff --git a/arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced-oldfw.dts b/arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced-oldfw.dts
|
|
|
|
-new file mode 100644
|
|
|
|
-index 000000000000..f17cc47e0560
|
|
|
|
---- /dev/null
|
|
|
|
-+++ b/arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced-oldfw.dts
|
|
|
|
-@@ -0,0 +1,10 @@
|
|
|
|
-+// SPDX-License-Identifier: GPL-2.0
|
|
|
|
-+/*
|
|
|
|
-+ * (C) Copyright 2018-2020 Siemens AG
|
|
|
|
-+ */
|
|
|
|
-+
|
|
|
|
-+/dts-v1/;
|
|
|
|
-+
|
|
|
|
-+#include "k3-am65-iot2050.dtsi"
|
|
|
|
-+#include "k3-am6548-iot2050-advanced.dtsi"
|
|
|
|
-+#include "k3-am65-iot2050-oldfw.dtsi"
|
|
|
|
-diff --git a/arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced.dts b/arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced.dts
|
|
|
|
-new file mode 100644
|
|
|
|
-index 000000000000..a98c00af983b
|
|
|
|
---- /dev/null
|
|
|
|
-+++ b/arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced.dts
|
|
|
|
-@@ -0,0 +1,12 @@
|
|
|
|
-+// SPDX-License-Identifier: GPL-2.0
|
|
|
|
-+/*
|
|
|
|
-+ * (C) Copyright 2018-2020 Siemens AG
|
|
|
|
-+ */
|
|
|
|
-+
|
|
|
|
-+/dts-v1/;
|
|
|
|
-+
|
|
|
|
-+#include "k3-am65-iot2050.dtsi"
|
|
|
|
-+#include "k3-am6548-iot2050-advanced.dtsi"
|
|
|
|
-+#include "k3-am65-main-abi3_x.dtsi"
|
|
|
|
-+#include "k3-am65-mcu-abi3_x.dtsi"
|
|
|
|
-+#include "k3-am65-wakeup-abi3_x.dtsi"
|
|
|
|
-diff --git a/arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced.dtsi b/arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced.dtsi
|
|
|
|
-new file mode 100644
|
|
|
|
-index 000000000000..498e6cc7fa87
|
|
|
|
---- /dev/null
|
|
|
|
-+++ b/arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced.dtsi
|
|
|
|
-@@ -0,0 +1,53 @@
|
|
|
|
-+// SPDX-License-Identifier: GPL-2.0
|
|
|
|
-+/*
|
|
|
|
-+ * (C) Copyright 2018-2020 Siemens AG
|
|
|
|
-+ */
|
|
|
|
-+
|
|
|
|
-+/ {
|
|
|
|
-+ compatible = "siemens,iot2050-advanced", "ti,am654";
|
|
|
|
-+ model = "SIMATIC IOT2050 Advanced";
|
|
|
|
-+
|
|
|
|
-+ aliases {
|
|
|
|
-+ mmc0 = &sdhci1;
|
|
|
|
-+ mmc1 = &sdhci0;
|
|
|
|
-+ };
|
|
|
|
-+
|
|
|
|
-+ memory@80000000 {
|
|
|
|
-+ device_type = "memory";
|
|
|
|
-+ /* 2G RAM */
|
|
|
|
-+ reg = <0x00000000 0x80000000 0x00000000 0x80000000>;
|
|
|
|
-+ };
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+&main_uart0 {
|
|
|
|
-+ status = "disabled";
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+&main_pmx0 {
|
|
|
|
-+ main_mmc0_pins_default: main-mmc0-pins-default {
|
|
|
|
-+ pinctrl-single,pins = <
|
|
|
|
-+ AM65X_IOPAD(0x01a8, PIN_INPUT_PULLDOWN, 0) /* (B25) MMC0_CLK */
|
|
|
|
-+ AM65X_IOPAD(0x01ac, PIN_INPUT_PULLUP, 0) /* (B27) MMC0_CMD */
|
|
|
|
-+ AM65X_IOPAD(0x01a4, PIN_INPUT_PULLUP, 0) /* (A26) MMC0_DAT0 */
|
|
|
|
-+ AM65X_IOPAD(0x01a0, PIN_INPUT_PULLUP, 0) /* (E25) MMC0_DAT1 */
|
|
|
|
-+ AM65X_IOPAD(0x019c, PIN_INPUT_PULLUP, 0) /* (C26) MMC0_DAT2 */
|
|
|
|
-+ AM65X_IOPAD(0x0198, PIN_INPUT_PULLUP, 0) /* (A25) MMC0_DAT3 */
|
|
|
|
-+ AM65X_IOPAD(0x0194, PIN_INPUT_PULLUP, 0) /* (E24) MMC0_DAT4 */
|
|
|
|
-+ AM65X_IOPAD(0x0190, PIN_INPUT_PULLUP, 0) /* (A24) MMC0_DAT5 */
|
|
|
|
-+ AM65X_IOPAD(0x018c, PIN_INPUT_PULLUP, 0) /* (B26) MMC0_DAT6 */
|
|
|
|
-+ AM65X_IOPAD(0x0188, PIN_INPUT_PULLUP, 0) /* (D25) MMC0_DAT7 */
|
|
|
|
-+ AM65X_IOPAD(0x01B8, PIN_OUTPUT_PULLUP, 7) /* (B23) MMC0_SDWP */
|
|
|
|
-+ AM65X_IOPAD(0x01b4, PIN_INPUT_PULLUP, 0) /* (A23) MMC0_SDCD */
|
|
|
|
-+ AM65X_IOPAD(0x01b0, PIN_INPUT, 0) /* (C25) MMC0_DS */
|
|
|
|
-+ >;
|
|
|
|
-+ };
|
|
|
|
-+};
|
|
|
|
-+
|
|
|
|
-+&sdhci0 {
|
|
|
|
-+ pinctrl-names = "default";
|
|
|
|
-+ pinctrl-0 = <&main_mmc0_pins_default>;
|
|
|
|
-+ bus-width = <8>;
|
|
|
|
-+ non-removable;
|
|
|
|
-+ ti,driver-strength-ohm = <50>;
|
|
|
|
-+ disable-wp;
|
|
|
|
-+};
|
|
|
|
-diff --git a/drivers/gpio/gpio-davinci.c b/drivers/gpio/gpio-davinci.c
|
|
|
|
-index 994ecd597abe..5030a14e86b5 100644
|
|
|
|
---- a/drivers/gpio/gpio-davinci.c
|
|
|
|
-+++ b/drivers/gpio/gpio-davinci.c
|
|
|
|
-@@ -174,6 +174,7 @@ static int davinci_gpio_probe(struct platform_device *pdev)
|
|
|
|
- struct device *dev = &pdev->dev;
|
|
|
|
- struct resource *res;
|
|
|
|
- char label[MAX_LABEL_SIZE];
|
|
|
|
-+ int gpio_alias_id;
|
|
|
|
-
|
|
|
|
- pdata = davinci_gpio_get_pdata(pdev);
|
|
|
|
- if (!pdata) {
|
|
|
|
-@@ -251,6 +252,15 @@ static int davinci_gpio_probe(struct platform_device *pdev)
|
|
|
|
- chips->chip.request = gpiochip_generic_request;
|
|
|
|
- chips->chip.free = gpiochip_generic_free;
|
|
|
|
- }
|
|
|
|
-+ /*
|
|
|
|
-+ * Traditionally the base is given out in first-come-first-serve order.
|
|
|
|
-+ * This might shuffle the numbering of gpios if the probe order changes.
|
|
|
|
-+ * So make the base deterministical if the device tree specifies alias
|
|
|
|
-+ * ids.
|
|
|
|
-+ */
|
|
|
|
-+ gpio_alias_id = of_alias_get_id(dev->of_node, "gpio");
|
|
|
|
-+ if (gpio_alias_id >= 0)
|
|
|
|
-+ chips->chip.base = gpio_alias_id;
|
|
|
|
- #endif
|
|
|
|
- spin_lock_init(&chips->lock);
|
|
|
|
- bank_base += ngpio;
|
|
|
|
-diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c
|
|
|
|
-index aa4de6907f77..7019cc4e675d 100644
|
|
|
|
---- a/drivers/tty/serial/8250/8250_port.c
|
|
|
|
-+++ b/drivers/tty/serial/8250/8250_port.c
|
|
|
|
-@@ -1868,8 +1868,9 @@ int serial8250_handle_irq(struct uart_port *port, unsigned int iir)
|
|
|
|
- spin_lock_irqsave(&port->lock, flags);
|
|
|
|
-
|
|
|
|
- status = serial_port_in(port, UART_LSR);
|
|
|
|
--
|
|
|
|
-- if (status & (UART_LSR_DR | UART_LSR_BI)) {
|
|
|
|
-+ /* '&& iir & UART_IIR_RDI UART_IIR_RDI' will affect hardware flow control */
|
|
|
|
-+ if (status & (UART_LSR_DR | UART_LSR_BI) &&
|
|
|
|
-+ iir & UART_IIR_RDI) {
|
|
|
|
- if (!up->dma || handle_rx_dma(up, iir))
|
|
|
|
- status = serial8250_rx_chars(up, status);
|
|
|
|
- }
|
|
|
|
---
|
|
|
|
-2.31.1
|
|
|
|
-
|
|
|