diff mbox series

[2/2] arm64: dts: ti: Add support for AM642 SK

Message ID 20210121143924.26213-3-lokeshvutla@ti.com (mailing list archive)
State New, archived
Headers show
Series arm64: Initial support for Texas Instruments AM642 SK | expand

Commit Message

Lokesh Vutla Jan. 21, 2021, 2:39 p.m. UTC
AM642 StarterKit (SK) board is a low cost, small form factor board
designed for TI’s AM642 SoC. It supports the following interfaces:
* 2 GB LPDDR4 RAM
* x2 Gigabit Ethernet interfaces capable of working in switch and MAC mode
* x1 USB 3.0 Type-A port
* x1 UHS-1 capable µSD card slot
* 2.4/5 GHz WLAN + Bluetooth 4.2 through WL1837
* 512 Mbit OSPI flash
* x2 UART through UART-USB bridge
* XDS110 for onboard JTAG debug using USB
* Temperature sensors, user push buttons and LEDs
* 40-pin Raspberry Pi compatible GPIO header
* 24-pin header for peripherals in MCU island (I2C, UART, SPI, IO)
* 54-pin header for Programmable Realtime Unit (PRU) IO pins
* Interface for remote automation (power and reset, boot mode change)

Add basic support for AM642 SK.

Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
---
 arch/arm64/boot/dts/ti/Makefile        |   3 +-
 arch/arm64/boot/dts/ti/k3-am642-sk.dts | 145 +++++++++++++++++++++++++
 2 files changed, 147 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm64/boot/dts/ti/k3-am642-sk.dts

Comments

Nishanth Menon Jan. 21, 2021, 3:36 p.m. UTC | #1
On 20:09-20210121, Lokesh Vutla wrote:
> AM642 StarterKit (SK) board is a low cost, small form factor board
> designed for TI’s AM642 SoC. It supports the following interfaces:
> * 2 GB LPDDR4 RAM
> * x2 Gigabit Ethernet interfaces capable of working in switch and MAC mode
> * x1 USB 3.0 Type-A port
> * x1 UHS-1 capable µSD card slot
> * 2.4/5 GHz WLAN + Bluetooth 4.2 through WL1837
> * 512 Mbit OSPI flash
> * x2 UART through UART-USB bridge
> * XDS110 for onboard JTAG debug using USB
> * Temperature sensors, user push buttons and LEDs
> * 40-pin Raspberry Pi compatible GPIO header
> * 24-pin header for peripherals in MCU island (I2C, UART, SPI, IO)
> * 54-pin header for Programmable Realtime Unit (PRU) IO pins
> * Interface for remote automation (power and reset, boot mode change)

might be nice to state "power measurement and reset control"

> 
> Add basic support for AM642 SK.
> 
> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
> Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
> Signed-off-by: Sekhar Nori <nsekhar@ti.com>
> ---
>  arch/arm64/boot/dts/ti/Makefile        |   3 +-
>  arch/arm64/boot/dts/ti/k3-am642-sk.dts | 145 +++++++++++++++++++++++++
>  2 files changed, 147 insertions(+), 1 deletion(-)
>  create mode 100644 arch/arm64/boot/dts/ti/k3-am642-sk.dts
> 
> diff --git a/arch/arm64/boot/dts/ti/Makefile b/arch/arm64/boot/dts/ti/Makefile
> index c687739e2bca..6aa642eb56d4 100644
> --- a/arch/arm64/boot/dts/ti/Makefile
> +++ b/arch/arm64/boot/dts/ti/Makefile
> @@ -12,4 +12,5 @@ dtb-$(CONFIG_ARCH_K3) += k3-j721e-common-proc-board.dtb
>  
>  dtb-$(CONFIG_ARCH_K3) += k3-j7200-common-proc-board.dtb
>  
> -dtb-$(CONFIG_ARCH_K3) += k3-am642-evm.dtb
> +dtb-$(CONFIG_ARCH_K3) += k3-am642-evm.dtb \
> +			 k3-am642-sk.dtb

no please. Just:
+dtb-$(CONFIG_ARCH_K3) += k3-am642-sk.dtb

