477 lines
12 KiB
Plaintext
477 lines
12 KiB
Plaintext
// SPDX-License-Identifier: GPL-2.0
|
|
/*
|
|
* Copyright (C) 2021 Texas Instruments Incorporated - https://www.ti.com/
|
|
*/
|
|
|
|
/dts-v1/;
|
|
|
|
#include <dt-bindings/mux/ti-serdes.h>
|
|
#include <dt-bindings/phy/phy.h>
|
|
#include <dt-bindings/gpio/gpio.h>
|
|
#include <dt-bindings/net/ti-dp83867.h>
|
|
#include "k3-am642.dtsi"
|
|
|
|
/ {
|
|
compatible = "ti,am642-gemini", "ti,am642";
|
|
model = "NetModule AM642 based Gemini";
|
|
|
|
aliases {
|
|
i2c0 = &main_i2c0;
|
|
i2c1 = &main_i2c1;
|
|
i2c2 = &main_i2c2;
|
|
};
|
|
|
|
chosen {
|
|
stdout-path = "serial2:115200n8";
|
|
bootargs = "console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000";
|
|
};
|
|
|
|
memory@80000000 {
|
|
device_type = "memory";
|
|
/* 1G RAM */
|
|
reg = <0x00000000 0x80000000 0x00000000 0x40000000>;
|
|
|
|
};
|
|
|
|
reserved-memory {
|
|
#address-cells = <2>;
|
|
#size-cells = <2>;
|
|
ranges;
|
|
|
|
secure_ddr: optee@9e800000 {
|
|
reg = <0x00 0x9e800000 0x00 0x01800000>; /* for OP-TEE */
|
|
alignment = <0x1000>;
|
|
no-map;
|
|
};
|
|
};
|
|
|
|
config {
|
|
u-boot,mmc-env-offset = <0x3e0000>; /* 4MB partition, we put it into the last 128 kB */
|
|
};
|
|
|
|
gemini-sysreset {
|
|
compatible = "gemini-sysreset";
|
|
};
|
|
};
|
|
|
|
&main_pmx0 {
|
|
main_mmc1_pins_default: main-mmc1-pins-default {
|
|
pinctrl-single,pins = <
|
|
AM64X_IOPAD(0x0294, PIN_INPUT, 0) /* (J19) MMC1_CMD */
|
|
AM64X_IOPAD(0x0290, PIN_INPUT, 0) /* (#N/A) MMC1_CLKLB */
|
|
AM64X_IOPAD(0x028c, PIN_INPUT_PULLDOWN, 0) /* (L20) MMC1_CLK */
|
|
AM64X_IOPAD(0x0288, PIN_INPUT, 0) /* (K21) MMC1_DAT0 */
|
|
AM64X_IOPAD(0x0284, PIN_INPUT, 0) /* (L21) MMC1_DAT1 */
|
|
AM64X_IOPAD(0x0280, PIN_INPUT, 0) /* (K19) MMC1_DAT2 */
|
|
AM64X_IOPAD(0x027c, PIN_INPUT, 0) /* (K18) MMC1_DAT3 */
|
|
AM64X_IOPAD(0x0298, PIN_INPUT, 0) /* (D19) MMC1_SDCD */
|
|
>;
|
|
};
|
|
|
|
main_uart0_pins_default: main-uart0-pins-default {
|
|
u-boot,dm-spl;
|
|
pinctrl-single,pins = <
|
|
AM64X_IOPAD(0x0230, PIN_INPUT, 0) /* (D15) UART0_RXD */
|
|
AM64X_IOPAD(0x0234, PIN_OUTPUT, 0) /* (C16) UART0_TXD */
|
|
>;
|
|
};
|
|
|
|
gpio0_pins: gpio0-pins {
|
|
pinctrl-single,pins = <
|
|
AM64X_IOPAD(0x0090, PIN_OUTPUT, 7) /* (P17) GPIO0_35 */
|
|
AM64X_IOPAD(0x008C, PIN_INPUT, 7) /* (T21) GPIO0_34 */
|
|
AM64X_IOPAD(0x00A0, PIN_OUTPUT, 7) /* (N16) GPIO0_39 */
|
|
AM64X_IOPAD(0x0098, PIN_INPUT, 7) /* (W19) GPIO0_37 */
|
|
AM64X_IOPAD(0x009C, PIN_INPUT, 7) /* (Y18) GPIO0_38 */
|
|
AM64X_IOPAD(0x0094, PIN_INPUT, 7) /* (Y19) GPIO0_36 */
|
|
AM64X_IOPAD(0x00A8, PIN_INPUT, 7) /* (R19) GPIO0_41 */
|
|
AM64X_IOPAD(0x00AC, PIN_INPUT, 7) /* (R20) GPIO0_42 */
|
|
AM64X_IOPAD(0x00A4, PIN_INPUT, 7) /* (N17) GPIO0_40 */
|
|
|
|
AM64X_IOPAD(0x011c, PIN_INPUT, 7) /* (AA13) GPIO0_70 */
|
|
AM64X_IOPAD(0x0128, PIN_OUTPUT, 7) /* (U12) GPIO0_73 */
|
|
AM64X_IOPAD(0x0150, PIN_INPUT, 7) /* (Y13) GPIO0_20 */
|
|
AM64X_IOPAD(0x0154, PIN_INPUT, 7) /* (V12) GPIO0_84 */
|
|
AM64X_IOPAD(0x00d8, PIN_INPUT, 7) /* (W13) GPIO0_53 */
|
|
AM64X_IOPAD(0x00cc, PIN_INPUT, 7) /* (V13) GPIO0_50 */
|
|
|
|
AM64X_IOPAD(0x0124, PIN_OUTPUT, 7) /* (V15) GPIO0_72 */
|
|
AM64X_IOPAD(0x012c, PIN_OUTPUT, 7) /* (V14) GPIO0_74 */
|
|
AM64X_IOPAD(0x0130, PIN_INPUT, 7) /* (W14) GPIO0_75 */
|
|
AM64X_IOPAD(0x014c, PIN_OUTPUT, 7) /* (AA14) GPIO0_19 */
|
|
AM64X_IOPAD(0x00e0, PIN_OUTPUT, 7) /* (U14) GPIO0_55 */
|
|
AM64X_IOPAD(0x00dc, PIN_OUTPUT, 7) /* (U15) GPIO0_54 */
|
|
|
|
AM64X_IOPAD(0x0114, PIN_INPUT, 7) /* (Y12) GPIO0_68 */
|
|
AM64X_IOPAD(0x0118, PIN_OUTPUT, 7) /* (W12) GPIO0_69 */
|
|
|
|
|
|
AM64X_IOPAD(0x00bc, PIN_INPUT, 7) /* (U8) GPIO0_46 */
|
|
AM64X_IOPAD(0x00c0, PIN_OUTPUT, 7) /* (W8) GPIO0_47 */
|
|
AM64X_IOPAD(0x00c4, PIN_OUTPUT, 7) /* (W8) GPIO0_48 */
|
|
AM64X_IOPAD(0x00c8, PIN_OUTPUT, 7) /* (W8) GPIO0_49 */
|
|
AM64X_IOPAD(0x00fc, PIN_INPUT, 7) /* (U7) GPIO0_62 */
|
|
|
|
AM64X_IOPAD(0x002c, PIN_OUTPUT, 7) /* (L19) GPIO0_11 */
|
|
AM64X_IOPAD(0x0030, PIN_OUTPUT, 7) /* (L18) GPIO0_12 */
|
|
AM64X_IOPAD(0x0034, PIN_OUTPUT, 7) /* (K17) GPIO0_13 */
|
|
AM64X_IOPAD(0x0038, PIN_OUTPUT, 7) /* (L17) GPIO0_14 */
|
|
|
|
AM64X_IOPAD(0x0014, PIN_OUTPUT, 7) /* (M20) GPIO0_5 */
|
|
AM64X_IOPAD(0x0018, PIN_OUTPUT, 7) /* (M21) GPIO0_6 */
|
|
AM64X_IOPAD(0x001c, PIN_OUTPUT, 7) /* (P21) GPIO0_7 */
|
|
AM64X_IOPAD(0x0020, PIN_OUTPUT, 7) /* (P20) GPIO0_8 */
|
|
AM64X_IOPAD(0x0024, PIN_OUTPUT, 7) /* (N18) GPIO0_9 */
|
|
AM64X_IOPAD(0x0028, PIN_OUTPUT, 7) /* (M17) GPIO0_10 */
|
|
|
|
>;
|
|
};
|
|
|
|
gpio1_pins: gpio1-pins {
|
|
pinctrl-single,pins = <
|
|
AM64X_IOPAD(0x01a8, PIN_OUTPUT, 7) /* (V1) PRG0_PRU0_GPO18.GPIO1_18 */
|
|
AM64X_IOPAD(0x01ac, PIN_OUTPUT, 7) /* (W1) PRG0_PRU0_GPO19.GPIO1_19 */
|
|
>;
|
|
};
|
|
|
|
main_i2c2_pins_default: main-i2c2-pins-default {
|
|
pinctrl-single,pins = <
|
|
AM64X_IOPAD(0x00B0, PIN_INPUT, 1) /* (P19) I2C2_SCL */
|
|
AM64X_IOPAD(0x00B4, PIN_INPUT, 1) /* (R21) I2C2_SDA */
|
|
>;
|
|
};
|
|
|
|
rmii1_pins_default: rmii1-pins-default {
|
|
pinctrl-single,pins = <
|
|
AM64X_IOPAD(0x01cc, PIN_INPUT, 5) /* (W5) PRG0_PRU1_GPO7.RMII1_RD0 */
|
|
AM64X_IOPAD(0x01d4, PIN_INPUT, 5) /* (Y5) PRG0_PRU1_GPO9.RMII1_RD1 */
|
|
AM64X_IOPAD(0x01d8, PIN_OUTPUT, 5) /* (V6) PRG0_PRU1_GPO10.RMII1_TD0 */
|
|
AM64X_IOPAD(0x01f4, PIN_OUTPUT, 5) /* (V5) PRG0_PRU1_GPO17.RMII1_TD1 */
|
|
AM64X_IOPAD(0x01fc, PIN_INPUT, 5) /* (R2) PRG0_PRU1_GPO17.RMII1_CRS_DV*/
|
|
AM64X_IOPAD(0x01f8, PIN_INPUT, 5) /* (P5) PRG0_PRU1_GPO17.RMII1_TX_EN */
|
|
AM64X_IOPAD(0x0188, PIN_INPUT, 5) /* (AA5) PRG0_PRU0_GPO10.RMII1_REF_CLK*/
|
|
AM64X_IOPAD(0x00d4, PIN_OUTPUT, 5) /* (U13) CLKOUT0 */
|
|
>;
|
|
};
|
|
|
|
mdio0_pins_default: mdio0-pins-default {
|
|
pinctrl-single,pins = <
|
|
AM64X_IOPAD(0x015c, PIN_OUTPUT_PULLUP, 4) /* (Y6) PRG1_MDIO0_MDC.MDIO0_MDC */
|
|
AM64X_IOPAD(0x0158, PIN_INPUT, 4) /* (AA6) PRG1_MDIO0_MDIO.MDIO0_MDIO */
|
|
|
|
AM64X_IOPAD(0x01ac, PIN_OUTPUT_PULLUP, 7) /* (W1) GPIO1_19 */
|
|
>;
|
|
};
|
|
|
|
main_usb0_pins_default: main-usb0-pins-default {
|
|
pinctrl-single,pins = <
|
|
AM64X_IOPAD(0x02a8, PIN_OUTPUT, 0) /* (E19) USB0_DRVVBUS */
|
|
>;
|
|
};
|
|
|
|
main_i2c1_pins_default: main-i2c1-pins-default {
|
|
pinctrl-single,pins = <
|
|
AM64X_IOPAD(0x0268, PIN_INPUT_PULLUP, 0) /* (C18) I2C1_SCL */
|
|
AM64X_IOPAD(0x026c, PIN_INPUT_PULLUP, 0) /* (B19) I2C1_SDA */
|
|
>;
|
|
};
|
|
|
|
|
|
main_i2c0_pins_default: main-i2c0-pins-default {
|
|
pinctrl-single,pins = <
|
|
AM64X_IOPAD(0x0260, PIN_INPUT_PULLUP, 0) /* (P19) I2C2_SCL */
|
|
AM64X_IOPAD(0x0264, PIN_INPUT_PULLUP, 0) /* (R21) I2C2_SDA */
|
|
>;
|
|
};
|
|
};
|
|
|
|
&usbss0 {
|
|
ti,vbus-divider;
|
|
ti,usb2-only;
|
|
};
|
|
|
|
&usb0 {
|
|
dr_mode = "otg";
|
|
maximum-speed = "high-speed";
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&main_usb0_pins_default>;
|
|
};
|
|
|
|
&main_i2c0 {
|
|
status = "okay";
|
|
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&main_i2c0_pins_default>;
|
|
clock-frequency = <100000>;
|
|
|
|
da9063: pmic@58 {
|
|
compatible = "dlg,da9063";
|
|
reg = <0x58>;
|
|
|
|
regulators {
|
|
vddcore_reg: bcore1 {
|
|
regulator-min-microvolt = <850000>;
|
|
regulator-max-microvolt = <850000>;
|
|
regulator-ramp-delay = <2>;
|
|
regulator-name = "DA9063_CORE";
|
|
regulator-always-on;
|
|
};
|
|
|
|
vddar_reg: bcore2 {
|
|
regulator-min-microvolt = <850000>;
|
|
regulator-max-microvolt = <850000>;
|
|
regulator-ramp-delay = <2>;
|
|
regulator-name = "DA9063_AR";
|
|
regulator-always-on;
|
|
};
|
|
|
|
vdd_1v8_reg: bperi {
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
regulator-ramp-delay = <2>;
|
|
regulator-always-on;
|
|
};
|
|
|
|
vdd_3v3_1_reg: bio {
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-always-on;
|
|
};
|
|
|
|
vdd_3v3_2_reg: bmem {
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-always-on;
|
|
};
|
|
|
|
vdd_1v1_reg: bpro {
|
|
regulator-min-microvolt = <1100000>;
|
|
regulator-max-microvolt = <1100000>;
|
|
regulator-always-on;
|
|
};
|
|
|
|
vdd_gnss_reg: ldo3 {
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-always-on;
|
|
};
|
|
|
|
vdd_sensors_reg: ldo5 {
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-always-on;
|
|
};
|
|
|
|
vdd_stby_reg: ldo6 {
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
};
|
|
|
|
vdd_vdda: ldo10 {
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
};
|
|
|
|
vdd_5v_can_reg: ldo11 {
|
|
/* It is actually 5V but the driver does not support it */
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
/* SYS_I2C */
|
|
&main_i2c1 {
|
|
status = "okay";
|
|
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&main_i2c1_pins_default>;
|
|
clock-frequency = <400000>;
|
|
|
|
/* There is no driver available */
|
|
onewire: ds2484@18 {
|
|
status = "disabled";
|
|
reg = <0x18>;
|
|
};
|
|
|
|
eeprom: eeprom@50 {
|
|
reg = <0x50>;
|
|
compatible = "onsemi,24c64";
|
|
};
|
|
|
|
temp: temp@48 {
|
|
reg = <0x48>;
|
|
compatible = "national,lm75";
|
|
/* vs-supply = <&vs>; */ /* Not available, maybe required then use fixed-regulator */
|
|
};
|
|
};
|
|
|
|
/* USER_I2C */
|
|
&main_i2c2 {
|
|
status = "okay";
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&main_i2c2_pins_default>;
|
|
clock-frequency = <400000>;
|
|
|
|
exp1: gpio@71 {
|
|
status = "okay";
|
|
compatible = "nxp,pca9538";
|
|
reg = <0x71>;
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
gpio-line-names = "GPI_CTRL_PU_EN0", "GPI_CTRL_PU_EN1",
|
|
"GPI_CTRL_PU_EN2", "GPI_CTRL_PU_EN3",
|
|
"GPI_CTRL_PU_EN4", "GPI_CTRL_PU_EN5",
|
|
"", "";
|
|
};
|
|
|
|
exp2: gpio@72 {
|
|
status = "okay";
|
|
compatible = "nxp,pca9538";
|
|
reg = <0x73>;
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
gpio-line-names = "GPIO0", "GPIO1",
|
|
"GPIO2", "GPIO3",
|
|
"GPO0", "GPO1",
|
|
"GPO2", "GPO3";
|
|
};
|
|
};
|
|
|
|
&sdhci0 {
|
|
/* emmc */
|
|
bus-width = <8>;
|
|
non-removable;
|
|
ti,driver-strength-ohm = <50>;
|
|
disable-wp;
|
|
/delete-property/ ti,otap-del-sel-hs200;
|
|
/delete-property/ ti,otap-del-sel-hs400;
|
|
};
|
|
|
|
&sdhci1 {
|
|
status = "disabled";
|
|
pinctrl-names = "default";
|
|
bus-width = <4>;
|
|
pinctrl-0 = <&main_mmc1_pins_default>;
|
|
ti,driver-strength-ohm = <50>;
|
|
disable-wp;
|
|
broken-cd;
|
|
/delete-property/ ti,otap-del-sel-hs200;
|
|
/delete-property/ ti,otap-del-sel-hs400;
|
|
};
|
|
|
|
&cpsw3g {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&mdio0_pins_default
|
|
&rmii1_pins_default>;
|
|
};
|
|
|
|
&cpsw_port1 {
|
|
phy-mode = "rmii";
|
|
phy-handle = <&cpsw3g_phy0>;
|
|
};
|
|
|
|
&cpsw3g_mdio {
|
|
bus_freq = <100000>;
|
|
cpsw3g_phy0: ethernet-phy@b1 {
|
|
reg = <0x01>;
|
|
ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
|
|
ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
|
|
};
|
|
};
|
|
|
|
&main_gpio0 {
|
|
status = "okay";
|
|
ti,ngpio = <87>;
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&gpio0_pins>;
|
|
|
|
wlan_en {
|
|
gpio-hog;
|
|
gpios = <5 GPIO_ACTIVE_HIGH>;
|
|
output-high;
|
|
line-name = "WLAN_EN";
|
|
};
|
|
|
|
canfd0_en {
|
|
gpio-hog;
|
|
gpios = <74 GPIO_ACTIVE_HIGH>;
|
|
output-high;
|
|
line-name = "CANFD0_CTRL_EN";
|
|
};
|
|
|
|
canfd1_en {
|
|
gpio-hog;
|
|
gpios = <72 GPIO_ACTIVE_HIGH>;
|
|
output-high;
|
|
line-name = "CANFD1_CTRL_EN";
|
|
};
|
|
|
|
canfd0_stb {
|
|
gpio-hog;
|
|
gpios = <55 GPIO_ACTIVE_HIGH>;
|
|
output-low;
|
|
/* In V1 this is high active even though it is STB~ */
|
|
line-name = "CANFD0_CTRL_STB";
|
|
};
|
|
|
|
canfd1_stb {
|
|
gpio-hog;
|
|
gpios = <54 GPIO_ACTIVE_HIGH>;
|
|
output-low;
|
|
/* In V1 this is high active even though it is STB~ */
|
|
line-name = "CANFD1_CTRL_STB";
|
|
};
|
|
|
|
xpdr_rst {
|
|
gpio-hog;
|
|
gpios = <34 GPIO_ACTIVE_LOW>;
|
|
output-low;
|
|
line-name = "XPDR_RST";
|
|
};
|
|
|
|
hub_rst {
|
|
gpio-hog;
|
|
gpios = <19 GPIO_ACTIVE_HIGH>;
|
|
output-high;
|
|
line-name = "HUB_RST";
|
|
};
|
|
|
|
gnss_rst {
|
|
gpio-hog;
|
|
gpios = <39 GPIO_ACTIVE_HIGH>;
|
|
output-low;
|
|
line-name = "GNSS_RST";
|
|
};
|
|
};
|
|
|
|
&main_gpio1 {
|
|
status = "okay";
|
|
ti,ngpio = <88>;
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&gpio1_pins>;
|
|
|
|
brdr_rst {
|
|
gpio-hog;
|
|
gpios = <18 GPIO_ACTIVE_HIGH>;
|
|
output-high;
|
|
line-name = "BRDR_RST";
|
|
};
|
|
|
|
eth_rst {
|
|
gpio-hog;
|
|
gpios = <19 GPIO_ACTIVE_HIGH>;
|
|
output-high;
|
|
line-name = "ETH_RST";
|
|
};
|
|
};
|
|
|
|
#include "k3-am642-gemini-u-boot.dtsi"
|