From patchwork Tue Nov 21 12:24:41 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tony Lindgren X-Patchwork-Id: 13462968 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 4AD49C61D92 for ; Tue, 21 Nov 2023 12:25:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-ID:Date:Subject:Cc :To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=O29ku2HlLauoa/hs4mJsaIuS9nLwWyzzcZ1K3iADkK0=; b=UKui89cBI22udM d1ITGuD8tytqAVb+FdPBHtmQgtlNjj2vPafm9WWfSgKz8mYcvRh29BaULmziipS111QRmYKJlZ6vo cHEVbYhTIDlLVrhZw3Db8ZTSV8POy0V2hfoTE5/GdQdVq60M3vvGRBnQuMq8BFkvS4CA1uVc+quHE ya0YD3dNl+fraG+SZbhUUfFNEIduWodm1UMO2tRb+fpjTKadB0S+4ymn0JPpDMHKODkJMq429BLQD ugmLzgk+ggPJn/5fpHrxr8CEBQKtFb4YrHhDWEEOXwP4DZrUNXL8DI7XuDcgRLPEjF5Ic2++H0sgT EkJD3itoUKJcCDHGJElQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1r5PoQ-00Ghgy-22; Tue, 21 Nov 2023 12:25:06 +0000 Received: from muru.com ([72.249.23.125]) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1r5PoN-00GhgG-1b for linux-arm-kernel@lists.infradead.org; Tue, 21 Nov 2023 12:25:05 +0000 Received: from hillo.muru.com (localhost [127.0.0.1]) by muru.com (Postfix) with ESMTP id 2811780CC; Tue, 21 Nov 2023 12:24:57 +0000 (UTC) From: Tony Lindgren To: Nishanth Menon , Vignesh Raghavendra Cc: devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Aswath Govindraju Subject: [PATCH] arm64: dts: ti: k3-am625-sk: Add support for WL1837 module onboard Date: Tue, 21 Nov 2023 14:24:41 +0200 Message-ID: <20231121122441.64385-1-tony@atomide.com> X-Mailer: git-send-email 2.42.1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231121_042503_598233_BA71D22B X-CRM114-Status: GOOD ( 13.20 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Vignesh Raghavendra WL1837 WLAN card is present on the original AM625 SK board. It communicates with the SoC using 4 bit SDIO through the second instance of MMCSD. Starting with SK-AM62B, there is a M.2 WLAN device connector instead of the integrated WL1837 WLAN. The M.2 connector should be handled separately in the k3-am62a.dtsi and k3-am62b.dtsi files as needed. Note that WLAN currently needs fw_devlink=permissive set on the command line. Not sure what is missing here but that seems like a separate change. Signed-off-by: Vignesh Raghavendra Signed-off-by: Aswath Govindraju [tony@atomide.com: updated for pinctrl, improved comments] Signed-off-by: Tony Lindgren --- arch/arm64/boot/dts/ti/k3-am625-sk.dts | 79 ++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) diff --git a/arch/arm64/boot/dts/ti/k3-am625-sk.dts b/arch/arm64/boot/dts/ti/k3-am625-sk.dts --- a/arch/arm64/boot/dts/ti/k3-am625-sk.dts +++ b/arch/arm64/boot/dts/ti/k3-am625-sk.dts @@ -103,6 +103,32 @@ vcc_1v8: regulator-5 { regulator-always-on; regulator-boot-on; }; + + wlan_lten: regulator-6 { + bootph-all; + compatible = "regulator-fixed"; + regulator-name = "wlan_lten"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + vin-supply = <&vcc_3v3_sys>; + gpios = <&exp1 11 GPIO_ACTIVE_LOW>; + }; + + wlan_en: regulator-7 { + /* OUTPUT of SN74AVC2T244DQMR */ + bootph-all; + compatible = "regulator-fixed"; + regulator-name = "wlan_en"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + enable-active-high; + regulator-always-on; + vin-supply = <&wlan_lten>; + gpios = <&main_gpio0 71 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&wlan_en_default_pins>; + }; }; &main_pmx0 { @@ -154,6 +180,33 @@ main_gpio1_ioexp_intr_pins_default: main-gpio1-ioexp-intr-default-pins { AM62X_IOPAD(0x01d4, PIN_INPUT, 7) /* (B15) UART0_RTSn.GPIO1_23 */ >; }; + + wlan_en_default_pins: wlan-en-default-pins { + bootph-all; + pinctrl-single,pins = < + AM62X_IOPAD(0x124, PIN_OUTPUT, 7) /* (A23) MMC2_SDCD.GPIO0_71 */ + >; + }; + + main_mmc2_default_pins: main-mmc2-default-pins { + bootph-all; + pinctrl-single,pins = < + AM62X_IOPAD(0x120, PIN_INPUT, 0) /* (C24) MMC2_CMD */ + AM62X_IOPAD(0x118, PIN_INPUT, 0) /* (D25) MMC2_CLK */ + AM62X_IOPAD(0x114, PIN_INPUT, 0) /* (B24) MMC2_DAT0 */ + AM62X_IOPAD(0x110, PIN_INPUT, 0) /* (C25) MMC2_DAT1 */ + AM62X_IOPAD(0x10c, PIN_INPUT, 0) /* (E23) MMC2_DAT2 */ + AM62X_IOPAD(0x108, PIN_INPUT, 0) /* (D24) MMC2_DAT3 */ + AM62X_IOPAD(0x11c, PIN_INPUT, 0) /* (#N/A) MMC2_CLKB */ + >; + }; + + main_wlirq_default_pins: main-wlirq-default-pins { + bootph-all; + pinctrl-single,pins = < + AM62X_IOPAD(0x128, PIN_INPUT, 7) /* (B23) MMC2_SDWP.GPIO0_72 */ + >; + }; }; &main_gpio0 { @@ -200,6 +253,32 @@ &sdhci1 { vqmmc-supply = <&vdd_sd_dv>; }; +&sdhci2 { + status = "okay"; + vmmc-supply = <&wlan_en>; + pinctrl-names = "default"; + pinctrl-0 = <&main_mmc2_default_pins>; + 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>; + + wlcore: wlcore@2 { + compatible = "ti,wl1837"; + reg = <2>; + pinctrl-names = "default"; + pinctrl-0 = <&main_wlirq_default_pins>; + interrupt-parent = <&main_gpio0>; + interrupts = <72 IRQ_TYPE_EDGE_FALLING>; + }; +}; + &cpsw3g { pinctrl-names = "default"; pinctrl-0 = <&main_rgmii1_pins_default>, <&main_rgmii2_pins_default>;