See arch/arm64/boot/dts/nvidia/Makefile for example.

> diff --git a/arch/arm64/boot/dts/ti/k3-am642-sk.dts b/arch/arm64/boot/dts/ti/k3-am642-sk.dts
> new file mode 100644
> index 000000000000..5b473aaa225d
> --- /dev/null
> +++ b/arch/arm64/boot/dts/ti/k3-am642-sk.dts
> @@ -0,0 +1,145 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * Copyright (C) 2021 Texas Instruments Incorporated - https://www.ti.com/
> + */
> +
> +/dts-v1/;
> +
> +#include <dt-bindings/gpio/gpio.h>
> +#include "k3-am642.dtsi"
> +
> +/ {
> +	compatible =  "ti,am642-evm", "ti,am642";
> +	model = "Texas Instruments AM642 SK";
> +
> +	chosen {
> +		stdout-path = "serial2:115200n8";
> +		bootargs = "console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000";
> +	};
> +
> +	memory@80000000 {
> +		device_type = "memory";
> +		/* 2G RAM */
> +		reg = <0x00000000 0x80000000 0x00000000 0x80000000>;
> +
> +	};
> +
> +	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;
> +		};
> +	};
> +
> +	vusb_main: fixed-regulator-vusb-main5v0 {
> +		/* USB MAIN INPUT 5V DC */
> +		compatible = "regulator-fixed";
> +		regulator-name = "vusb_main5v0";
> +		regulator-min-microvolt = <5000000>;
> +		regulator-max-microvolt = <5000000>;
> +		regulator-always-on;
> +		regulator-boot-on;
> +	};
> +
> +	vcc_3v3_sys: fixedregulator-vcc-3v3-sys {
> +		/* output of LP8733xx */
> +		compatible = "regulator-fixed";
> +		regulator-name = "vcc_3v3_sys";
> +		regulator-min-microvolt = <3300000>;
> +		regulator-max-microvolt = <3300000>;
> +		vin-supply = <&vusb_main>;
> +		regulator-always-on;
> +		regulator-boot-on;
> +	};
> +
> +	vdd_mmc1: fixed-regulator-sd {
> +		/* TPS2051BD */
> +		compatible = "regulator-fixed";
> +		regulator-name = "vdd_mmc1";
> +		regulator-min-microvolt = <3300000>;
> +		regulator-max-microvolt = <3300000>;
> +		regulator-boot-on;
> +		enable-active-high;
> +		vin-supply = <&vcc_3v3_sys>;
> +		gpio = <&exp1 3 GPIO_ACTIVE_HIGH>;
> +	};
> +};
> +
> +&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, 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_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_uart1 {
> +	/* main_uart1 is reserved for firmware usage */
> +	status = "reserved";
> +};
> +
> +&main_uart2 {
> +	status = "disabled";
> +};
> +
> +&main_uart3 {
> +	status = "disabled";
> +};
> +
> +&main_uart4 {
> +	status = "disabled";
> +};
> +
> +&main_uart5 {
> +	status = "disabled";
> +};
> +
> +&main_uart6 {
> +	status = "disabled";
> +};

I think disabling &mcu_uart0 and &mcu_uart1 might also be a good idea?
> +
> +&main_i2c1 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&main_i2c1_pins_default>;
> +	clock-frequency = <400000>;
> +
> +	exp1: gpio@70 {
> +		compatible = "nxp,pca9538";
> +		reg = <0x70>;
> +		gpio-controller;
> +		#gpio-cells = <2>;
> +		gpio-line-names = "GPIO_CPSW2_RST", "GPIO_CPSW1_RST",
> +				  "PRU_DETECT", "MMC1_SD_EN",
> +				  "VPP_LDO_EN", "RPI_PS_3V3_En",
> +				  "RPI_PS_5V0_En", "RPI_HAT_DETECT";
> +	};
> +};

Disable main_i2c0, spi nodes, sdhci0 or are those nodes being used for
something else that will be fixedup in a follow on series?

