* [PATCH V2 0/3] arm64: dts/defconfig/binding: Add support for BeaglePlay
@ 2023-03-16 15:21 Nishanth Menon
2023-03-16 15:21 ` [PATCH V2 1/3] dt-bindings: arm: ti: Add BeaglePlay Nishanth Menon
` (4 more replies)
0 siblings, 5 replies; 8+ messages in thread
From: Nishanth Menon @ 2023-03-16 15:21 UTC (permalink / raw)
To: Krzysztof Kozlowski, Rob Herring, Arnd Bergmann
Cc: linux-kernel, devicetree, linux-arm-kernel, Tero Kristo,
Vignesh Raghavendra, Nishanth Menon, Julien Panis, Bryan Brattlof,
Andrew Davis, Jason Kridner, Robert Nelson
Hi,
BeagleBoard.org BeaglePlay[1][2] is an easy to use, affordable open source
hardware single board computer based on the Texas Instruments AM625
SoC. Add the base support for the same.
Bootlog: https://gist.github.com/nmenon/2e7647970a4d6af05017e545ac0f8218
Changes Since v1: (major ones)
- All patches updated
- signed-off-by order fixups
- Cleanup to drop errant pre-production board vestiges
- defconfig adds SPI to get to mikrobus spi interface.
V1: https://lore.kernel.org/all/20230311111022.23717-1-nm@ti.com/
Nishanth Menon (1):
arm64: defconfig: Enable drivers for BeaglePlay
Robert Nelson (2):
dt-bindings: arm: ti: Add BeaglePlay
arm64: dts: ti: Add k3-am625-beagleplay
.../devicetree/bindings/arm/ti/k3.yaml | 1 +
arch/arm64/boot/dts/ti/Makefile | 1 +
.../arm64/boot/dts/ti/k3-am625-beagleplay.dts | 757 ++++++++++++++++++
arch/arm64/configs/defconfig | 8 +
4 files changed, 767 insertions(+)
create mode 100644 arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts
[1] https://beagleplay.org/
[2] https://git.beagleboard.org/beagleplay/beagleplay
--
2.40.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 8+ messages in thread* [PATCH V2 1/3] dt-bindings: arm: ti: Add BeaglePlay 2023-03-16 15:21 [PATCH V2 0/3] arm64: dts/defconfig/binding: Add support for BeaglePlay Nishanth Menon @ 2023-03-16 15:21 ` Nishanth Menon 2023-03-17 9:05 ` Krzysztof Kozlowski 2023-03-16 15:21 ` [PATCH V2 2/3] arm64: dts: ti: Add k3-am625-beagleplay Nishanth Menon ` (3 subsequent siblings) 4 siblings, 1 reply; 8+ messages in thread From: Nishanth Menon @ 2023-03-16 15:21 UTC (permalink / raw) To: Krzysztof Kozlowski, Rob Herring, Arnd Bergmann Cc: linux-kernel, devicetree, linux-arm-kernel, Tero Kristo, Vignesh Raghavendra, Nishanth Menon, Julien Panis, Bryan Brattlof, Andrew Davis, Jason Kridner, Robert Nelson From: Robert Nelson <robertcnelson@gmail.com> This board is based on ti,am625 https://beagleplay.org/ https://git.beagleboard.org/beagleplay/beagleplay Signed-off-by: Robert Nelson <robertcnelson@gmail.com> Co-developed-by: Nishanth Menon <nm@ti.com> Signed-off-by: Nishanth Menon <nm@ti.com> --- Changes since V1: - $subject fixup to drop redundant binding verbage - Sign-off order fixup. V1: https://lore.kernel.org/all/20230311111022.23717-2-nm@ti.com/ Documentation/devicetree/bindings/arm/ti/k3.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/arm/ti/k3.yaml b/Documentation/devicetree/bindings/arm/ti/k3.yaml index a60a4065caa8..b4703ac88f04 100644 --- a/Documentation/devicetree/bindings/arm/ti/k3.yaml +++ b/Documentation/devicetree/bindings/arm/ti/k3.yaml @@ -28,6 +28,7 @@ properties: - description: K3 AM625 SoC items: - enum: + - beagle,am625-beagleplay - ti,am625-sk - const: ti,am625 -- 2.40.0 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH V2 1/3] dt-bindings: arm: ti: Add BeaglePlay 2023-03-16 15:21 ` [PATCH V2 1/3] dt-bindings: arm: ti: Add BeaglePlay Nishanth Menon @ 2023-03-17 9:05 ` Krzysztof Kozlowski 0 siblings, 0 replies; 8+ messages in thread From: Krzysztof Kozlowski @ 2023-03-17 9:05 UTC (permalink / raw) To: Nishanth Menon, Krzysztof Kozlowski, Rob Herring, Arnd Bergmann Cc: linux-kernel, devicetree, linux-arm-kernel, Tero Kristo, Vignesh Raghavendra, Julien Panis, Bryan Brattlof, Andrew Davis, Jason Kridner, Robert Nelson On 16/03/2023 16:21, Nishanth Menon wrote: > From: Robert Nelson <robertcnelson@gmail.com> > > This board is based on ti,am625 > > https://beagleplay.org/ > https://git.beagleboard.org/beagleplay/beagleplay > > Signed-off-by: Robert Nelson <robertcnelson@gmail.com> > Co-developed-by: Nishanth Menon <nm@ti.com> > Signed-off-by: Nishanth Menon <nm@ti.com> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Best regards, Krzysztof _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH V2 2/3] arm64: dts: ti: Add k3-am625-beagleplay 2023-03-16 15:21 [PATCH V2 0/3] arm64: dts/defconfig/binding: Add support for BeaglePlay Nishanth Menon 2023-03-16 15:21 ` [PATCH V2 1/3] dt-bindings: arm: ti: Add BeaglePlay Nishanth Menon @ 2023-03-16 15:21 ` Nishanth Menon 2023-03-16 15:43 ` Andrew Davis 2023-03-16 15:21 ` [PATCH V2 3/3] arm64: defconfig: Enable drivers for BeaglePlay Nishanth Menon ` (2 subsequent siblings) 4 siblings, 1 reply; 8+ messages in thread From: Nishanth Menon @ 2023-03-16 15:21 UTC (permalink / raw) To: Krzysztof Kozlowski, Rob Herring, Arnd Bergmann Cc: linux-kernel, devicetree, linux-arm-kernel, Tero Kristo, Vignesh Raghavendra, Nishanth Menon, Julien Panis, Bryan Brattlof, Andrew Davis, Jason Kridner, Robert Nelson From: Robert Nelson <robertcnelson@gmail.com> BeagleBoard.org BeaglePlay is an easy to use, affordable open source hardware single board computer based on the Texas Instruments AM625 SoC that allows you to create connected devices that work even at long distances using IEEE 802.15.4g LR-WPAN and IEEE 802.3cg 10Base-T1L. Expansion is provided over open standards based mikroBUS, Grove and QWIIC headers among other interfaces. This board family can be identified by the 24c32 eeprom: [aa 55 33 ee 01 37 00 10 2e 00 42 45 41 47 4c 45 |.U3..7....BEAGLE|] [50 4c 41 59 2d 41 30 2d 00 00 30 32 30 30 37 38 |PLAY-A0-..020078|] https://beagleplay.org/ https://git.beagleboard.org/beagleplay/beagleplay Signed-off-by: Robert Nelson <robertcnelson@gmail.com> Co-developed-by: Nishanth Menon <nm@ti.com> Signed-off-by: Nishanth Menon <nm@ti.com> --- Changes since V1: (major cleanups listed below) - Sign-off order fixup - Cleanup of pre-production board to production board changes (uart, gpio pinmuxes, mikrobus) - spi node is enabled for mikrobus - dropped wakeup_rtc0 alias - should keep the series independent. - ramoops address changed to give space for m4f firmware - leds-2 linux,default-trigger dropped as not compliant with yaml - formatting fixups - dropped no-map from reserved memories, and dropped redundant "OP-TEE" documentation. V1: https://lore.kernel.org/all/20230311111022.23717-3-nm@ti.com/ arch/arm64/boot/dts/ti/Makefile | 1 + .../arm64/boot/dts/ti/k3-am625-beagleplay.dts | 757 ++++++++++++++++++ 2 files changed, 758 insertions(+) create mode 100644 arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts diff --git a/arch/arm64/boot/dts/ti/Makefile b/arch/arm64/boot/dts/ti/Makefile index 6acd12409d59..09b4eafd5716 100644 --- a/arch/arm64/boot/dts/ti/Makefile +++ b/arch/arm64/boot/dts/ti/Makefile @@ -9,6 +9,7 @@ # alphabetically. # Boards with AM62x SoC +dtb-$(CONFIG_ARCH_K3) += k3-am625-beagleplay.dtb dtb-$(CONFIG_ARCH_K3) += k3-am625-sk.dtb # Boards with AM62Ax SoC diff --git a/arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts b/arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts new file mode 100644 index 000000000000..f75e79e54dfc --- /dev/null +++ b/arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts @@ -0,0 +1,757 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * https://beagleplay.org/ + * + * Copyright (C) 2022-2023 Texas Instruments Incorporated - https://www.ti.com/ + * Copyright (C) 2022-2023 Robert Nelson, BeagleBoard.org Foundation + */ + +/dts-v1/; + +#include <dt-bindings/leds/common.h> +#include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/input/input.h> +#include "k3-am625.dtsi" + +/ { + compatible = "beagle,am625-beagleplay", "ti,am625"; + model = "BeagleBoard.org BeaglePlay"; + + aliases { + ethernet0 = &cpsw_port1; + ethernet1 = &cpsw_port2; + gpio0 = &main_gpio0; + gpio1 = &main_gpio1; + gpio2 = &mcu_gpio0; + i2c0 = &main_i2c0; + i2c1 = &main_i2c1; + i2c2 = &main_i2c2; + i2c3 = &main_i2c3; + i2c4 = &wkup_i2c0; + i2c5 = &mcu_i2c0; + mdio-gpio0 = &mdio0; + mmc0 = &sdhci0; + mmc1 = &sdhci1; + mmc2 = &sdhci2; + rtc0 = &rtc; + serial0 = &main_uart5; + serial1 = &main_uart6; + serial2 = &main_uart0; + usb0 = &usb0; + usb1 = &usb1; + }; + + chosen { + stdout-path = "serial2:115200n8"; + }; + + memory@80000000 { + device_type = "memory"; + /* 2G RAM */ + reg = <0x00000000 0x80000000 0x00000000 0x80000000>; + }; + + reserved-memory { + #address-cells = <2>; + #size-cells = <2>; + ranges; + + ramoops: ramoops@9ca00000 { + compatible = "ramoops"; + reg = <0x00 0x9c700000 0x00 0x00100000>; + record-size = <0x8000>; + console-size = <0x8000>; + ftrace-size = <0x00>; + pmsg-size = <0x8000>; + }; + + secure_tfa_ddr: tfa@9e780000 { + reg = <0x00 0x9e780000 0x00 0x80000>; + no-map; + }; + + secure_ddr: optee@9e800000 { + reg = <0x00 0x9e800000 0x00 0x01800000>; + no-map; + }; + + wkup_r5fss0_core0_dma_memory_region: r5f-dma-memory@9db00000 { + compatible = "shared-dma-pool"; + reg = <0x00 0x9db00000 0x00 0xc00000>; + no-map; + }; + }; + + vsys_5v0: regulator-1 { + compatible = "regulator-fixed"; + regulator-name = "vsys_5v0"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + regulator-always-on; + regulator-boot-on; + }; + + vdd_3v3: regulator-2 { + /* output of TLV62595DMQR-U12 */ + compatible = "regulator-fixed"; + regulator-name = "vdd_3v3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + vin-supply = <&vsys_5v0>; + regulator-always-on; + regulator-boot-on; + }; + + wlan_en: regulator-3 { + /* OUTPUT of SN74AVC2T244DQMR */ + compatible = "regulator-fixed"; + regulator-name = "wlan_en"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + enable-active-high; + regulator-always-on; + vin-supply = <&vdd_3v3>; + gpio = <&main_gpio0 38 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&wifi_en_pins_default>; + }; + + vdd_3v3_sd: regulator-4 { + /* output of TPS22918DBVR-U21 */ + pinctrl-names = "default"; + pinctrl-0 = <&vdd_3v3_sd_pins_default>; + + compatible = "regulator-fixed"; + regulator-name = "vdd_3v3_sd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + enable-active-high; + regulator-always-on; + vin-supply = <&vdd_3v3>; + gpio = <&main_gpio1 19 GPIO_ACTIVE_HIGH>; + }; + + vdd_sd_dv: regulator-5 { + compatible = "regulator-gpio"; + regulator-name = "sd_hs200_switch"; + pinctrl-names = "default"; + pinctrl-0 = <&vdd_sd_dv_pins_default>; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + vin-supply = <&vdd_3v3>; + gpios = <&main_gpio1 49 GPIO_ACTIVE_HIGH>; + states = <1800000 0x0>, + <3300000 0x1>; + }; + + leds { + compatible = "gpio-leds"; + + led-0 { + gpios = <&main_gpio0 3 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "heartbeat"; + function = LED_FUNCTION_HEARTBEAT; + default-state = "off"; + }; + + led-1 { + gpios = <&main_gpio0 4 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "disk-activity"; + function = LED_FUNCTION_DISK_ACTIVITY; + default-state = "keep"; + }; + + led-2 { + gpios = <&main_gpio0 5 GPIO_ACTIVE_HIGH>; + function = LED_FUNCTION_CPU; + }; + + led-3 { + gpios = <&main_gpio0 6 GPIO_ACTIVE_HIGH>; + function = LED_FUNCTION_LAN; + }; + + led-4 { + gpios = <&main_gpio0 9 GPIO_ACTIVE_HIGH>; + function = LED_FUNCTION_WLAN; + }; + }; + + gpio_keys: gpio-keys { + compatible = "gpio-keys"; + autorepeat; + pinctrl-names = "default"; + pinctrl-0 = <&usr_button_pins_default>; + + usr: button-usr { + label = "User Key"; + linux,code = <BTN_0>; + gpios = <&main_gpio0 18 GPIO_ACTIVE_LOW>; + }; + + }; + + /* Workaround for errata i2329 - just use mdio bitbang */ + mdio0: mdio { + compatible = "virtual,mdio-gpio"; + pinctrl-names = "default"; + pinctrl-0 = <&mdio0_pins_default>; + gpios = <&main_gpio0 86 GPIO_ACTIVE_HIGH>, /* MDC */ + <&main_gpio0 85 GPIO_ACTIVE_HIGH>; /* MDIO */ + #address-cells = <1>; + #size-cells = <0>; + + cpsw3g_phy0: ethernet-phy@0 { + reg = <0>; + }; + + cpsw3g_phy1: ethernet-phy@1 { + reg = <1>; + reset-gpios = <&main_gpio1 5 GPIO_ACTIVE_LOW>; + reset-assert-us = <25>; + reset-deassert-us = <60000>; /* T2 */ + }; + }; +}; + +&main_pmx0 { + gpio0_pins_default: gpio0-pins-default { + pinctrl-single,pins = < + AM62X_IOPAD(0x0004, PIN_INPUT, 7) /* (G25) OSPI0_LBCLKO.GPIO0_1 */ + AM62X_IOPAD(0x0008, PIN_INPUT, 7) /* (J24) OSPI0_DQS.GPIO0_2 */ + AM62X_IOPAD(0x000c, PIN_INPUT, 7) /* (E25) OSPI0_D0.GPIO0_3 */ + AM62X_IOPAD(0x0010, PIN_INPUT, 7) /* (G24) OSPI0_D1.GPIO0_4 */ + AM62X_IOPAD(0x0014, PIN_INPUT, 7) /* (F25) OSPI0_D2.GPIO0_5 */ + AM62X_IOPAD(0x0018, PIN_INPUT, 7) /* (F24) OSPI0_D3.GPIO0_6 */ + AM62X_IOPAD(0x0024, PIN_INPUT, 7) /* (H25) OSPI0_D6.GPIO0_9 */ + AM62X_IOPAD(0x0028, PIN_INPUT, 7) /* (J22) OSPI0_D7.GPIO0_10 */ + AM62X_IOPAD(0x002c, PIN_INPUT, 7) /* (F23) OSPI0_CSn0.GPIO0_11 */ + AM62X_IOPAD(0x0030, PIN_INPUT, 7) /* (G21) OSPI0_CSn1.GPIO0_12 */ + AM62X_IOPAD(0x0034, PIN_INPUT, 7) /* (H21) OSPI0_CSn2.GPIO0_13 */ + AM62X_IOPAD(0x0038, PIN_INPUT, 7) /* (E24) OSPI0_CSn3.GPIO0_14 */ + AM62X_IOPAD(0x00a4, PIN_INPUT, 7) /* (M22) GPMC0_DIR.GPIO0_40 */ + AM62X_IOPAD(0x00ac, PIN_INPUT, 7) /* (L21) GPMC0_CSn1.GPIO0_42 */ + >; + }; + + vdd_sd_dv_pins_default: vdd-sd-pins-default { + pinctrl-single,pins = < + AM62X_IOPAD(0x0244, PIN_OUTPUT, 7) /* (C17) MMC1_SDWP.GPIO1_49 */ + >; + }; + + usr_button_pins_default: usr-button-pins-default { + pinctrl-single,pins = < + AM62X_IOPAD(0x0048, PIN_INPUT, 7) /* (N25) GPMC0_AD3.GPIO0_18 */ + >; + }; + + grove_pins_default: grove-pins-default { + pinctrl-single,pins = < + AM62X_IOPAD(0x01e8, PIN_INPUT_PULLUP, 0) /* (B17) I2C1_SCL */ + AM62X_IOPAD(0x01ec, PIN_INPUT_PULLUP, 0) /* (A17) I2C1_SDA */ + >; + }; + + local_i2c_pins_default: local-i2c-pins-default { + pinctrl-single,pins = < + AM62X_IOPAD(0x01e0, PIN_INPUT_PULLUP, 0) /* (B16) I2C0_SCL */ + AM62X_IOPAD(0x01e4, PIN_INPUT_PULLUP, 0) /* (A16) I2C0_SDA */ + >; + }; + + i2c2_1v8_pins_default: i2c2-pins-default { + pinctrl-single,pins = < + AM62X_IOPAD(0x00b0, PIN_INPUT_PULLUP, 1) /* (K22) GPMC0_CSn2.I2C2_SCL */ + AM62X_IOPAD(0x00b4, PIN_INPUT_PULLUP, 1) /* (K24) GPMC0_CSn3.I2C2_SDA */ + >; + }; + + mdio0_pins_default: mdio0-pins-default { + pinctrl-single,pins = < + AM62X_IOPAD(0x0160, PIN_OUTPUT, 7) /* (AD24) MDIO0_MDC.GPIO0_86 */ + AM62X_IOPAD(0x015c, PIN_INPUT, 7) /* (AB22) MDIO0_MDIO.GPIO0_85 */ + >; + }; + + rgmii1_pins_default: rgmii1-pins-default { + pinctrl-single,pins = < + AM62X_IOPAD(0x014c, PIN_INPUT, 0) /* (AB17) RGMII1_RD0 */ + AM62X_IOPAD(0x0150, PIN_INPUT, 0) /* (AC17) RGMII1_RD1 */ + AM62X_IOPAD(0x0154, PIN_INPUT, 0) /* (AB16) RGMII1_RD2 */ + AM62X_IOPAD(0x0158, PIN_INPUT, 0) /* (AA15) RGMII1_RD3 */ + AM62X_IOPAD(0x0148, PIN_INPUT, 0) /* (AD17) RGMII1_RXC */ + AM62X_IOPAD(0x0144, PIN_INPUT, 0) /* (AE17) RGMII1_RX_CTL */ + AM62X_IOPAD(0x0134, PIN_OUTPUT, 0) /* (AE20) RGMII1_TD0 */ + AM62X_IOPAD(0x0138, PIN_OUTPUT, 0) /* (AD20) RGMII1_TD1 */ + AM62X_IOPAD(0x013c, PIN_OUTPUT, 0) /* (AE18) RGMII1_TD2 */ + AM62X_IOPAD(0x0140, PIN_OUTPUT, 0) /* (AD18) RGMII1_TD3 */ + AM62X_IOPAD(0x0130, PIN_OUTPUT, 0) /* (AE19) RGMII1_TXC */ + AM62X_IOPAD(0x012c, PIN_OUTPUT, 0) /* (AD19) RGMII1_TX_CTL */ + >; + }; + + emmc_pins_default: emmc-pins-default { + pinctrl-single,pins = < + AM62X_IOPAD(0x0220, PIN_INPUT, 0) /* (Y3) MMC0_CMD */ + AM62X_IOPAD(0x0218, PIN_INPUT, 0) /* (AB1) MMC0_CLK */ + AM62X_IOPAD(0x0214, PIN_INPUT, 0) /* (AA2) MMC0_DAT0 */ + AM62X_IOPAD(0x0210, PIN_INPUT, 0) /* (AA1) MMC0_DAT1 */ + AM62X_IOPAD(0x020c, PIN_INPUT, 0) /* (AA3) MMC0_DAT2 */ + AM62X_IOPAD(0x0208, PIN_INPUT, 0) /* (Y4) MMC0_DAT3 */ + AM62X_IOPAD(0x0204, PIN_INPUT, 0) /* (AB2) MMC0_DAT4 */ + AM62X_IOPAD(0x0200, PIN_INPUT, 0) /* (AC1) MMC0_DAT5 */ + AM62X_IOPAD(0x01fc, PIN_INPUT, 0) /* (AD2) MMC0_DAT6 */ + AM62X_IOPAD(0x01f8, PIN_INPUT, 0) /* (AC2) MMC0_DAT7 */ + >; + }; + + vdd_3v3_sd_pins_default: vdd-3v3-sd-pins-default { + pinctrl-single,pins = < + AM62X_IOPAD(0x01c4, PIN_INPUT, 7) /* (B14) SPI0_D1_GPIO1_19 */ + >; + }; + + sd_pins_default: sd-pins-default { + pinctrl-single,pins = < + AM62X_IOPAD(0x023c, PIN_INPUT, 0) /* (A21) MMC1_CMD */ + AM62X_IOPAD(0x0234, PIN_INPUT, 0) /* (B22) MMC1_CLK */ + AM62X_IOPAD(0x0230, PIN_INPUT, 0) /* (A22) MMC1_DAT0 */ + AM62X_IOPAD(0x022c, PIN_INPUT, 0) /* (B21) MMC1_DAT1 */ + AM62X_IOPAD(0x0228, PIN_INPUT, 0) /* (C21) MMC1_DAT2 */ + AM62X_IOPAD(0x0224, PIN_INPUT, 0) /* (D22) MMC1_DAT3 */ + AM62X_IOPAD(0x0240, PIN_INPUT, 7) /* (D17) MMC1_SDCD.GPIO1_48 */ + >; + }; + + wifi_pins_default: wifi-pins-default { + pinctrl-single,pins = < + AM62X_IOPAD(0x0120, PIN_INPUT, 0) /* (C24) MMC2_CMD */ + AM62X_IOPAD(0x0118, PIN_INPUT, 0) /* (D25) MMC2_CLK */ + AM62X_IOPAD(0x0114, PIN_INPUT, 0) /* (B24) MMC2_DAT0 */ + AM62X_IOPAD(0x0110, PIN_INPUT, 0) /* (C25) MMC2_DAT1 */ + AM62X_IOPAD(0x010c, PIN_INPUT, 0) /* (E23) MMC2_DAT2 */ + AM62X_IOPAD(0x0108, PIN_INPUT, 0) /* (D24) MMC2_DAT3 */ + AM62X_IOPAD(0x0124, PIN_INPUT, 0) /* (A23) MMC2_SDCD */ + AM62X_IOPAD(0x11c, PIN_INPUT, 0) /* (#N/A) MMC2_CLKB */ + >; + }; + + wifi_en_pins_default: wifi-en-pins-default { + pinctrl-single,pins = < + AM62X_IOPAD(0x009c, PIN_OUTPUT, 7) /* (V25) GPMC0_WAIT1.GPIO0_38 */ + >; + }; + + wifi_wlirq_pins_default: wifi-wlirq-pins-default { + pinctrl-single,pins = < + AM62X_IOPAD(0x00a8, PIN_INPUT, 7) /* (M21) GPMC0_CSn0.GPIO0_41 */ + >; + }; + + spe_pins_default: spe-pins-default { + pinctrl-single,pins = < + AM62X_IOPAD(0x0168, PIN_INPUT, 1) /* (AE21) RGMII2_TXC.RMII2_CRS_DV */ + AM62X_IOPAD(0x0180, PIN_INPUT, 1) /* (AD23) RGMII2_RXC.RMII2_REF_CLK */ + AM62X_IOPAD(0x0184, PIN_INPUT, 1) /* (AE23) RGMII2_RD0.RMII2_RXD0 */ + AM62X_IOPAD(0x0188, PIN_INPUT, 1) /* (AB20) RGMII2_RD1.RMII2_RXD1 */ + AM62X_IOPAD(0x017c, PIN_INPUT, 1) /* (AD22) RGMII2_RX_CTL.RMII2_RX_ER */ + AM62X_IOPAD(0x016c, PIN_INPUT, 1) /* (Y18) RGMII2_TD0.RMII2_TXD0 */ + AM62X_IOPAD(0x0170, PIN_INPUT, 1) /* (AA18) RGMII2_TD1.RMII2_TXD1 */ + AM62X_IOPAD(0x0164, PIN_INPUT, 1) /* (AA19) RGMII2_TX_CTL.RMII2_TX_EN */ + AM62X_IOPAD(0x018c, PIN_OUTPUT, 7) /* (AC21) RGMII2_RD2.GPIO1_5 */ + AM62X_IOPAD(0x0190, PIN_INPUT, 7) /* (AE22) RGMII2_RD3.GPIO1_6 */ + AM62X_IOPAD(0x01f0, PIN_OUTPUT, 5) /* (A18) EXT_REFCLK1.CLKOUT0 */ + >; + }; + + mikrobus_i2c_pins_default: mikrobus-i2c-pins-default { + pinctrl-single,pins = < + AM62X_IOPAD(0x01d0, PIN_INPUT_PULLUP, 2) /* (A15) UART0_CTSn.I2C3_SCL */ + AM62X_IOPAD(0x01d4, PIN_INPUT_PULLUP, 2) /* (B15) UART0_RTSn.I2C3_SDA */ + >; + }; + + mikrobus_uart_pins_default: mikrobus-uart-pins-default { + pinctrl-single,pins = < + AM62X_IOPAD(0x01d8, PIN_INPUT, 1) /* (C15) MCAN0_TX.UART5_RXD */ + AM62X_IOPAD(0x01dc, PIN_OUTPUT, 1) /* (E15) MCAN0_RX.UART5_TXD */ + >; + }; + + mikrobus_spi_pins_default: mikrobus-spi-pins-default { + pinctrl-single,pins = < + AM62X_IOPAD(0x01b0, PIN_INPUT, 1) /* (A20) MCASP0_ACLKR.SPI2_CLK */ + AM62X_IOPAD(0x01ac, PIN_INPUT, 1) /* (E19) MCASP0_AFSR.SPI2_CS0 */ + AM62X_IOPAD(0x0194, PIN_INPUT, 1) /* (B19) MCASP0_AXR3.SPI2_D0 */ + AM62X_IOPAD(0x0198, PIN_INPUT, 1) /* (A19) MCASP0_AXR2.SPI2_D1 */ + >; + }; + + mikrobus_gpio_pins_default: mikrobus-gpio-pins-default { + pinctrl-single,pins = < + AM62X_IOPAD(0x019c, PIN_INPUT, 7) /* (B18) MCASP0_AXR1.GPIO1_9 */ + AM62X_IOPAD(0x01a0, PIN_INPUT, 7) /* (E18) MCASP0_AXR0.GPIO1_10 */ + AM62X_IOPAD(0x01a8, PIN_INPUT, 7) /* (D20) MCASP0_AFSX.GPIO1_12 */ + >; + }; + + console_pins_default: console-pins-default { + pinctrl-single,pins = < + AM62X_IOPAD(0x01c8, PIN_INPUT, 0) /* (D14) UART0_RXD */ + AM62X_IOPAD(0x01cc, PIN_OUTPUT, 0) /* (E14) UART0_TXD */ + >; + }; + + wifi_debug_uart_pins_default: wifi-debug-uart-pins-default { + pinctrl-single,pins = < + AM62X_IOPAD(0x001c, PIN_INPUT, 3) /* (J23) OSPI0_D4.UART6_RXD */ + AM62X_IOPAD(0x0020, PIN_OUTPUT, 3) /* (J25) OSPI0_D5.UART6_TXD */ + >; + }; + + usb1_pins_default: usb1-pins-default { + pinctrl-single,pins = < + AM62X_IOPAD(0x0258, PIN_INPUT, 0) /* (F18) USB1_DRVVBUS */ + >; + }; + + pmic_irq_pins_default: pmic-irq-pins-default { + pinctrl-single,pins = < + AM62X_IOPAD(0x01f4, PIN_INPUT_PULLUP, 0) /* (D16) EXTINTn */ + >; + }; +}; + +&mcu_pmx0 { + i2c_qwiic_pins_default: i2c-qwiic-pins-default { + pinctrl-single,pins = < + AM62X_MCU_IOPAD(0x0044, PIN_INPUT, 0) /* (A8) MCU_I2C0_SCL */ + AM62X_MCU_IOPAD(0x0048, PIN_INPUT, 0) /* (D10) MCU_I2C0_SDA */ + >; + }; + + gbe_pmx_obsclk: gbe-pmx-clk-default { + pinctrl-single,pins = < + AM62X_MCU_IOPAD(0x0004, PIN_OUTPUT, 1) /* (B8) MCU_SPI0_CS1.MCU_OBSCLK0 */ + >; + }; + + i2c_csi_pins_default: i2c-csi-pins-default { + pinctrl-single,pins = < + AM62X_MCU_IOPAD(0x004c, PIN_INPUT_PULLUP, 0) /* (B9) WKUP_I2C0_SCL */ + AM62X_MCU_IOPAD(0x0050, PIN_INPUT_PULLUP, 0) /* (A9) WKUP_I2C0_SDA */ + >; + }; + + wifi_32k_clk: mcu-clk-out-pins-default { + pinctrl-single,pins = < + AM62X_MCU_IOPAD(0x0084, PIN_OUTPUT, 0) /* (A12) WKUP_CLKOUT0 */ + >; + }; +}; + +&a53_opp_table { + /* Requires VDD_CORE to be at 0.85V */ + opp-1400000000 { + opp-hz = /bits/ 64 <1400000000>; + opp-supported-hw = <0x01 0x0004>; + }; +}; + +&wkup_i2c0 { + pinctrl-names = "default"; + pinctrl-0 = <&i2c_csi_pins_default>; + clock-frequency = <400000>; + /* Enable with overlay for camera sensor */ +}; + +&mcu_i2c0 { + pinctrl-names = "default"; + pinctrl-0 = <&i2c_qwiic_pins_default>; + clock-frequency = <100000>; + status = "okay"; +}; + +&usbss0 { + ti,vbus-divider; + status = "okay"; +}; + +&usb0 { + dr_mode = "peripheral"; +}; + +&usbss1 { + status = "okay"; +}; + +&usb1 { + dr_mode = "host"; + pinctrl-names = "default"; + pinctrl-0 = <&usb1_pins_default>; +}; + +&cpsw3g { + pinctrl-names = "default"; + pinctrl-0 = <&rgmii1_pins_default>, <&spe_pins_default>, + <&gbe_pmx_obsclk>; + assigned-clocks = <&k3_clks 157 70>, <&k3_clks 157 20>; + assigned-clock-parents = <&k3_clks 157 72>, <&k3_clks 157 22>; +}; + +&cpsw_port1 { + phy-mode = "rgmii-rxid"; + phy-handle = <&cpsw3g_phy0>; +}; + +&cpsw_port2 { + phy-mode = "rmii"; + phy-handle = <&cpsw3g_phy1>; +}; + +&cpsw3g_mdio { + /* Workaround for errata i2329 - Use mdio bitbang */ + status = "disabled"; +}; + +&main_gpio0 { + pinctrl-names = "default"; + pinctrl-0 = <&gpio0_pins_default>; + gpio-line-names = "BL_EN_3V3", "SPE_PO_EN", "RTC_INT", /* 0-2 */ + "USR0", "USR1", "USR2", "USR3", "", "", "USR4", /* 3-9 */ + "EEPROM_WP", /* 10 */ + "CSI2_CAMERA_GPIO1", "CSI2_CAMERA_GPIO2", /* 11-12 */ + "CC1352P7_BOOT", "CC1352P7_RSTN", "", "", "", /* 13-17 */ + "USR_BUTTON", "", "", "", "", "", "", "", "", /* 18-26 */ + "", "", "", "", "", "", "", "", "", "HDMI_INT", /* 27-36 */ + "", "VDD_WLAN_EN", "", "", "WL_IRQ", "GBE_INTN",/* 37-42 */ + "", "", "", "", "", "", "", "", "", "", "", "", /* 43-54 */ + "", "", "", "", "", "", "", "", "", "", "", "", /* 55-66 */ + "", "", "", "", "", "", "", "", "", "", "", "", /* 67-78 */ + "", "", "", "", "", "", /* 79-84 */ + "BITBANG_MDIO_DATA", "BITBANG_MDIO_CLK", /* 85-86 */ + "", "", "", "", ""; /* 87-91 */ +}; + +&main_gpio1 { + pinctrl-names = "default"; + pinctrl-0 = <&mikrobus_gpio_pins_default>; + gpio-line-names = "", "", "", "", "", /* 0-4 */ + "SPE_RSTN", "SPE_INTN", "MIKROBUS_GPIO1_7", /* 5-7 */ + "MIKROBUS_GPIO1_8", "MIKROBUS_GPIO1_9", /* 8-9 */ + "MIKROBUS_GPIO1_10", "MIKROBUS_GPIO1_11", /* 10-11 */ + "MIKROBUS_GPIO1_12", "MIKROBUS_W1_GPIO0", /* 12-13 */ + "MIKROBUS_GPIO1_14", /* 14 */ + "", "", "", "", "VDD_3V3_SD", "", "", /* 15-21 */ + "MIKROBUS_GPIO1_22", "MIKROBUS_GPIO1_23", /* 22-23 */ + "MIKROBUS_GPIO1_24", "MIKROBUS_GPIO1_25", /* 24-25 */ + "", "", "", "", "", "", "", "", "", "", "", "", /* 26-37 */ + "", "", "", "", "", "", "", "", "", "", /* 38-47 */ + "SD_CD", "SD_VOLT_SEL", "", ""; /* 48-51 */ +}; + +&main_i2c0 { + pinctrl-names = "default"; + pinctrl-0 = <&local_i2c_pins_default>; + clock-frequency = <400000>; + status = "okay"; + + eeprom@50 { + compatible = "atmel,24c32"; + reg = <0x50>; + }; + + rtc: rtc@68 { + compatible = "ti,bq32000"; + reg = <0x68>; + interrupt-parent = <&main_gpio0>; + interrupts = <2 IRQ_TYPE_EDGE_FALLING>; + }; + + tps65219: pmic@30 { + compatible = "ti,tps65219"; + reg = <0x30>; + buck1-supply = <&vsys_5v0>; + buck2-supply = <&vsys_5v0>; + buck3-supply = <&vsys_5v0>; + ldo1-supply = <&vdd_3v3>; + ldo2-supply = <&buck2_reg>; + ldo3-supply = <&vdd_3v3>; + ldo4-supply = <&vdd_3v3>; + + pinctrl-names = "default"; + pinctrl-0 = <&pmic_irq_pins_default>; + interrupt-parent = <&gic500>; + interrupts = <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>; + interrupt-controller; + #interrupt-cells = <1>; + + system-power-controller; + ti,power-button; + + regulators { + buck1_reg: buck1 { + regulator-name = "VDD_CORE"; + regulator-min-microvolt = <850000>; + regulator-max-microvolt = <850000>; + regulator-boot-on; + regulator-always-on; + }; + + buck2_reg: buck2 { + regulator-name = "VDD_1V8"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-boot-on; + regulator-always-on; + }; + + buck3_reg: buck3 { + regulator-name = "VDD_1V2"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-boot-on; + regulator-always-on; + }; + + ldo1_reg: ldo1 { + /* + * Regulator is left as is unused, vdd_sd + * is controlled via GPIO with bypass config + * as per the NVM configuration + */ + regulator-name = "VDD_SD_3V3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-allow-bypass; + regulator-boot-on; + regulator-always-on; + }; + + ldo2_reg: ldo2 { + regulator-name = "VDDA_0V85"; + regulator-min-microvolt = <850000>; + regulator-max-microvolt = <850000>; + regulator-boot-on; + regulator-always-on; + }; + + ldo3_reg: ldo3 { + regulator-name = "VDDA_1V8"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-boot-on; + regulator-always-on; + }; + + ldo4_reg: ldo4 { + regulator-name = "VDD_2V5"; + regulator-min-microvolt = <2500000>; + regulator-max-microvolt = <2500000>; + regulator-boot-on; + regulator-always-on; + }; + }; + }; +}; + +&main_i2c1 { + pinctrl-names = "default"; + pinctrl-0 = <&grove_pins_default>; + clock-frequency = <100000>; + status = "okay"; +}; + +&main_i2c2 { + pinctrl-names = "default"; + pinctrl-0 = <&i2c2_1v8_pins_default>; + clock-frequency = <100000>; + status = "okay"; +}; + +&main_i2c3 { + pinctrl-names = "default"; + pinctrl-0 = <&mikrobus_i2c_pins_default>; + clock-frequency = <400000>; + status = "okay"; +}; + +&main_spi2 { + pinctrl-names = "default"; + pinctrl-0 = <&mikrobus_spi_pins_default>; + status = "okay"; +}; + +&sdhci0 { + pinctrl-names = "default"; + pinctrl-0 = <&emmc_pins_default>; + ti,driver-strength-ohm = <50>; + disable-wp; + status = "okay"; +}; + +&sdhci1 { + /* SD/MMC */ + pinctrl-names = "default"; + pinctrl-0 = <&sd_pins_default>; + + vmmc-supply = <&vdd_3v3_sd>; + vqmmc-supply = <&vdd_sd_dv>; + ti,driver-strength-ohm = <50>; + disable-wp; + cd-gpios = <&main_gpio1 48 GPIO_ACTIVE_LOW>; + cd-debounce-delay-ms = <100>; + ti,fails-without-test-cd; + status = "okay"; +}; + +&sdhci2 { + vmmc-supply = <&wlan_en>; + pinctrl-names = "default"; + pinctrl-0 = <&wifi_pins_default>, <&wifi_32k_clk>; + bus-width = <4>; + non-removable; + ti,fails-without-test-cd; + cap-power-off-card; + keep-power-in-suspend; + ti,driver-strength-ohm = <50>; + assigned-clocks = <&k3_clks 157 158>; + assigned-clock-parents = <&k3_clks 157 160>; + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + wlcore: wlcore@2 { + compatible = "ti,wl1807"; + reg = <2>; + pinctrl-names = "default"; + pinctrl-0 = <&wifi_wlirq_pins_default>; + interrupt-parent = <&main_gpio0>; + interrupts = <41 IRQ_TYPE_EDGE_FALLING>; + }; +}; + +&main_uart0 { + pinctrl-names = "default"; + pinctrl-0 = <&console_pins_default>; + status = "okay"; +}; + +&main_uart1 { + /* Main UART1 is used by TIFS firmware */ + status = "reserved"; +}; + +&main_uart5 { + pinctrl-names = "default"; + pinctrl-0 = <&mikrobus_uart_pins_default>; + status = "okay"; +}; + +&main_uart6 { + pinctrl-names = "default"; + pinctrl-0 = <&wifi_debug_uart_pins_default>; + status = "okay"; +}; -- 2.40.0 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH V2 2/3] arm64: dts: ti: Add k3-am625-beagleplay 2023-03-16 15:21 ` [PATCH V2 2/3] arm64: dts: ti: Add k3-am625-beagleplay Nishanth Menon @ 2023-03-16 15:43 ` Andrew Davis 0 siblings, 0 replies; 8+ messages in thread From: Andrew Davis @ 2023-03-16 15:43 UTC (permalink / raw) To: Nishanth Menon, Krzysztof Kozlowski, Rob Herring, Arnd Bergmann Cc: linux-kernel, devicetree, linux-arm-kernel, Tero Kristo, Vignesh Raghavendra, Julien Panis, Bryan Brattlof, Jason Kridner, Robert Nelson On 3/16/23 10:21 AM, Nishanth Menon wrote: > From: Robert Nelson <robertcnelson@gmail.com> > > BeagleBoard.org BeaglePlay is an easy to use, affordable open source > hardware single board computer based on the Texas Instruments AM625 > SoC that allows you to create connected devices that work even at long > distances using IEEE 802.15.4g LR-WPAN and IEEE 802.3cg 10Base-T1L. > Expansion is provided over open standards based mikroBUS, Grove and > QWIIC headers among other interfaces. > > This board family can be identified by the 24c32 eeprom: > > [aa 55 33 ee 01 37 00 10 2e 00 42 45 41 47 4c 45 |.U3..7....BEAGLE|] > [50 4c 41 59 2d 41 30 2d 00 00 30 32 30 30 37 38 |PLAY-A0-..020078|] > > https://beagleplay.org/ > https://git.beagleboard.org/beagleplay/beagleplay > > Signed-off-by: Robert Nelson <robertcnelson@gmail.com> > Co-developed-by: Nishanth Menon <nm@ti.com> > Signed-off-by: Nishanth Menon <nm@ti.com> > --- > Changes since V1: (major cleanups listed below) > - Sign-off order fixup > - Cleanup of pre-production board to production board changes (uart, > gpio pinmuxes, mikrobus) > - spi node is enabled for mikrobus > - dropped wakeup_rtc0 alias - should keep the series independent. > - ramoops address changed to give space for m4f firmware > - leds-2 linux,default-trigger dropped as not compliant with yaml > - formatting fixups > - dropped no-map from reserved memories, and dropped redundant > "OP-TEE" documentation. > > V1: https://lore.kernel.org/all/20230311111022.23717-3-nm@ti.com/ > > arch/arm64/boot/dts/ti/Makefile | 1 + > .../arm64/boot/dts/ti/k3-am625-beagleplay.dts | 757 ++++++++++++++++++ > 2 files changed, 758 insertions(+) > create mode 100644 arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts > > diff --git a/arch/arm64/boot/dts/ti/Makefile b/arch/arm64/boot/dts/ti/Makefile > index 6acd12409d59..09b4eafd5716 100644 > --- a/arch/arm64/boot/dts/ti/Makefile > +++ b/arch/arm64/boot/dts/ti/Makefile > @@ -9,6 +9,7 @@ > # alphabetically. > > # Boards with AM62x SoC > +dtb-$(CONFIG_ARCH_K3) += k3-am625-beagleplay.dtb > dtb-$(CONFIG_ARCH_K3) += k3-am625-sk.dtb > > # Boards with AM62Ax SoC > diff --git a/arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts b/arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts > new file mode 100644 > index 000000000000..f75e79e54dfc > --- /dev/null > +++ b/arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts > @@ -0,0 +1,757 @@ > +// SPDX-License-Identifier: GPL-2.0 > +/* > + * https://beagleplay.org/ > + * > + * Copyright (C) 2022-2023 Texas Instruments Incorporated - https://www.ti.com/ > + * Copyright (C) 2022-2023 Robert Nelson, BeagleBoard.org Foundation > + */ > + > +/dts-v1/; > + > +#include <dt-bindings/leds/common.h> > +#include <dt-bindings/gpio/gpio.h> > +#include <dt-bindings/input/input.h> > +#include "k3-am625.dtsi" > + > +/ { > + compatible = "beagle,am625-beagleplay", "ti,am625"; > + model = "BeagleBoard.org BeaglePlay"; > + > + aliases { > + ethernet0 = &cpsw_port1; > + ethernet1 = &cpsw_port2; > + gpio0 = &main_gpio0; > + gpio1 = &main_gpio1; > + gpio2 = &mcu_gpio0; > + i2c0 = &main_i2c0; > + i2c1 = &main_i2c1; > + i2c2 = &main_i2c2; > + i2c3 = &main_i2c3; > + i2c4 = &wkup_i2c0; > + i2c5 = &mcu_i2c0; > + mdio-gpio0 = &mdio0; > + mmc0 = &sdhci0; > + mmc1 = &sdhci1; > + mmc2 = &sdhci2; > + rtc0 = &rtc; > + serial0 = &main_uart5; These serial aliases are absurd, we will need to sort this all out someday.. Everything else looks good to me, Reviewed-by: Andrew Davis <afd@ti.com> > + serial1 = &main_uart6; > + serial2 = &main_uart0; > + usb0 = &usb0; > + usb1 = &usb1; > + }; > + > + chosen { > + stdout-path = "serial2:115200n8"; > + }; > + > + memory@80000000 { > + device_type = "memory"; > + /* 2G RAM */ > + reg = <0x00000000 0x80000000 0x00000000 0x80000000>; > + }; > + > + reserved-memory { > + #address-cells = <2>; > + #size-cells = <2>; > + ranges; > + > + ramoops: ramoops@9ca00000 { > + compatible = "ramoops"; > + reg = <0x00 0x9c700000 0x00 0x00100000>; > + record-size = <0x8000>; > + console-size = <0x8000>; > + ftrace-size = <0x00>; > + pmsg-size = <0x8000>; > + }; > + > + secure_tfa_ddr: tfa@9e780000 { > + reg = <0x00 0x9e780000 0x00 0x80000>; > + no-map; > + }; > + > + secure_ddr: optee@9e800000 { > + reg = <0x00 0x9e800000 0x00 0x01800000>; > + no-map; > + }; > + > + wkup_r5fss0_core0_dma_memory_region: r5f-dma-memory@9db00000 { > + compatible = "shared-dma-pool"; > + reg = <0x00 0x9db00000 0x00 0xc00000>; > + no-map; > + }; > + }; > + > + vsys_5v0: regulator-1 { > + compatible = "regulator-fixed"; > + regulator-name = "vsys_5v0"; > + regulator-min-microvolt = <5000000>; > + regulator-max-microvolt = <5000000>; > + regulator-always-on; > + regulator-boot-on; > + }; > + > + vdd_3v3: regulator-2 { > + /* output of TLV62595DMQR-U12 */ > + compatible = "regulator-fixed"; > + regulator-name = "vdd_3v3"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + vin-supply = <&vsys_5v0>; > + regulator-always-on; > + regulator-boot-on; > + }; > + > + wlan_en: regulator-3 { > + /* OUTPUT of SN74AVC2T244DQMR */ > + compatible = "regulator-fixed"; > + regulator-name = "wlan_en"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + enable-active-high; > + regulator-always-on; > + vin-supply = <&vdd_3v3>; > + gpio = <&main_gpio0 38 GPIO_ACTIVE_HIGH>; > + pinctrl-names = "default"; > + pinctrl-0 = <&wifi_en_pins_default>; > + }; > + > + vdd_3v3_sd: regulator-4 { > + /* output of TPS22918DBVR-U21 */ > + pinctrl-names = "default"; > + pinctrl-0 = <&vdd_3v3_sd_pins_default>; > + > + compatible = "regulator-fixed"; > + regulator-name = "vdd_3v3_sd"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + enable-active-high; > + regulator-always-on; > + vin-supply = <&vdd_3v3>; > + gpio = <&main_gpio1 19 GPIO_ACTIVE_HIGH>; > + }; > + > + vdd_sd_dv: regulator-5 { > + compatible = "regulator-gpio"; > + regulator-name = "sd_hs200_switch"; > + pinctrl-names = "default"; > + pinctrl-0 = <&vdd_sd_dv_pins_default>; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <3300000>; > + regulator-boot-on; > + vin-supply = <&vdd_3v3>; > + gpios = <&main_gpio1 49 GPIO_ACTIVE_HIGH>; > + states = <1800000 0x0>, > + <3300000 0x1>; > + }; > + > + leds { > + compatible = "gpio-leds"; > + > + led-0 { > + gpios = <&main_gpio0 3 GPIO_ACTIVE_HIGH>; > + linux,default-trigger = "heartbeat"; > + function = LED_FUNCTION_HEARTBEAT; > + default-state = "off"; > + }; > + > + led-1 { > + gpios = <&main_gpio0 4 GPIO_ACTIVE_HIGH>; > + linux,default-trigger = "disk-activity"; > + function = LED_FUNCTION_DISK_ACTIVITY; > + default-state = "keep"; > + }; > + > + led-2 { > + gpios = <&main_gpio0 5 GPIO_ACTIVE_HIGH>; > + function = LED_FUNCTION_CPU; > + }; > + > + led-3 { > + gpios = <&main_gpio0 6 GPIO_ACTIVE_HIGH>; > + function = LED_FUNCTION_LAN; > + }; > + > + led-4 { > + gpios = <&main_gpio0 9 GPIO_ACTIVE_HIGH>; > + function = LED_FUNCTION_WLAN; > + }; > + }; > + > + gpio_keys: gpio-keys { > + compatible = "gpio-keys"; > + autorepeat; > + pinctrl-names = "default"; > + pinctrl-0 = <&usr_button_pins_default>; > + > + usr: button-usr { > + label = "User Key"; > + linux,code = <BTN_0>; > + gpios = <&main_gpio0 18 GPIO_ACTIVE_LOW>; > + }; > + > + }; > + > + /* Workaround for errata i2329 - just use mdio bitbang */ > + mdio0: mdio { > + compatible = "virtual,mdio-gpio"; > + pinctrl-names = "default"; > + pinctrl-0 = <&mdio0_pins_default>; > + gpios = <&main_gpio0 86 GPIO_ACTIVE_HIGH>, /* MDC */ > + <&main_gpio0 85 GPIO_ACTIVE_HIGH>; /* MDIO */ > + #address-cells = <1>; > + #size-cells = <0>; > + > + cpsw3g_phy0: ethernet-phy@0 { > + reg = <0>; > + }; > + > + cpsw3g_phy1: ethernet-phy@1 { > + reg = <1>; > + reset-gpios = <&main_gpio1 5 GPIO_ACTIVE_LOW>; > + reset-assert-us = <25>; > + reset-deassert-us = <60000>; /* T2 */ > + }; > + }; > +}; > + > +&main_pmx0 { > + gpio0_pins_default: gpio0-pins-default { > + pinctrl-single,pins = < > + AM62X_IOPAD(0x0004, PIN_INPUT, 7) /* (G25) OSPI0_LBCLKO.GPIO0_1 */ > + AM62X_IOPAD(0x0008, PIN_INPUT, 7) /* (J24) OSPI0_DQS.GPIO0_2 */ > + AM62X_IOPAD(0x000c, PIN_INPUT, 7) /* (E25) OSPI0_D0.GPIO0_3 */ > + AM62X_IOPAD(0x0010, PIN_INPUT, 7) /* (G24) OSPI0_D1.GPIO0_4 */ > + AM62X_IOPAD(0x0014, PIN_INPUT, 7) /* (F25) OSPI0_D2.GPIO0_5 */ > + AM62X_IOPAD(0x0018, PIN_INPUT, 7) /* (F24) OSPI0_D3.GPIO0_6 */ > + AM62X_IOPAD(0x0024, PIN_INPUT, 7) /* (H25) OSPI0_D6.GPIO0_9 */ > + AM62X_IOPAD(0x0028, PIN_INPUT, 7) /* (J22) OSPI0_D7.GPIO0_10 */ > + AM62X_IOPAD(0x002c, PIN_INPUT, 7) /* (F23) OSPI0_CSn0.GPIO0_11 */ > + AM62X_IOPAD(0x0030, PIN_INPUT, 7) /* (G21) OSPI0_CSn1.GPIO0_12 */ > + AM62X_IOPAD(0x0034, PIN_INPUT, 7) /* (H21) OSPI0_CSn2.GPIO0_13 */ > + AM62X_IOPAD(0x0038, PIN_INPUT, 7) /* (E24) OSPI0_CSn3.GPIO0_14 */ > + AM62X_IOPAD(0x00a4, PIN_INPUT, 7) /* (M22) GPMC0_DIR.GPIO0_40 */ > + AM62X_IOPAD(0x00ac, PIN_INPUT, 7) /* (L21) GPMC0_CSn1.GPIO0_42 */ > + >; > + }; > + > + vdd_sd_dv_pins_default: vdd-sd-pins-default { > + pinctrl-single,pins = < > + AM62X_IOPAD(0x0244, PIN_OUTPUT, 7) /* (C17) MMC1_SDWP.GPIO1_49 */ > + >; > + }; > + > + usr_button_pins_default: usr-button-pins-default { > + pinctrl-single,pins = < > + AM62X_IOPAD(0x0048, PIN_INPUT, 7) /* (N25) GPMC0_AD3.GPIO0_18 */ > + >; > + }; > + > + grove_pins_default: grove-pins-default { > + pinctrl-single,pins = < > + AM62X_IOPAD(0x01e8, PIN_INPUT_PULLUP, 0) /* (B17) I2C1_SCL */ > + AM62X_IOPAD(0x01ec, PIN_INPUT_PULLUP, 0) /* (A17) I2C1_SDA */ > + >; > + }; > + > + local_i2c_pins_default: local-i2c-pins-default { > + pinctrl-single,pins = < > + AM62X_IOPAD(0x01e0, PIN_INPUT_PULLUP, 0) /* (B16) I2C0_SCL */ > + AM62X_IOPAD(0x01e4, PIN_INPUT_PULLUP, 0) /* (A16) I2C0_SDA */ > + >; > + }; > + > + i2c2_1v8_pins_default: i2c2-pins-default { > + pinctrl-single,pins = < > + AM62X_IOPAD(0x00b0, PIN_INPUT_PULLUP, 1) /* (K22) GPMC0_CSn2.I2C2_SCL */ > + AM62X_IOPAD(0x00b4, PIN_INPUT_PULLUP, 1) /* (K24) GPMC0_CSn3.I2C2_SDA */ > + >; > + }; > + > + mdio0_pins_default: mdio0-pins-default { > + pinctrl-single,pins = < > + AM62X_IOPAD(0x0160, PIN_OUTPUT, 7) /* (AD24) MDIO0_MDC.GPIO0_86 */ > + AM62X_IOPAD(0x015c, PIN_INPUT, 7) /* (AB22) MDIO0_MDIO.GPIO0_85 */ > + >; > + }; > + > + rgmii1_pins_default: rgmii1-pins-default { > + pinctrl-single,pins = < > + AM62X_IOPAD(0x014c, PIN_INPUT, 0) /* (AB17) RGMII1_RD0 */ > + AM62X_IOPAD(0x0150, PIN_INPUT, 0) /* (AC17) RGMII1_RD1 */ > + AM62X_IOPAD(0x0154, PIN_INPUT, 0) /* (AB16) RGMII1_RD2 */ > + AM62X_IOPAD(0x0158, PIN_INPUT, 0) /* (AA15) RGMII1_RD3 */ > + AM62X_IOPAD(0x0148, PIN_INPUT, 0) /* (AD17) RGMII1_RXC */ > + AM62X_IOPAD(0x0144, PIN_INPUT, 0) /* (AE17) RGMII1_RX_CTL */ > + AM62X_IOPAD(0x0134, PIN_OUTPUT, 0) /* (AE20) RGMII1_TD0 */ > + AM62X_IOPAD(0x0138, PIN_OUTPUT, 0) /* (AD20) RGMII1_TD1 */ > + AM62X_IOPAD(0x013c, PIN_OUTPUT, 0) /* (AE18) RGMII1_TD2 */ > + AM62X_IOPAD(0x0140, PIN_OUTPUT, 0) /* (AD18) RGMII1_TD3 */ > + AM62X_IOPAD(0x0130, PIN_OUTPUT, 0) /* (AE19) RGMII1_TXC */ > + AM62X_IOPAD(0x012c, PIN_OUTPUT, 0) /* (AD19) RGMII1_TX_CTL */ > + >; > + }; > + > + emmc_pins_default: emmc-pins-default { > + pinctrl-single,pins = < > + AM62X_IOPAD(0x0220, PIN_INPUT, 0) /* (Y3) MMC0_CMD */ > + AM62X_IOPAD(0x0218, PIN_INPUT, 0) /* (AB1) MMC0_CLK */ > + AM62X_IOPAD(0x0214, PIN_INPUT, 0) /* (AA2) MMC0_DAT0 */ > + AM62X_IOPAD(0x0210, PIN_INPUT, 0) /* (AA1) MMC0_DAT1 */ > + AM62X_IOPAD(0x020c, PIN_INPUT, 0) /* (AA3) MMC0_DAT2 */ > + AM62X_IOPAD(0x0208, PIN_INPUT, 0) /* (Y4) MMC0_DAT3 */ > + AM62X_IOPAD(0x0204, PIN_INPUT, 0) /* (AB2) MMC0_DAT4 */ > + AM62X_IOPAD(0x0200, PIN_INPUT, 0) /* (AC1) MMC0_DAT5 */ > + AM62X_IOPAD(0x01fc, PIN_INPUT, 0) /* (AD2) MMC0_DAT6 */ > + AM62X_IOPAD(0x01f8, PIN_INPUT, 0) /* (AC2) MMC0_DAT7 */ > + >; > + }; > + > + vdd_3v3_sd_pins_default: vdd-3v3-sd-pins-default { > + pinctrl-single,pins = < > + AM62X_IOPAD(0x01c4, PIN_INPUT, 7) /* (B14) SPI0_D1_GPIO1_19 */ > + >; > + }; > + > + sd_pins_default: sd-pins-default { > + pinctrl-single,pins = < > + AM62X_IOPAD(0x023c, PIN_INPUT, 0) /* (A21) MMC1_CMD */ > + AM62X_IOPAD(0x0234, PIN_INPUT, 0) /* (B22) MMC1_CLK */ > + AM62X_IOPAD(0x0230, PIN_INPUT, 0) /* (A22) MMC1_DAT0 */ > + AM62X_IOPAD(0x022c, PIN_INPUT, 0) /* (B21) MMC1_DAT1 */ > + AM62X_IOPAD(0x0228, PIN_INPUT, 0) /* (C21) MMC1_DAT2 */ > + AM62X_IOPAD(0x0224, PIN_INPUT, 0) /* (D22) MMC1_DAT3 */ > + AM62X_IOPAD(0x0240, PIN_INPUT, 7) /* (D17) MMC1_SDCD.GPIO1_48 */ > + >; > + }; > + > + wifi_pins_default: wifi-pins-default { > + pinctrl-single,pins = < > + AM62X_IOPAD(0x0120, PIN_INPUT, 0) /* (C24) MMC2_CMD */ > + AM62X_IOPAD(0x0118, PIN_INPUT, 0) /* (D25) MMC2_CLK */ > + AM62X_IOPAD(0x0114, PIN_INPUT, 0) /* (B24) MMC2_DAT0 */ > + AM62X_IOPAD(0x0110, PIN_INPUT, 0) /* (C25) MMC2_DAT1 */ > + AM62X_IOPAD(0x010c, PIN_INPUT, 0) /* (E23) MMC2_DAT2 */ > + AM62X_IOPAD(0x0108, PIN_INPUT, 0) /* (D24) MMC2_DAT3 */ > + AM62X_IOPAD(0x0124, PIN_INPUT, 0) /* (A23) MMC2_SDCD */ > + AM62X_IOPAD(0x11c, PIN_INPUT, 0) /* (#N/A) MMC2_CLKB */ > + >; > + }; > + > + wifi_en_pins_default: wifi-en-pins-default { > + pinctrl-single,pins = < > + AM62X_IOPAD(0x009c, PIN_OUTPUT, 7) /* (V25) GPMC0_WAIT1.GPIO0_38 */ > + >; > + }; > + > + wifi_wlirq_pins_default: wifi-wlirq-pins-default { > + pinctrl-single,pins = < > + AM62X_IOPAD(0x00a8, PIN_INPUT, 7) /* (M21) GPMC0_CSn0.GPIO0_41 */ > + >; > + }; > + > + spe_pins_default: spe-pins-default { > + pinctrl-single,pins = < > + AM62X_IOPAD(0x0168, PIN_INPUT, 1) /* (AE21) RGMII2_TXC.RMII2_CRS_DV */ > + AM62X_IOPAD(0x0180, PIN_INPUT, 1) /* (AD23) RGMII2_RXC.RMII2_REF_CLK */ > + AM62X_IOPAD(0x0184, PIN_INPUT, 1) /* (AE23) RGMII2_RD0.RMII2_RXD0 */ > + AM62X_IOPAD(0x0188, PIN_INPUT, 1) /* (AB20) RGMII2_RD1.RMII2_RXD1 */ > + AM62X_IOPAD(0x017c, PIN_INPUT, 1) /* (AD22) RGMII2_RX_CTL.RMII2_RX_ER */ > + AM62X_IOPAD(0x016c, PIN_INPUT, 1) /* (Y18) RGMII2_TD0.RMII2_TXD0 */ > + AM62X_IOPAD(0x0170, PIN_INPUT, 1) /* (AA18) RGMII2_TD1.RMII2_TXD1 */ > + AM62X_IOPAD(0x0164, PIN_INPUT, 1) /* (AA19) RGMII2_TX_CTL.RMII2_TX_EN */ > + AM62X_IOPAD(0x018c, PIN_OUTPUT, 7) /* (AC21) RGMII2_RD2.GPIO1_5 */ > + AM62X_IOPAD(0x0190, PIN_INPUT, 7) /* (AE22) RGMII2_RD3.GPIO1_6 */ > + AM62X_IOPAD(0x01f0, PIN_OUTPUT, 5) /* (A18) EXT_REFCLK1.CLKOUT0 */ > + >; > + }; > + > + mikrobus_i2c_pins_default: mikrobus-i2c-pins-default { > + pinctrl-single,pins = < > + AM62X_IOPAD(0x01d0, PIN_INPUT_PULLUP, 2) /* (A15) UART0_CTSn.I2C3_SCL */ > + AM62X_IOPAD(0x01d4, PIN_INPUT_PULLUP, 2) /* (B15) UART0_RTSn.I2C3_SDA */ > + >; > + }; > + > + mikrobus_uart_pins_default: mikrobus-uart-pins-default { > + pinctrl-single,pins = < > + AM62X_IOPAD(0x01d8, PIN_INPUT, 1) /* (C15) MCAN0_TX.UART5_RXD */ > + AM62X_IOPAD(0x01dc, PIN_OUTPUT, 1) /* (E15) MCAN0_RX.UART5_TXD */ > + >; > + }; > + > + mikrobus_spi_pins_default: mikrobus-spi-pins-default { > + pinctrl-single,pins = < > + AM62X_IOPAD(0x01b0, PIN_INPUT, 1) /* (A20) MCASP0_ACLKR.SPI2_CLK */ > + AM62X_IOPAD(0x01ac, PIN_INPUT, 1) /* (E19) MCASP0_AFSR.SPI2_CS0 */ > + AM62X_IOPAD(0x0194, PIN_INPUT, 1) /* (B19) MCASP0_AXR3.SPI2_D0 */ > + AM62X_IOPAD(0x0198, PIN_INPUT, 1) /* (A19) MCASP0_AXR2.SPI2_D1 */ > + >; > + }; > + > + mikrobus_gpio_pins_default: mikrobus-gpio-pins-default { > + pinctrl-single,pins = < > + AM62X_IOPAD(0x019c, PIN_INPUT, 7) /* (B18) MCASP0_AXR1.GPIO1_9 */ > + AM62X_IOPAD(0x01a0, PIN_INPUT, 7) /* (E18) MCASP0_AXR0.GPIO1_10 */ > + AM62X_IOPAD(0x01a8, PIN_INPUT, 7) /* (D20) MCASP0_AFSX.GPIO1_12 */ > + >; > + }; > + > + console_pins_default: console-pins-default { > + pinctrl-single,pins = < > + AM62X_IOPAD(0x01c8, PIN_INPUT, 0) /* (D14) UART0_RXD */ > + AM62X_IOPAD(0x01cc, PIN_OUTPUT, 0) /* (E14) UART0_TXD */ > + >; > + }; > + > + wifi_debug_uart_pins_default: wifi-debug-uart-pins-default { > + pinctrl-single,pins = < > + AM62X_IOPAD(0x001c, PIN_INPUT, 3) /* (J23) OSPI0_D4.UART6_RXD */ > + AM62X_IOPAD(0x0020, PIN_OUTPUT, 3) /* (J25) OSPI0_D5.UART6_TXD */ > + >; > + }; > + > + usb1_pins_default: usb1-pins-default { > + pinctrl-single,pins = < > + AM62X_IOPAD(0x0258, PIN_INPUT, 0) /* (F18) USB1_DRVVBUS */ > + >; > + }; > + > + pmic_irq_pins_default: pmic-irq-pins-default { > + pinctrl-single,pins = < > + AM62X_IOPAD(0x01f4, PIN_INPUT_PULLUP, 0) /* (D16) EXTINTn */ > + >; > + }; > +}; > + > +&mcu_pmx0 { > + i2c_qwiic_pins_default: i2c-qwiic-pins-default { > + pinctrl-single,pins = < > + AM62X_MCU_IOPAD(0x0044, PIN_INPUT, 0) /* (A8) MCU_I2C0_SCL */ > + AM62X_MCU_IOPAD(0x0048, PIN_INPUT, 0) /* (D10) MCU_I2C0_SDA */ > + >; > + }; > + > + gbe_pmx_obsclk: gbe-pmx-clk-default { > + pinctrl-single,pins = < > + AM62X_MCU_IOPAD(0x0004, PIN_OUTPUT, 1) /* (B8) MCU_SPI0_CS1.MCU_OBSCLK0 */ > + >; > + }; > + > + i2c_csi_pins_default: i2c-csi-pins-default { > + pinctrl-single,pins = < > + AM62X_MCU_IOPAD(0x004c, PIN_INPUT_PULLUP, 0) /* (B9) WKUP_I2C0_SCL */ > + AM62X_MCU_IOPAD(0x0050, PIN_INPUT_PULLUP, 0) /* (A9) WKUP_I2C0_SDA */ > + >; > + }; > + > + wifi_32k_clk: mcu-clk-out-pins-default { > + pinctrl-single,pins = < > + AM62X_MCU_IOPAD(0x0084, PIN_OUTPUT, 0) /* (A12) WKUP_CLKOUT0 */ > + >; > + }; > +}; > + > +&a53_opp_table { > + /* Requires VDD_CORE to be at 0.85V */ > + opp-1400000000 { > + opp-hz = /bits/ 64 <1400000000>; > + opp-supported-hw = <0x01 0x0004>; > + }; > +}; > + > +&wkup_i2c0 { > + pinctrl-names = "default"; > + pinctrl-0 = <&i2c_csi_pins_default>; > + clock-frequency = <400000>; > + /* Enable with overlay for camera sensor */ > +}; > + > +&mcu_i2c0 { > + pinctrl-names = "default"; > + pinctrl-0 = <&i2c_qwiic_pins_default>; > + clock-frequency = <100000>; > + status = "okay"; > +}; > + > +&usbss0 { > + ti,vbus-divider; > + status = "okay"; > +}; > + > +&usb0 { > + dr_mode = "peripheral"; > +}; > + > +&usbss1 { > + status = "okay"; > +}; > + > +&usb1 { > + dr_mode = "host"; > + pinctrl-names = "default"; > + pinctrl-0 = <&usb1_pins_default>; > +}; > + > +&cpsw3g { > + pinctrl-names = "default"; > + pinctrl-0 = <&rgmii1_pins_default>, <&spe_pins_default>, > + <&gbe_pmx_obsclk>; > + assigned-clocks = <&k3_clks 157 70>, <&k3_clks 157 20>; > + assigned-clock-parents = <&k3_clks 157 72>, <&k3_clks 157 22>; > +}; > + > +&cpsw_port1 { > + phy-mode = "rgmii-rxid"; > + phy-handle = <&cpsw3g_phy0>; > +}; > + > +&cpsw_port2 { > + phy-mode = "rmii"; > + phy-handle = <&cpsw3g_phy1>; > +}; > + > +&cpsw3g_mdio { > + /* Workaround for errata i2329 - Use mdio bitbang */ > + status = "disabled"; > +}; > + > +&main_gpio0 { > + pinctrl-names = "default"; > + pinctrl-0 = <&gpio0_pins_default>; > + gpio-line-names = "BL_EN_3V3", "SPE_PO_EN", "RTC_INT", /* 0-2 */ > + "USR0", "USR1", "USR2", "USR3", "", "", "USR4", /* 3-9 */ > + "EEPROM_WP", /* 10 */ > + "CSI2_CAMERA_GPIO1", "CSI2_CAMERA_GPIO2", /* 11-12 */ > + "CC1352P7_BOOT", "CC1352P7_RSTN", "", "", "", /* 13-17 */ > + "USR_BUTTON", "", "", "", "", "", "", "", "", /* 18-26 */ > + "", "", "", "", "", "", "", "", "", "HDMI_INT", /* 27-36 */ > + "", "VDD_WLAN_EN", "", "", "WL_IRQ", "GBE_INTN",/* 37-42 */ > + "", "", "", "", "", "", "", "", "", "", "", "", /* 43-54 */ > + "", "", "", "", "", "", "", "", "", "", "", "", /* 55-66 */ > + "", "", "", "", "", "", "", "", "", "", "", "", /* 67-78 */ > + "", "", "", "", "", "", /* 79-84 */ > + "BITBANG_MDIO_DATA", "BITBANG_MDIO_CLK", /* 85-86 */ > + "", "", "", "", ""; /* 87-91 */ > +}; > + > +&main_gpio1 { > + pinctrl-names = "default"; > + pinctrl-0 = <&mikrobus_gpio_pins_default>; > + gpio-line-names = "", "", "", "", "", /* 0-4 */ > + "SPE_RSTN", "SPE_INTN", "MIKROBUS_GPIO1_7", /* 5-7 */ > + "MIKROBUS_GPIO1_8", "MIKROBUS_GPIO1_9", /* 8-9 */ > + "MIKROBUS_GPIO1_10", "MIKROBUS_GPIO1_11", /* 10-11 */ > + "MIKROBUS_GPIO1_12", "MIKROBUS_W1_GPIO0", /* 12-13 */ > + "MIKROBUS_GPIO1_14", /* 14 */ > + "", "", "", "", "VDD_3V3_SD", "", "", /* 15-21 */ > + "MIKROBUS_GPIO1_22", "MIKROBUS_GPIO1_23", /* 22-23 */ > + "MIKROBUS_GPIO1_24", "MIKROBUS_GPIO1_25", /* 24-25 */ > + "", "", "", "", "", "", "", "", "", "", "", "", /* 26-37 */ > + "", "", "", "", "", "", "", "", "", "", /* 38-47 */ > + "SD_CD", "SD_VOLT_SEL", "", ""; /* 48-51 */ > +}; > + > +&main_i2c0 { > + pinctrl-names = "default"; > + pinctrl-0 = <&local_i2c_pins_default>; > + clock-frequency = <400000>; > + status = "okay"; > + > + eeprom@50 { > + compatible = "atmel,24c32"; > + reg = <0x50>; > + }; > + > + rtc: rtc@68 { > + compatible = "ti,bq32000"; > + reg = <0x68>; > + interrupt-parent = <&main_gpio0>; > + interrupts = <2 IRQ_TYPE_EDGE_FALLING>; > + }; > + > + tps65219: pmic@30 { > + compatible = "ti,tps65219"; > + reg = <0x30>; > + buck1-supply = <&vsys_5v0>; > + buck2-supply = <&vsys_5v0>; > + buck3-supply = <&vsys_5v0>; > + ldo1-supply = <&vdd_3v3>; > + ldo2-supply = <&buck2_reg>; > + ldo3-supply = <&vdd_3v3>; > + ldo4-supply = <&vdd_3v3>; > + > + pinctrl-names = "default"; > + pinctrl-0 = <&pmic_irq_pins_default>; > + interrupt-parent = <&gic500>; > + interrupts = <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>; > + interrupt-controller; > + #interrupt-cells = <1>; > + > + system-power-controller; > + ti,power-button; > + > + regulators { > + buck1_reg: buck1 { > + regulator-name = "VDD_CORE"; > + regulator-min-microvolt = <850000>; > + regulator-max-microvolt = <850000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + buck2_reg: buck2 { > + regulator-name = "VDD_1V8"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + buck3_reg: buck3 { > + regulator-name = "VDD_1V2"; > + regulator-min-microvolt = <1200000>; > + regulator-max-microvolt = <1200000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + ldo1_reg: ldo1 { > + /* > + * Regulator is left as is unused, vdd_sd > + * is controlled via GPIO with bypass config > + * as per the NVM configuration > + */ > + regulator-name = "VDD_SD_3V3"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + regulator-allow-bypass; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + ldo2_reg: ldo2 { > + regulator-name = "VDDA_0V85"; > + regulator-min-microvolt = <850000>; > + regulator-max-microvolt = <850000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + ldo3_reg: ldo3 { > + regulator-name = "VDDA_1V8"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + ldo4_reg: ldo4 { > + regulator-name = "VDD_2V5"; > + regulator-min-microvolt = <2500000>; > + regulator-max-microvolt = <2500000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + }; > + }; > +}; > + > +&main_i2c1 { > + pinctrl-names = "default"; > + pinctrl-0 = <&grove_pins_default>; > + clock-frequency = <100000>; > + status = "okay"; > +}; > + > +&main_i2c2 { > + pinctrl-names = "default"; > + pinctrl-0 = <&i2c2_1v8_pins_default>; > + clock-frequency = <100000>; > + status = "okay"; > +}; > + > +&main_i2c3 { > + pinctrl-names = "default"; > + pinctrl-0 = <&mikrobus_i2c_pins_default>; > + clock-frequency = <400000>; > + status = "okay"; > +}; > + > +&main_spi2 { > + pinctrl-names = "default"; > + pinctrl-0 = <&mikrobus_spi_pins_default>; > + status = "okay"; > +}; > + > +&sdhci0 { > + pinctrl-names = "default"; > + pinctrl-0 = <&emmc_pins_default>; > + ti,driver-strength-ohm = <50>; > + disable-wp; > + status = "okay"; > +}; > + > +&sdhci1 { > + /* SD/MMC */ > + pinctrl-names = "default"; > + pinctrl-0 = <&sd_pins_default>; > + > + vmmc-supply = <&vdd_3v3_sd>; > + vqmmc-supply = <&vdd_sd_dv>; > + ti,driver-strength-ohm = <50>; > + disable-wp; > + cd-gpios = <&main_gpio1 48 GPIO_ACTIVE_LOW>; > + cd-debounce-delay-ms = <100>; > + ti,fails-without-test-cd; > + status = "okay"; > +}; > + > +&sdhci2 { > + vmmc-supply = <&wlan_en>; > + pinctrl-names = "default"; > + pinctrl-0 = <&wifi_pins_default>, <&wifi_32k_clk>; > + bus-width = <4>; > + non-removable; > + ti,fails-without-test-cd; > + cap-power-off-card; > + keep-power-in-suspend; > + ti,driver-strength-ohm = <50>; > + assigned-clocks = <&k3_clks 157 158>; > + assigned-clock-parents = <&k3_clks 157 160>; > + #address-cells = <1>; > + #size-cells = <0>; > + status = "okay"; > + > + wlcore: wlcore@2 { > + compatible = "ti,wl1807"; > + reg = <2>; > + pinctrl-names = "default"; > + pinctrl-0 = <&wifi_wlirq_pins_default>; > + interrupt-parent = <&main_gpio0>; > + interrupts = <41 IRQ_TYPE_EDGE_FALLING>; > + }; > +}; > + > +&main_uart0 { > + pinctrl-names = "default"; > + pinctrl-0 = <&console_pins_default>; > + status = "okay"; > +}; > + > +&main_uart1 { > + /* Main UART1 is used by TIFS firmware */ > + status = "reserved"; > +}; > + > +&main_uart5 { > + pinctrl-names = "default"; > + pinctrl-0 = <&mikrobus_uart_pins_default>; > + status = "okay"; > +}; > + > +&main_uart6 { > + pinctrl-names = "default"; > + pinctrl-0 = <&wifi_debug_uart_pins_default>; > + status = "okay"; > +}; _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH V2 3/3] arm64: defconfig: Enable drivers for BeaglePlay 2023-03-16 15:21 [PATCH V2 0/3] arm64: dts/defconfig/binding: Add support for BeaglePlay Nishanth Menon 2023-03-16 15:21 ` [PATCH V2 1/3] dt-bindings: arm: ti: Add BeaglePlay Nishanth Menon 2023-03-16 15:21 ` [PATCH V2 2/3] arm64: dts: ti: Add k3-am625-beagleplay Nishanth Menon @ 2023-03-16 15:21 ` Nishanth Menon 2023-03-17 6:47 ` [PATCH V2 0/3] arm64: dts/defconfig/binding: Add support " Dhruva Gole 2023-03-20 23:03 ` Nishanth Menon 4 siblings, 0 replies; 8+ messages in thread From: Nishanth Menon @ 2023-03-16 15:21 UTC (permalink / raw) To: Krzysztof Kozlowski, Rob Herring, Arnd Bergmann Cc: linux-kernel, devicetree, linux-arm-kernel, Tero Kristo, Vignesh Raghavendra, Nishanth Menon, Julien Panis, Bryan Brattlof, Andrew Davis, Jason Kridner, Robert Nelson Enable drivers used on BeaglePlay[1]: * MDIO_GPIO driver to workaround erratum i2329, DP83TD510 SPE phy (enabled in-kernel to ease usage) * TPS65219 PMIC, regulator and power button as modules * BQ32K battery backedup RTC and the K3 RTC drivers as modules * OMAP2 SPI driver as module for accessing mikrobus bloat-o-meter reports after this change (v6.3-rc1, clang 17.0.0): add/remove: 22/3 grow/shrink: 2/0 up/down: 4328/-24 (4304) [...] Total: Before=27748314, After=27752618, chg +0.02% [1] https://beagleplay.org Signed-off-by: Nishanth Menon <nm@ti.com> --- Changes since V1: - Added CONFIG_SPI_OMAP24XX as module to get to mikrobus spi interface. - Commit message updated to indicate bloat w.r.t v6.3.1 rather than using random linux-next tag. V1: https://lore.kernel.org/r/20230311111022.23717-4-nm@ti.com arch/arm64/configs/defconfig | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig index 7790ee42c68a..ca3569261713 100644 --- a/arch/arm64/configs/defconfig +++ b/arch/arm64/configs/defconfig @@ -367,11 +367,13 @@ CONFIG_AT803X_PHY=y CONFIG_REALTEK_PHY=y CONFIG_ROCKCHIP_PHY=y CONFIG_DP83867_PHY=y +CONFIG_DP83TD510_PHY=y CONFIG_VITESSE_PHY=y CONFIG_CAN_FLEXCAN=m CONFIG_CAN_RCAR=m CONFIG_CAN_RCAR_CANFD=m CONFIG_CAN_MCP251XFD=m +CONFIG_MDIO_GPIO=y CONFIG_MDIO_BUS_MUX_MULTIPLEXER=y CONFIG_MDIO_BUS_MUX_MMIOREG=y CONFIG_USB_PEGASUS=m @@ -418,6 +420,7 @@ CONFIG_TOUCHSCREEN_EDT_FT5X06=m CONFIG_INPUT_MISC=y CONFIG_INPUT_PM8941_PWRKEY=y CONFIG_INPUT_PM8XXX_VIBRATOR=m +CONFIG_INPUT_TPS65219_PWRBUTTON=m CONFIG_INPUT_PWM_BEEPER=m CONFIG_INPUT_PWM_VIBRA=m CONFIG_INPUT_HISI_POWERKEY=y @@ -513,6 +516,7 @@ CONFIG_SPI_MESON_SPICC=m CONFIG_SPI_MESON_SPIFC=m CONFIG_SPI_MT65XX=y CONFIG_SPI_MTK_NOR=m +CONFIG_SPI_OMAP24XX=m CONFIG_SPI_ORION=y CONFIG_SPI_PL022=y CONFIG_SPI_ROCKCHIP=y @@ -670,6 +674,7 @@ CONFIG_MFD_SPMI_PMIC=y CONFIG_MFD_RK808=y CONFIG_MFD_SEC_CORE=y CONFIG_MFD_SL28CPLD=y +CONFIG_MFD_TPS65219=m CONFIG_MFD_ROHM_BD718XX=y CONFIG_MFD_WCD934X=m CONFIG_REGULATOR_FIXED_VOLTAGE=y @@ -699,6 +704,7 @@ CONFIG_REGULATOR_QCOM_SPMI=y CONFIG_REGULATOR_RK808=y CONFIG_REGULATOR_S2MPS11=y CONFIG_REGULATOR_TPS65132=m +CONFIG_REGULATOR_TPS65219=m CONFIG_REGULATOR_VCTRL=m CONFIG_RC_CORE=m CONFIG_RC_DECODERS=y @@ -1026,6 +1032,7 @@ CONFIG_RTC_DRV_RK808=m CONFIG_RTC_DRV_PCF85063=m CONFIG_RTC_DRV_PCF85363=m CONFIG_RTC_DRV_M41T80=m +CONFIG_RTC_DRV_BQ32K=m CONFIG_RTC_DRV_RX8581=m CONFIG_RTC_DRV_RV3028=m CONFIG_RTC_DRV_RV8803=m @@ -1045,6 +1052,7 @@ CONFIG_RTC_DRV_SNVS=m CONFIG_RTC_DRV_IMX_SC=m CONFIG_RTC_DRV_MT6397=m CONFIG_RTC_DRV_XGENE=y +CONFIG_RTC_DRV_TI_K3=m CONFIG_DMADEVICES=y CONFIG_DMA_BCM2835=y CONFIG_DMA_SUN6I=m -- 2.40.0 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH V2 0/3] arm64: dts/defconfig/binding: Add support for BeaglePlay 2023-03-16 15:21 [PATCH V2 0/3] arm64: dts/defconfig/binding: Add support for BeaglePlay Nishanth Menon ` (2 preceding siblings ...) 2023-03-16 15:21 ` [PATCH V2 3/3] arm64: defconfig: Enable drivers for BeaglePlay Nishanth Menon @ 2023-03-17 6:47 ` Dhruva Gole 2023-03-20 23:03 ` Nishanth Menon 4 siblings, 0 replies; 8+ messages in thread From: Dhruva Gole @ 2023-03-17 6:47 UTC (permalink / raw) To: Nishanth Menon, Krzysztof Kozlowski, Rob Herring, Arnd Bergmann Cc: linux-kernel, devicetree, linux-arm-kernel, Tero Kristo, Vignesh Raghavendra, Julien Panis, Bryan Brattlof, Andrew Davis, Jason Kridner, Robert Nelson Thanks for upstreaming! On 16/03/23 20:51, Nishanth Menon wrote: > Hi, > > BeagleBoard.org BeaglePlay[1][2] is an easy to use, affordable open source > hardware single board computer based on the Texas Instruments AM625 > SoC. Add the base support for the same. > > Bootlog: https://gist.github.com/nmenon/2e7647970a4d6af05017e545ac0f8218 > > Changes Since v1: (major ones) > - All patches updated > - signed-off-by order fixups > - Cleanup to drop errant pre-production board vestiges > - defconfig adds SPI to get to mikrobus spi interface. > > V1: https://lore.kernel.org/all/20230311111022.23717-1-nm@ti.com/ > > Nishanth Menon (1): > arm64: defconfig: Enable drivers for BeaglePlay > > Robert Nelson (2): > dt-bindings: arm: ti: Add BeaglePlay > arm64: dts: ti: Add k3-am625-beagleplay > > .../devicetree/bindings/arm/ti/k3.yaml | 1 + > arch/arm64/boot/dts/ti/Makefile | 1 + > .../arm64/boot/dts/ti/k3-am625-beagleplay.dts | 757 ++++++++++++++++++ > arch/arm64/configs/defconfig | 8 + > 4 files changed, 767 insertions(+) > create mode 100644 arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts > > [1] https://beagleplay.org/ > [2] https://git.beagleboard.org/beagleplay/beagleplay For the series, Reviewed-by: Dhruva Gole <d-gole@ti.com> -- Best regards, Dhruva Gole Texas Instruments Incorporated _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH V2 0/3] arm64: dts/defconfig/binding: Add support for BeaglePlay 2023-03-16 15:21 [PATCH V2 0/3] arm64: dts/defconfig/binding: Add support for BeaglePlay Nishanth Menon ` (3 preceding siblings ...) 2023-03-17 6:47 ` [PATCH V2 0/3] arm64: dts/defconfig/binding: Add support " Dhruva Gole @ 2023-03-20 23:03 ` Nishanth Menon 4 siblings, 0 replies; 8+ messages in thread From: Nishanth Menon @ 2023-03-20 23:03 UTC (permalink / raw) To: Krzysztof Kozlowski, Rob Herring, Arnd Bergmann, Nishanth Menon Cc: linux-kernel, devicetree, linux-arm-kernel, Tero Kristo, Vignesh Raghavendra, Julien Panis, Bryan Brattlof, Andrew Davis, Jason Kridner, Robert Nelson Hi Nishanth Menon, On Thu, 16 Mar 2023 10:21:40 -0500, Nishanth Menon wrote: > BeagleBoard.org BeaglePlay[1][2] is an easy to use, affordable open source > hardware single board computer based on the Texas Instruments AM625 > SoC. Add the base support for the same. > > Bootlog: https://gist.github.com/nmenon/2e7647970a4d6af05017e545ac0f8218 > > Changes Since v1: (major ones) > - All patches updated > - signed-off-by order fixups > - Cleanup to drop errant pre-production board vestiges > - defconfig adds SPI to get to mikrobus spi interface. > > [...] I have applied the following to branch ti-k3-dts-next on [1]. Thank you! [1/3] dt-bindings: arm: ti: Add BeaglePlay commit: 3cd557272ef0b1bbad3c5450f09629e451e101f3 [2/3] arm64: dts: ti: Add k3-am625-beagleplay commit: 2afe6a26744bf4245a6b33593a9c38e7cb464078 I have applied the following to branch ti-k3-config-next on [1]. [3/3] arm64: defconfig: Enable drivers for BeaglePlay commit: 673c8894d7d0124f14c900313d85dba0870bb7cc All being well this means that it will be integrated into the linux-next tree (usually sometime in the next 24 hours) and sent up the chain during the next merge window (or sooner if it is a relevant bug fix), however if problems are discovered then the patch may be dropped or reverted. You may get further e-mails resulting from automated or manual testing and review of the tree, please engage with people reporting problems and send followup patches addressing any issues that are reported if needed. If any updates are required or you are submitting further changes they should be sent as incremental updates against current git, existing patches will not be replaced. Please add any relevant lists and maintainers to the CCs when replying to this mail. [1] git://git.kernel.org/pub/scm/linux/kernel/git/ti/linux.git -- Regards, Nishanth Menon Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3 1A34 DDB5 849D 1736 249D _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2023-03-20 23:04 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-03-16 15:21 [PATCH V2 0/3] arm64: dts/defconfig/binding: Add support for BeaglePlay Nishanth Menon 2023-03-16 15:21 ` [PATCH V2 1/3] dt-bindings: arm: ti: Add BeaglePlay Nishanth Menon 2023-03-17 9:05 ` Krzysztof Kozlowski 2023-03-16 15:21 ` [PATCH V2 2/3] arm64: dts: ti: Add k3-am625-beagleplay Nishanth Menon 2023-03-16 15:43 ` Andrew Davis 2023-03-16 15:21 ` [PATCH V2 3/3] arm64: defconfig: Enable drivers for BeaglePlay Nishanth Menon 2023-03-17 6:47 ` [PATCH V2 0/3] arm64: dts/defconfig/binding: Add support " Dhruva Gole 2023-03-20 23:03 ` Nishanth Menon
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).