> +
> +&sdhci1 {
> +	/* SD/MMC */
> +	vmmc-supply = <&vdd_mmc1>;
> +	pinctrl-names = "default";
> +	bus-width = <4>;
> +	pinctrl-0 = <&main_mmc1_pins_default>;
> +	ti,driver-strength-ohm = <50>;
> +	disable-wp;
> +};
> -- 
> 2.30.0
>
Suman Anna Jan. 26, 2021, 4:50 p.m. UTC | #2
Hi Lokesh,

On 1/21/21 9:36 AM, Nishanth Menon wrote:
> On 20:09-20210121, Lokesh Vutla wrote:
>> AM642 StarterKit (SK) board is a low cost, small form factor board
>> designed for TI’s AM642 SoC. It supports the following interfaces:
>> * 2 GB LPDDR4 RAM
>> * x2 Gigabit Ethernet interfaces capable of working in switch and MAC mode
>> * x1 USB 3.0 Type-A port
>> * x1 UHS-1 capable µSD card slot
>> * 2.4/5 GHz WLAN + Bluetooth 4.2 through WL1837
>> * 512 Mbit OSPI flash
>> * x2 UART through UART-USB bridge
>> * XDS110 for onboard JTAG debug using USB
>> * Temperature sensors, user push buttons and LEDs
>> * 40-pin Raspberry Pi compatible GPIO header
>> * 24-pin header for peripherals in MCU island (I2C, UART, SPI, IO)
>> * 54-pin header for Programmable Realtime Unit (PRU) IO pins
>> * Interface for remote automation (power and reset, boot mode change)
> 
> might be nice to state "power measurement and reset control"
> 
>>
>> Add basic support for AM642 SK.
>>
>> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
>> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
>> Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
>> Signed-off-by: Sekhar Nori <nsekhar@ti.com>
>> ---
>>  arch/arm64/boot/dts/ti/Makefile        |   3 +-
>>  arch/arm64/boot/dts/ti/k3-am642-sk.dts | 145 +++++++++++++++++++++++++
>>  2 files changed, 147 insertions(+), 1 deletion(-)
>>  create mode 100644 arch/arm64/boot/dts/ti/k3-am642-sk.dts
>>
>> diff --git a/arch/arm64/boot/dts/ti/Makefile b/arch/arm64/boot/dts/ti/Makefile
>> index c687739e2bca..6aa642eb56d4 100644
>> --- a/arch/arm64/boot/dts/ti/Makefile
>> +++ b/arch/arm64/boot/dts/ti/Makefile
>> @@ -12,4 +12,5 @@ dtb-$(CONFIG_ARCH_K3) += k3-j721e-common-proc-board.dtb
>>  
>>  dtb-$(CONFIG_ARCH_K3) += k3-j7200-common-proc-board.dtb
>>  
>> -dtb-$(CONFIG_ARCH_K3) += k3-am642-evm.dtb
>> +dtb-$(CONFIG_ARCH_K3) += k3-am642-evm.dtb \
>> +			 k3-am642-sk.dtb
> 
> no please. Just:
> +dtb-$(CONFIG_ARCH_K3) += k3-am642-sk.dtb
> 
> See arch/arm64/boot/dts/nvidia/Makefile for example.
> 
>> diff --git a/arch/arm64/boot/dts/ti/k3-am642-sk.dts b/arch/arm64/boot/dts/ti/k3-am642-sk.dts
>> new file mode 100644
>> index 000000000000..5b473aaa225d
>> --- /dev/null
>> +++ b/arch/arm64/boot/dts/ti/k3-am642-sk.dts
>> @@ -0,0 +1,145 @@
>> +// SPDX-License-Identifier: GPL-2.0
>> +/*
>> + * Copyright (C) 2021 Texas Instruments Incorporated - https://www.ti.com/
>> + */
>> +
>> +/dts-v1/;
>> +
>> +#include <dt-bindings/gpio/gpio.h>
>> +#include "k3-am642.dtsi"
>> +
>> +/ {
>> +	compatible =  "ti,am642-evm", "ti,am642";

Looks like a copy-paste error. As per patch 1, you should be using ti,am642-sk
and not ti,am642-evm.

>> +	model = "Texas Instruments AM642 SK";
>> +
>> +	chosen {
>> +		stdout-path = "serial2:115200n8";
>> +		bootargs = "console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000";
>> +	};
>> +
>> +	memory@80000000 {
>> +		device_type = "memory";
>> +		/* 2G RAM */
>> +		reg = <0x00000000 0x80000000 0x00000000 0x80000000>;
>> +
>> +	};
>> +
>> +	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;
>> +		};
>> +	};
>> +
>> +	vusb_main: fixed-regulator-vusb-main5v0 {
>> +		/* USB MAIN INPUT 5V DC */
>> +		compatible = "regulator-fixed";
>> +		regulator-name = "vusb_main5v0";
>> +		regulator-min-microvolt = <5000000>;
>> +		regulator-max-microvolt = <5000000>;
>> +		regulator-always-on;
>> +		regulator-boot-on;
>> +	};
>> +
>> +	vcc_3v3_sys: fixedregulator-vcc-3v3-sys {
>> +		/* output of LP8733xx */
>> +		compatible = "regulator-fixed";
>> +		regulator-name = "vcc_3v3_sys";
>> +		regulator-min-microvolt = <3300000>;
>> +		regulator-max-microvolt = <3300000>;
>> +		vin-supply = <&vusb_main>;
>> +		regulator-always-on;
>> +		regulator-boot-on;
>> +	};
>> +
>> +	vdd_mmc1: fixed-regulator-sd {
>> +		/* TPS2051BD */
>> +		compatible = "regulator-fixed";
>> +		regulator-name = "vdd_mmc1";
>> +		regulator-min-microvolt = <3300000>;
>> +		regulator-max-microvolt = <3300000>;
>> +		regulator-boot-on;
>> +		enable-active-high;
>> +		vin-supply = <&vcc_3v3_sys>;
>> +		gpio = <&exp1 3 GPIO_ACTIVE_HIGH>;
>> +	};
>> +};
>> +
>> +&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, 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_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_uart1 {
>> +	/* main_uart1 is reserved for firmware usage */
>> +	status = "reserved";
>> +};
>> +
>> +&main_uart2 {
>> +	status = "disabled";
>> +};
>> +
>> +&main_uart3 {
>> +	status = "disabled";
>> +};
>> +
>> +&main_uart4 {
>> +	status = "disabled";
>> +};
>> +
>> +&main_uart5 {
>> +	status = "disabled";
>> +};
>> +
>> +&main_uart6 {
>> +	status = "disabled";
>> +};
> 
> I think disabling &mcu_uart0 and &mcu_uart1 might also be a good idea?
>> +
>> +&main_i2c1 {
>> +	pinctrl-names = "default";
>> +	pinctrl-0 = <&main_i2c1_pins_default>;
>> +	clock-frequency = <400000>;
>> +
>> +	exp1: gpio@70 {
>> +		compatible = "nxp,pca9538";
>> +		reg = <0x70>;
>> +		gpio-controller;
>> +		#gpio-cells = <2>;
>> +		gpio-line-names = "GPIO_CPSW2_RST", "GPIO_CPSW1_RST",
>> +				  "PRU_DETECT", "MMC1_SD_EN",
>> +				  "VPP_LDO_EN", "RPI_PS_3V3_En",
>> +				  "RPI_PS_5V0_En", "RPI_HAT_DETECT";
>> +	};
>> +};
> 
> Disable main_i2c0, spi nodes, sdhci0 or are those nodes being used for
> something else that will be fixedup in a follow on series?

+1

regards
Suman

> 
>> +
>> +&sdhci1 {
>> +	/* SD/MMC */
>> +	vmmc-supply = <&vdd_mmc1>;
>> +	pinctrl-names = "default";
>> +	bus-width = <4>;
>> +	pinctrl-0 = <&main_mmc1_pins_default>;
>> +	ti,driver-strength-ohm = <50>;
>> +	disable-wp;
>> +};
>> -- 
>> 2.30.0
>>
>
Lokesh Vutla Feb. 2, 2021, 7:12 a.m. UTC | #3
On 26/01/21 10:20 pm, Suman Anna wrote:
> Hi Lokesh,
> 
> On 1/21/21 9:36 AM, Nishanth Menon wrote:
>> On 20:09-20210121, Lokesh Vutla wrote:
>>> AM642 StarterKit (SK) board is a low cost, small form factor board
>>> designed for TI’s AM642 SoC. It supports the following interfaces:
>>> * 2 GB LPDDR4 RAM
>>> * x2 Gigabit Ethernet interfaces capable of working in switch and MAC mode
>>> * x1 USB 3.0 Type-A port
>>> * x1 UHS-1 capable µSD card slot
>>> * 2.4/5 GHz WLAN + Bluetooth 4.2 through WL1837
>>> * 512 Mbit OSPI flash
>>> * x2 UART through UART-USB bridge
>>> * XDS110 for onboard JTAG debug using USB
>>> * Temperature sensors, user push buttons and LEDs
>>> * 40-pin Raspberry Pi compatible GPIO header
>>> * 24-pin header for peripherals in MCU island (I2C, UART, SPI, IO)
>>> * 54-pin header for Programmable Realtime Unit (PRU) IO pins
>>> * Interface for remote automation (power and reset, boot mode change)
>>
>> might be nice to state "power measurement and reset control"

Sure will fix in v2.

>>
>>>
>>> Add basic support for AM642 SK.
>>>
>>> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
>>> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
>>> Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
>>> Signed-off-by: Sekhar Nori <nsekhar@ti.com>
>>> ---
>>>  arch/arm64/boot/dts/ti/Makefile        |   3 +-
>>>  arch/arm64/boot/dts/ti/k3-am642-sk.dts | 145 +++++++++++++++++++++++++
>>>  2 files changed, 147 insertions(+), 1 deletion(-)
>>>  create mode 100644 arch/arm64/boot/dts/ti/k3-am642-sk.dts
>>>
>>> diff --git a/arch/arm64/boot/dts/ti/Makefile b/arch/arm64/boot/dts/ti/Makefile
>>> index c687739e2bca..6aa642eb56d4 100644
>>> --- a/arch/arm64/boot/dts/ti/Makefile
>>> +++ b/arch/arm64/boot/dts/ti/Makefile
>>> @@ -12,4 +12,5 @@ dtb-$(CONFIG_ARCH_K3) += k3-j721e-common-proc-board.dtb
>>>  
>>>  dtb-$(CONFIG_ARCH_K3) += k3-j7200-common-proc-board.dtb
>>>  
>>> -dtb-$(CONFIG_ARCH_K3) += k3-am642-evm.dtb
>>> +dtb-$(CONFIG_ARCH_K3) += k3-am642-evm.dtb \
>>> +			 k3-am642-sk.dtb
>>
>> no please. Just:
>> +dtb-$(CONFIG_ARCH_K3) += k3-am642-sk.dtb

Okay.

>>
>> See arch/arm64/boot/dts/nvidia/Makefile for example.
>>
>>> diff --git a/arch/arm64/boot/dts/ti/k3-am642-sk.dts b/arch/arm64/boot/dts/ti/k3-am642-sk.dts
>>> new file mode 100644
>>> index 000000000000..5b473aaa225d
>>> --- /dev/null
>>> +++ b/arch/arm64/boot/dts/ti/k3-am642-sk.dts
>>> @@ -0,0 +1,145 @@
>>> +// SPDX-License-Identifier: GPL-2.0
>>> +/*
>>> + * Copyright (C) 2021 Texas Instruments Incorporated - https://www.ti.com/
>>> + */
>>> +
>>> +/dts-v1/;
>>> +
>>> +#include <dt-bindings/gpio/gpio.h>
>>> +#include "k3-am642.dtsi"
>>> +
>>> +/ {
>>> +	compatible =  "ti,am642-evm", "ti,am642";
> 
> Looks like a copy-paste error. As per patch 1, you should be using ti,am642-sk
> and not ti,am642-evm.

Oops. Good catch, will fix in v2.

> 
>>> +	model = "Texas Instruments AM642 SK";
>>> +
>>> +	chosen {
>>> +		stdout-path = "serial2:115200n8";
>>> +		bootargs = "console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000";
>>> +	};
>>> +
>>> +	memory@80000000 {
>>> +		device_type = "memory";
>>> +		/* 2G RAM */
>>> +		reg = <0x00000000 0x80000000 0x00000000 0x80000000>;
>>> +
>>> +	};
>>> +
>>> +	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;
>>> +		};
>>> +	};
>>> +
>>> +	vusb_main: fixed-regulator-vusb-main5v0 {
>>> +		/* USB MAIN INPUT 5V DC */
>>> +		compatible = "regulator-fixed";
>>> +		regulator-name = "vusb_main5v0";
>>> +		regulator-min-microvolt = <5000000>;
>>> +		regulator-max-microvolt = <5000000>;
>>> +		regulator-always-on;
>>> +		regulator-boot-on;
>>> +	};
>>> +
>>> +	vcc_3v3_sys: fixedregulator-vcc-3v3-sys {
>>> +		/* output of LP8733xx */
>>> +		compatible = "regulator-fixed";
>>> +		regulator-name = "vcc_3v3_sys";
>>> +		regulator-min-microvolt = <3300000>;
>>> +		regulator-max-microvolt = <3300000>;
>>> +		vin-supply = <&vusb_main>;
>>> +		regulator-always-on;
>>> +		regulator-boot-on;
>>> +	};
>>> +
>>> +	vdd_mmc1: fixed-regulator-sd {
>>> +		/* TPS2051BD */
>>> +		compatible = "regulator-fixed";
>>> +		regulator-name = "vdd_mmc1";
>>> +		regulator-min-microvolt = <3300000>;
>>> +		regulator-max-microvolt = <3300000>;
>>> +		regulator-boot-on;
>>> +		enable-active-high;
>>> +		vin-supply = <&vcc_3v3_sys>;
>>> +		gpio = <&exp1 3 GPIO_ACTIVE_HIGH>;
>>> +	};
>>> +};
>>> +
>>> +&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, 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_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_uart1 {
>>> +	/* main_uart1 is reserved for firmware usage */
>>> +	status = "reserved";
>>> +};
>>> +
>>> +&main_uart2 {
>>> +	status = "disabled";
>>> +};
>>> +
>>> +&main_uart3 {
>>> +	status = "disabled";
>>> +};
>>> +
>>> +&main_uart4 {
>>> +	status = "disabled";
>>> +};
>>> +
>>> +&main_uart5 {
>>> +	status = "disabled";
>>> +};
>>> +
>>> +&main_uart6 {
>>> +	status = "disabled";
>>> +};
>>
>> I think disabling &mcu_uart0 and &mcu_uart1 might also be a good idea?

Agreed. Will fix in v2.

>>> +
>>> +&main_i2c1 {
>>> +	pinctrl-names = "default";
>>> +	pinctrl-0 = <&main_i2c1_pins_default>;
>>> +	clock-frequency = <400000>;
>>> +
>>> +	exp1: gpio@70 {
>>> +		compatible = "nxp,pca9538";
>>> +		reg = <0x70>;
>>> +		gpio-controller;
>>> +		#gpio-cells = <2>;
>>> +		gpio-line-names = "GPIO_CPSW2_RST", "GPIO_CPSW1_RST",
>>> +				  "PRU_DETECT", "MMC1_SD_EN",
>>> +				  "VPP_LDO_EN", "RPI_PS_3V3_En",
>>> +				  "RPI_PS_5V0_En", "RPI_HAT_DETECT";
>>> +	};
>>> +};
>>
>> Disable main_i2c0, spi nodes, sdhci0 or are those nodes being used for
>> something else that will be fixedup in a follow on series?

main_i2c0 has eeprom, shdci0 is used for wlan. Will mark other nodes as disabled.

Thanks and regards,
Lokesh

> 
> +1
> 
> regards
> Suman
> 
>>
>>> +
>>> +&sdhci1 {
>>> +	/* SD/MMC */
>>> +	vmmc-supply = <&vdd_mmc1>;
>>> +	pinctrl-names = "default";
>>> +	bus-width = <4>;
>>> +	pinctrl-0 = <&main_mmc1_pins_default>;
>>> +	ti,driver-strength-ohm = <50>;
>>> +	disable-wp;
>>> +};
>>> -- 
>>> 2.30.0
>>>
>>
>
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/ti/Makefile b/arch/arm64/boot/dts/ti/Makefile
index c687739e2bca..6aa642eb56d4 100644
--- a/arch/arm64/boot/dts/ti/Makefile
+++ b/arch/arm64/boot/dts/ti/Makefile
@@ -12,4 +12,5 @@  dtb-$(CONFIG_ARCH_K3) += k3-j721e-common-proc-board.dtb
 
 dtb-$(CONFIG_ARCH_K3) += k3-j7200-common-proc-board.dtb
 
-dtb-$(CONFIG_ARCH_K3) += k3-am642-evm.dtb
+dtb-$(CONFIG_ARCH_K3) += k3-am642-evm.dtb \
+			 k3-am642-sk.dtb
diff --git a/arch/arm64/boot/dts/ti/k3-am642-sk.dts b/arch/arm64/boot/dts/ti/k3-am642-sk.dts
new file mode 100644
index 000000000000..5b473aaa225d
--- /dev/null
+++ b/arch/arm64/boot/dts/ti/k3-am642-sk.dts
@@ -0,0 +1,145 @@ 
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2021 Texas Instruments Incorporated - https://www.ti.com/
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include "k3-am642.dtsi"
+
+/ {
+	compatible =  "ti,am642-evm", "ti,am642";
+	model = "Texas Instruments AM642 SK";
+
+	chosen {
+		stdout-path = "serial2:115200n8";
+		bootargs = "console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000";
+	};
+
+	memory@80000000 {
+		device_type = "memory";
+		/* 2G RAM */
+		reg = <0x00000000 0x80000000 0x00000000 0x80000000>;
+
+	};
+
+	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;
+		};
+	};
+
+	vusb_main: fixed-regulator-vusb-main5v0 {
+		/* USB MAIN INPUT 5V DC */
+		compatible = "regulator-fixed";
+		regulator-name = "vusb_main5v0";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		regulator-always-on;
+		regulator-boot-on;
+	};
+
+	vcc_3v3_sys: fixedregulator-vcc-3v3-sys {
+		/* output of LP8733xx */
+		compatible = "regulator-fixed";
+		regulator-name = "vcc_3v3_sys";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		vin-supply = <&vusb_main>;
+		regulator-always-on;
+		regulator-boot-on;
+	};
+
+	vdd_mmc1: fixed-regulator-sd {
+		/* TPS2051BD */
+		compatible = "regulator-fixed";
+		regulator-name = "vdd_mmc1";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		regulator-boot-on;
+		enable-active-high;
+		vin-supply = <&vcc_3v3_sys>;
+		gpio = <&exp1 3 GPIO_ACTIVE_HIGH>;
+	};
+};
+
+&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, 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_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_uart1 {
+	/* main_uart1 is reserved for firmware usage */
+	status = "reserved";
+};
+
+&main_uart2 {
+	status = "disabled";
+};
+
+&main_uart3 {
+	status = "disabled";
+};
+
+&main_uart4 {
+	status = "disabled";
+};
+
+&main_uart5 {
+	status = "disabled";
+};
+
+&main_uart6 {
+	status = "disabled";
+};
+
+&main_i2c1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&main_i2c1_pins_default>;
+	clock-frequency = <400000>;
+
+	exp1: gpio@70 {
+		compatible = "nxp,pca9538";
+		reg = <0x70>;
+		gpio-controller;
+		#gpio-cells = <2>;
+		gpio-line-names = "GPIO_CPSW2_RST", "GPIO_CPSW1_RST",
+				  "PRU_DETECT", "MMC1_SD_EN",
+				  "VPP_LDO_EN", "RPI_PS_3V3_En",
+				  "RPI_PS_5V0_En", "RPI_HAT_DETECT";
+	};
+};
+
+&sdhci1 {
+	/* SD/MMC */
+	vmmc-supply = <&vdd_mmc1>;
+	pinctrl-names = "default";
+	bus-width = <4>;
+	pinctrl-0 = <&main_mmc1_pins_default>;
+	ti,driver-strength-ohm = <50>;
+	disable-wp;
+};