From patchwork Mon Nov 13 14:26:56 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Th=C3=A9o_Lebrun?= X-Patchwork-Id: 13454050 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 6964CC4332F for ; Mon, 13 Nov 2023 14:27:46 +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:Cc:To:In-Reply-To:References:Message-Id :MIME-Version:Subject:Date:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=w95dZ7ZC6b/FCndqM5M/Zj75IUrk+iZixgeNsYJWyGE=; b=joZ+yMewllwmoD lsYySijl8W91H1mVC7cFILAFJiUfEHtQcjPrkw8WvavmPj2PHd4jj1kx4h7OjT3+lNgyrewbxwL1N 9nm+opPuJWtss/A/Ok0e8ZiJZC+dXzZA9kJhePEt9fV9KybXuyyrUTuNlQMss6yrkGkCoKo1iAuts KVNqqIR1XbmcZqWGa/+1acgpODe1PlBpADKetVB7zfJ+ggPRVAAY2Qs5LP9ic2X94tAfrouJ3h7wh iefBKaazKBjMvHCV6pjVRztDPnM7oqUJ8N5oyS3eX62mLeZ59GptHn+yIvYsmuNE/7hJVT72ZMT+h ZYJHUoremrligyCtlvUw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1r2XuI-00E8B3-12; Mon, 13 Nov 2023 14:27:18 +0000 Received: from relay5-d.mail.gandi.net ([217.70.183.197]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1r2Xu8-00E84N-2M for linux-arm-kernel@lists.infradead.org; Mon, 13 Nov 2023 14:27:11 +0000 Received: by mail.gandi.net (Postfix) with ESMTPSA id D83E21C000F; Mon, 13 Nov 2023 14:26:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1699885620; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=wEIgs122T7Asjcu3DAVwNs7eylVPunuGePaZEbl2tp8=; b=dNWCpFGY1qQrSRHjE5jAiv2SOMoC/Vkt74glt8+kW453OpsdimOQ6aw9eXp0Wr1Towbw5M Dn/7aBoG7qGp+huZcQjDhFZSDQBBatEWcfpoAP8PNAg5wW/CwA5iltmJyrI8+XpkdEwxTT kbj+dZIBiPnY+l3/TLvEV/Fkz1K/f3VenxYi3abxz0g8t+5qbTs9p5RCK+l0lmr/59QTxk M20tysL0nYfbuOdYylYb3UOX6T7ryx+nG65Rs9n3hNCx308YyEvh3tA9pfTUUWy8v1+pjw P9RsYCFAcjnNUVLxbN/I4qCdHxIHacs2i21h5n0UkZCsEbAZvCXoVdM9evsWpw== From: =?utf-8?q?Th=C3=A9o_Lebrun?= Date: Mon, 13 Nov 2023 15:26:56 +0100 Subject: [PATCH 1/6] dt-bindings: usb: ti,j721e-usb: add ti,j7200-usb compatible MIME-Version: 1.0 Message-Id: <20231113-j7200-usb-suspend-v1-1-ad1ee714835c@bootlin.com> References: <20231113-j7200-usb-suspend-v1-0-ad1ee714835c@bootlin.com> In-Reply-To: <20231113-j7200-usb-suspend-v1-0-ad1ee714835c@bootlin.com> To: Greg Kroah-Hartman , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Roger Quadros , Peter Chen , Pawel Laszczak , Nishanth Menon , Vignesh Raghavendra , Tero Kristo Cc: linux-usb@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, =?utf-8?q?Th=C3=A9o_Lebrun?= X-Mailer: b4 0.12.3 X-GND-Sasl: theo.lebrun@bootlin.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231113_062708_902552_E59B26D6 X-CRM114-Status: UNSURE ( 8.26 ) X-CRM114-Notice: Please train this message. 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 On this platform, the controller is reset on resume. This makes it have a different behavior from other platforms. Signed-off-by: Théo Lebrun Acked-by: Conor Dooley --- Documentation/devicetree/bindings/usb/ti,j721e-usb.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/usb/ti,j721e-usb.yaml b/Documentation/devicetree/bindings/usb/ti,j721e-usb.yaml index 95ff9791baea..77e0c0499936 100644 --- a/Documentation/devicetree/bindings/usb/ti,j721e-usb.yaml +++ b/Documentation/devicetree/bindings/usb/ti,j721e-usb.yaml @@ -12,6 +12,7 @@ maintainers: properties: compatible: oneOf: + - const: ti,j7200-usb - const: ti,j721e-usb - const: ti,am64-usb - items: From patchwork Mon Nov 13 14:26:57 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Th=C3=A9o_Lebrun?= X-Patchwork-Id: 13454048 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 C93C2C4332F for ; Mon, 13 Nov 2023 14:27:42 +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:Cc:To:In-Reply-To:References:Message-Id :MIME-Version:Subject:Date:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=zE6BHaDIbVEafPcVa7zk+4let5DUjxYDgJzCNpDWyRM=; b=4SxOGfdZn8Wj9Z npZOSn/ChUhwXCUckoUUF98KVAbfKjYCoZzqjh9fZyWwEAtkp9dSlMQFRjdaLKaka7zVjxJFvR/Pg FFnR9VZaEaklrfdfacXaiqMixdF942XuchVRTQm2iBjxxweBAUZHksGlIL0TEHrkeTcs1CGkxKbM1 HvXCo2yuW/x2ytNVkr02YYjCbHEcoHpMScgWl0vmmeemp/IgLcysdKmRPb7mdG6UklDlrPACukXL1 P8tyzPTnMsC7ElTPJs4zcIf7htc6WO+j6nVqVuY1JVjNEZuzRegji0ELMTtVBE53RPrk1zixX8Gut Q8wgWks1t5RladBkIEzw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1r2XuJ-00E8Bk-0B; Mon, 13 Nov 2023 14:27:19 +0000 Received: from relay5-d.mail.gandi.net ([2001:4b98:dc4:8::225]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1r2Xu8-00E84T-1R for linux-arm-kernel@lists.infradead.org; Mon, 13 Nov 2023 14:27:11 +0000 Received: by mail.gandi.net (Postfix) with ESMTPSA id 8C3A21C0015; Mon, 13 Nov 2023 14:27:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1699885621; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=GSimQIqa/8SepKg3uis9mexXr+RooQka7AQUj0ZMCxM=; b=SwUcstoMkO51WegbzPUOXINPZ7NYGCDMsSX0TGQ1JTX8616YqGNMPNTIaMYNIdWQ35Dku+ QmWV2FEHBVVZBsexgmEjdOmjFtlIq+ydInNn6XP2nZPQj55mglPNuuAyYqHwiITK75nWAC VzBCcYJvpz7H087K6HdZz5+obEe/2eOZnvxwUb5P0L65KMHQfR4r/KZrxmelOxS5Fvq9CQ NkXbPlSCOKL2S6v+1o1YlB9fCcBiQeDl5T+U4BF3PbBXFYe4Ud4wpofFGQK6Z+G2JjFI8E i07xwHxck7QCcudy3pCixOhdQW/ekohVwHujrytfq81jMmf0ctoZNe/43FdDLQ== From: =?utf-8?q?Th=C3=A9o_Lebrun?= Date: Mon, 13 Nov 2023 15:26:57 +0100 Subject: [PATCH 2/6] usb: cdns3-ti: move reg writes from probe into an init_hw helper MIME-Version: 1.0 Message-Id: <20231113-j7200-usb-suspend-v1-2-ad1ee714835c@bootlin.com> References: <20231113-j7200-usb-suspend-v1-0-ad1ee714835c@bootlin.com> In-Reply-To: <20231113-j7200-usb-suspend-v1-0-ad1ee714835c@bootlin.com> To: Greg Kroah-Hartman , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Roger Quadros , Peter Chen , Pawel Laszczak , Nishanth Menon , Vignesh Raghavendra , Tero Kristo Cc: linux-usb@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, =?utf-8?q?Th=C3=A9o_Lebrun?= X-Mailer: b4 0.12.3 X-GND-Sasl: theo.lebrun@bootlin.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231113_062708_784498_CE296B3E X-CRM114-Status: GOOD ( 15.97 ) 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 The hardware initialisation register write sequence is only used at probe. To support suspend/resume with a controller losing power, we must redo this sequence of writes. Extract the register write sequence to a new cdns_ti_init_hw function to reuse it later down the road, at resume. We keep the devicetree-parsing aspect of the sequence in probe & add a new field in the private struct to remember the USB2 refclk rate code computation result. Signed-off-by: Théo Lebrun --- drivers/usb/cdns3/cdns3-ti.c | 76 ++++++++++++++++++++++++-------------------- 1 file changed, 41 insertions(+), 35 deletions(-) diff --git a/drivers/usb/cdns3/cdns3-ti.c b/drivers/usb/cdns3/cdns3-ti.c index 5945c4b1e11f..c331bcd2faeb 100644 --- a/drivers/usb/cdns3/cdns3-ti.c +++ b/drivers/usb/cdns3/cdns3-ti.c @@ -57,6 +57,7 @@ struct cdns_ti { unsigned vbus_divider:1; struct clk *usb2_refclk; struct clk *lpm_clk; + int usb2_refclk_rate_code; }; static const int cdns_ti_rate_table[] = { /* in KHZ */ @@ -85,15 +86,50 @@ static inline void cdns_ti_writel(struct cdns_ti *data, u32 offset, u32 value) writel(value, data->usbss + offset); } +static void cdns_ti_init_hw(struct cdns_ti *data) +{ + u32 reg; + + /* assert RESET */ + reg = cdns_ti_readl(data, USBSS_W1); + reg &= ~USBSS_W1_PWRUP_RST; + cdns_ti_writel(data, USBSS_W1, reg); + + /* set static config */ + reg = cdns_ti_readl(data, USBSS_STATIC_CONFIG); + reg &= ~USBSS1_STATIC_PLL_REF_SEL_MASK; + reg |= data->usb2_refclk_rate_code << USBSS1_STATIC_PLL_REF_SEL_SHIFT; + + reg &= ~USBSS1_STATIC_VBUS_SEL_MASK; + if (data->vbus_divider) + reg |= 1 << USBSS1_STATIC_VBUS_SEL_SHIFT; + + cdns_ti_writel(data, USBSS_STATIC_CONFIG, reg); + reg = cdns_ti_readl(data, USBSS_STATIC_CONFIG); + + /* set USB2_ONLY mode if requested */ + reg = cdns_ti_readl(data, USBSS_W1); + if (data->usb2_only) + reg |= USBSS_W1_USB2_ONLY; + + /* set default modestrap */ + reg |= USBSS_W1_MODESTRAP_SEL; + reg &= ~USBSS_W1_MODESTRAP_MASK; + reg |= USBSS_MODESTRAP_MODE_NONE << USBSS_W1_MODESTRAP_SHIFT; + cdns_ti_writel(data, USBSS_W1, reg); + + /* de-assert RESET */ + reg |= USBSS_W1_PWRUP_RST; + cdns_ti_writel(data, USBSS_W1, reg); +} + static int cdns_ti_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; struct device_node *node = pdev->dev.of_node; struct cdns_ti *data; - int error; - u32 reg; - int rate_code, i; unsigned long rate; + int error, i; data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL); if (!data) @@ -133,8 +169,6 @@ static int cdns_ti_probe(struct platform_device *pdev) return -EINVAL; } - rate_code = i; - pm_runtime_enable(dev); error = pm_runtime_get_sync(dev); if (error < 0) { @@ -142,39 +176,11 @@ static int cdns_ti_probe(struct platform_device *pdev) goto err; } - /* assert RESET */ - reg = cdns_ti_readl(data, USBSS_W1); - reg &= ~USBSS_W1_PWRUP_RST; - cdns_ti_writel(data, USBSS_W1, reg); - - /* set static config */ - reg = cdns_ti_readl(data, USBSS_STATIC_CONFIG); - reg &= ~USBSS1_STATIC_PLL_REF_SEL_MASK; - reg |= rate_code << USBSS1_STATIC_PLL_REF_SEL_SHIFT; - - reg &= ~USBSS1_STATIC_VBUS_SEL_MASK; data->vbus_divider = device_property_read_bool(dev, "ti,vbus-divider"); - if (data->vbus_divider) - reg |= 1 << USBSS1_STATIC_VBUS_SEL_SHIFT; - - cdns_ti_writel(data, USBSS_STATIC_CONFIG, reg); - reg = cdns_ti_readl(data, USBSS_STATIC_CONFIG); - - /* set USB2_ONLY mode if requested */ - reg = cdns_ti_readl(data, USBSS_W1); data->usb2_only = device_property_read_bool(dev, "ti,usb2-only"); - if (data->usb2_only) - reg |= USBSS_W1_USB2_ONLY; - - /* set default modestrap */ - reg |= USBSS_W1_MODESTRAP_SEL; - reg &= ~USBSS_W1_MODESTRAP_MASK; - reg |= USBSS_MODESTRAP_MODE_NONE << USBSS_W1_MODESTRAP_SHIFT; - cdns_ti_writel(data, USBSS_W1, reg); + data->usb2_refclk_rate_code = i; - /* de-assert RESET */ - reg |= USBSS_W1_PWRUP_RST; - cdns_ti_writel(data, USBSS_W1, reg); + cdns_ti_init_hw(data); error = of_platform_populate(node, NULL, NULL, dev); if (error) { From patchwork Mon Nov 13 14:26:58 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Th=C3=A9o_Lebrun?= X-Patchwork-Id: 13454049 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 7C5EBC4167B for ; Mon, 13 Nov 2023 14:27:45 +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:Cc:To:In-Reply-To:References:Message-Id :MIME-Version:Subject:Date:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=uk0Jx3Zrkcic7DO6itkmpvhLP2Zvsfwe8uCL3IeBqEM=; b=Bi8QEtjn8PobMf xAx1lDzZUybUT7S5IMv56pJ6H5Bo17QXmimrCJN4m+DYtJfCqgzNFoWYY62MiyEURepTFtkQRlmNi /faWN3tz0LWhiFpdFR39rWNSuliBLPnUK5KMA2UN4jF1KD/oDM/Emz/42OwBvRpYFF5OlOHBLQ/qw idT67j8FmJ1195OiU0//SlRjTS259uD/heWCALcsZFNda/F2VMSY3Oth2nlbJF1vfh/+xSHttN3/z XEbIUOBGJGKJ6UlTq4L4VTO/QZi/6JFs06YmCzbdAoVCHhCilCjRDc85xgjMkeZ4DE+tlOqNB7ojd inS3W3L+qxcNKKsIgpjw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1r2XuH-00E89q-0A; Mon, 13 Nov 2023 14:27:17 +0000 Received: from relay5-d.mail.gandi.net ([217.70.183.197]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1r2Xu8-00E84a-2F for linux-arm-kernel@lists.infradead.org; Mon, 13 Nov 2023 14:27:11 +0000 Received: by mail.gandi.net (Postfix) with ESMTPSA id 4CF531C0003; Mon, 13 Nov 2023 14:27:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1699885621; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=xhQIX2l1AguLqLqqSuhrXlTHhHreB3Yx+m4gIExyzdk=; b=CdUrQ5QZKlKgfAHkaN5pRMkm6kJPA7FlAgX2N1M8ahm8ex2+uOgnaxX7lYbma/37xjoiRR XvjQ+AmQaJMrockgTuSlRkL1QUubiF49WGsh9YTkowiuuvRhl9EoaH3DspwDotkBdXLOwv LE9brLy6qOvyZkXRkYRhk8wg2GPX19qZGyr7ebhITZO+h+rXHfrYQk9V53UF5D5aVE3HeL XdU2nwVZ5T0MfN8IR33H+UiHkN7fy69Xr1hkKECt9SoTyZ5PR5IBBIj8p0aBPrddSnfhPS 4m30yACn8GeoehQ57l1oVuMsJrzUg2PcR25Enpzsly5sV9f6yLG5IeL/tKxM+g== From: =?utf-8?q?Th=C3=A9o_Lebrun?= Date: Mon, 13 Nov 2023 15:26:58 +0100 Subject: [PATCH 3/6] usb: cdns3-ti: add suspend/resume procedures for J7200 MIME-Version: 1.0 Message-Id: <20231113-j7200-usb-suspend-v1-3-ad1ee714835c@bootlin.com> References: <20231113-j7200-usb-suspend-v1-0-ad1ee714835c@bootlin.com> In-Reply-To: <20231113-j7200-usb-suspend-v1-0-ad1ee714835c@bootlin.com> To: Greg Kroah-Hartman , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Roger Quadros , Peter Chen , Pawel Laszczak , Nishanth Menon , Vignesh Raghavendra , Tero Kristo Cc: linux-usb@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, =?utf-8?q?Th=C3=A9o_Lebrun?= X-Mailer: b4 0.12.3 X-GND-Sasl: theo.lebrun@bootlin.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231113_062709_003625_5A3BBB3D X-CRM114-Status: GOOD ( 19.00 ) 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 Hardware initialisation is only done at probe. The J7200 USB controller is reset at resume because of power-domains toggling off & on. We therefore (1) toggle PM runtime at suspend/resume & (2) reconfigure the hardware at resume. Reuse the newly extracted cdns_ti_init_hw() function that contains the register write sequence. We guard this behavior based on compatible to avoid modifying the current behavior on other platforms. If the controller does not reset we do not want to touch PM runtime & do not want to redo reg writes. Signed-off-by: Théo Lebrun Reviewed-by: Gregory CLEMENT --- drivers/usb/cdns3/cdns3-ti.c | 48 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/drivers/usb/cdns3/cdns3-ti.c b/drivers/usb/cdns3/cdns3-ti.c index c331bcd2faeb..50b38c4b9c87 100644 --- a/drivers/usb/cdns3/cdns3-ti.c +++ b/drivers/usb/cdns3/cdns3-ti.c @@ -197,6 +197,50 @@ static int cdns_ti_probe(struct platform_device *pdev) return error; } +#ifdef CONFIG_PM + +static int cdns_ti_suspend(struct device *dev) +{ + struct cdns_ti *data = dev_get_drvdata(dev); + + if (!of_device_is_compatible(dev_of_node(dev), "ti,j7200-usb")) + return 0; + + pm_runtime_put_sync(data->dev); + + return 0; +} + +static int cdns_ti_resume(struct device *dev) +{ + struct cdns_ti *data = dev_get_drvdata(dev); + int ret; + + if (!of_device_is_compatible(dev_of_node(dev), "ti,j7200-usb")) + return 0; + + ret = pm_runtime_get_sync(dev); + if (ret < 0) { + dev_err(dev, "pm_runtime_get_sync failed: %d\n", ret); + goto err; + } + + cdns_ti_init_hw(data); + + return 0; + +err: + pm_runtime_put_sync(data->dev); + pm_runtime_disable(data->dev); + return ret; +} + +static const struct dev_pm_ops cdns_ti_pm_ops = { + SET_SYSTEM_SLEEP_PM_OPS(cdns_ti_suspend, cdns_ti_resume) +}; + +#endif /* CONFIG_PM */ + static int cdns_ti_remove_core(struct device *dev, void *c) { struct platform_device *pdev = to_platform_device(dev); @@ -218,6 +262,7 @@ static void cdns_ti_remove(struct platform_device *pdev) } static const struct of_device_id cdns_ti_of_match[] = { + { .compatible = "ti,j7200-usb", }, { .compatible = "ti,j721e-usb", }, { .compatible = "ti,am64-usb", }, {}, @@ -228,8 +273,9 @@ static struct platform_driver cdns_ti_driver = { .probe = cdns_ti_probe, .remove_new = cdns_ti_remove, .driver = { - .name = "cdns3-ti", + .name = "cdns3-ti", .of_match_table = cdns_ti_of_match, + .pm = pm_ptr(&cdns_ti_pm_ops), }, }; From patchwork Mon Nov 13 14:26:59 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Th=C3=A9o_Lebrun?= X-Patchwork-Id: 13454046 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 286A0C4332F for ; Mon, 13 Nov 2023 14:27:39 +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:Cc:To:In-Reply-To:References:Message-Id :MIME-Version:Subject:Date:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=0ODUxi7hiMWcgFYZIqwwNnHchpM/Wnj9inWK2EFA6To=; b=n1nZp18ka2ylla bc+RE0wQgbupOT42I7uJnZ0FUJ0L55ZcbLirjzUdWw0J9sEGvSUeggrH+BL06mTVvxxy0Qo+VWAJO 6EYgQYjnUPbz/Iyu/cN8A/Q28s5E6tlHD9EBuR22i6wxK8GtHXpl1lMSfO0SxvruN/2XIhHewNl3Y DKY9Ur2qurN3fVheikGL1Z867LwC8pRYYLTpd9IKn0zMCqhaKHW6PLkrMobyglZUWMXbP+l01BC+A ZjgzXlfPs6bmvReAWK5Q9OeEDwq2bGzY9mU8GJDcei+q2JRCTMETp4Ncnw0goayQgcCyn0QQyTtVy lDGwTf9JuWLiwWr8Nobg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1r2XuH-00E8A9-22; Mon, 13 Nov 2023 14:27:17 +0000 Received: from relay5-d.mail.gandi.net ([2001:4b98:dc4:8::225]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1r2Xu8-00E84e-1O for linux-arm-kernel@lists.infradead.org; Mon, 13 Nov 2023 14:27:11 +0000 Received: by mail.gandi.net (Postfix) with ESMTPSA id F36D91C0006; Mon, 13 Nov 2023 14:27:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1699885622; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=cnUtq32WECjfa76r/drw3nv80tgUh5X0WPjXLzFlw28=; b=dkrLrBm0G6WnQIfo4v7EkNmhc1fxeqZv1l6opb3gjHwULojiv5p/NaJkGUcgKv6etaoTPi 0ADc6WeA4CdTabdx64+7Gy6f75FiUnUNQLtLQseNQx/zupfA/EeObKE/1sR3HGVLTDLlHM Z7kk8kfQ1SjxnzJwKIPBztWSCscdZ887WmLlRhjPQw8cKbTzt9uJ1yImGdhxThhyNu2gcI mNkXD5ji2f8B+Vz9TPGfvS9qEzz+GHVuLlueiKEMLpXbzezYnSKIVFa21m+qkzSOiKy7Ic 4YXN4WaS+eim3Llkje2kUE2pwefMyWZL7qdftfkh4ktna5b+quJLChPti4S6Ew== From: =?utf-8?q?Th=C3=A9o_Lebrun?= Date: Mon, 13 Nov 2023 15:26:59 +0100 Subject: [PATCH 4/6] usb: cdns3: support power-off of controller when in host role MIME-Version: 1.0 Message-Id: <20231113-j7200-usb-suspend-v1-4-ad1ee714835c@bootlin.com> References: <20231113-j7200-usb-suspend-v1-0-ad1ee714835c@bootlin.com> In-Reply-To: <20231113-j7200-usb-suspend-v1-0-ad1ee714835c@bootlin.com> To: Greg Kroah-Hartman , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Roger Quadros , Peter Chen , Pawel Laszczak , Nishanth Menon , Vignesh Raghavendra , Tero Kristo Cc: linux-usb@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, =?utf-8?q?Th=C3=A9o_Lebrun?= X-Mailer: b4 0.12.3 X-GND-Sasl: theo.lebrun@bootlin.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231113_062708_764186_71A0E9E3 X-CRM114-Status: GOOD ( 17.33 ) 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 The controller is not being reconfigured at resume. Change resume to redo hardware config if quirk CDNS3_RESET_ON_RESUME is active. Platform data comes from the parent driver (eg cdns3-ti). The quirk should be passed if the platform driver knows that the controller might be in reset state at resume. We do NOT reconfigure the hardware without this quirk to avoid losing state if we did a suspend without reset. If the quirk is on, we notify the xHCI subsystem that: 1. We reset on resume. It will therefore redo the xHC init & trigger such message as "root hub lost power or was reset" in dmesg. 2. It should disable/enable clocks on suspend/resume. This does not matter on our platform as xhci-plat does not get access to any clock but it would be the right thing to do if we indeed had such clocks. Signed-off-by: Théo Lebrun --- drivers/usb/cdns3/core.h | 1 + drivers/usb/cdns3/host.c | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/drivers/usb/cdns3/core.h b/drivers/usb/cdns3/core.h index 81a9c9d6be08..7487067ba23f 100644 --- a/drivers/usb/cdns3/core.h +++ b/drivers/usb/cdns3/core.h @@ -44,6 +44,7 @@ struct cdns3_platform_data { bool suspend, bool wakeup); unsigned long quirks; #define CDNS3_DEFAULT_PM_RUNTIME_ALLOW BIT(0) +#define CDNS3_RESET_ON_RESUME BIT(1) }; /** diff --git a/drivers/usb/cdns3/host.c b/drivers/usb/cdns3/host.c index 6164fc4c96a4..a81019a7c8cc 100644 --- a/drivers/usb/cdns3/host.c +++ b/drivers/usb/cdns3/host.c @@ -88,6 +88,9 @@ static int __cdns_host_init(struct cdns *cdns) goto err1; } + if (cdns->pdata && cdns->pdata->quirks & CDNS3_RESET_ON_RESUME) + cdns->xhci_plat_data->quirks |= XHCI_RESET_ON_RESUME | XHCI_SUSPEND_RESUME_CLKS; + if (cdns->pdata && (cdns->pdata->quirks & CDNS3_DEFAULT_PM_RUNTIME_ALLOW)) cdns->xhci_plat_data->quirks |= XHCI_DEFAULT_PM_RUNTIME_ALLOW; @@ -124,6 +127,18 @@ static void cdns_host_exit(struct cdns *cdns) cdns_drd_host_off(cdns); } +static int cdns_host_suspend(struct cdns *cdns, bool do_wakeup) +{ + if (!do_wakeup) + cdns_drd_host_off(cdns); + return 0; +} + +static int cdns_host_resume(struct cdns *cdns, bool hibernated) +{ + return cdns_drd_host_on(cdns); +} + int cdns_host_init(struct cdns *cdns) { struct cdns_role_driver *rdrv; @@ -137,6 +152,11 @@ int cdns_host_init(struct cdns *cdns) rdrv->state = CDNS_ROLE_STATE_INACTIVE; rdrv->name = "host"; + if (cdns->pdata && cdns->pdata->quirks & CDNS3_RESET_ON_RESUME) { + rdrv->suspend = cdns_host_suspend; + rdrv->resume = cdns_host_resume; + } + cdns->roles[USB_ROLE_HOST] = rdrv; return 0; From patchwork Mon Nov 13 14:27:00 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Th=C3=A9o_Lebrun?= X-Patchwork-Id: 13454045 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 AA354C4332F for ; Mon, 13 Nov 2023 14:27:33 +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:Cc:To:In-Reply-To:References:Message-Id :MIME-Version:Subject:Date:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=yHyWCu/0WI6eGiYrxcs5x/iM76igbhOTjZ/57wgZbz0=; b=ygPCaiVobD3vmQ kOfy48zjFeMx0fOB1MtIRY6y6X/jhonijs5hUOfinygKr89CVZVtC0dVi46XvdyfWJ8IWSF1BhomD fJqtNKF2BXnxw+DpagmBrJz5SfqOZGaHcBJvsBVgfRCwWwaKs/VnkdgNJFlp304wXPIn7pFYrB7XR /yQOA6WSDKFsV+ZfuaFTe718WPGWi9/IU/BNINEDx9Np4WDHXUhitH4w1HXWviwfuEzLo5kjcGNxf o+y+7/xL7aez76YY+uP3Zd69zYGqhmVuKZSE9cIG+/iANf5A58tS0Dm0uQG9PMo+5TPvk4WFmJ/cJ qe5+Ehgr0TkO8XM9KmhA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1r2XuC-00E87u-0m; Mon, 13 Nov 2023 14:27:12 +0000 Received: from relay5-d.mail.gandi.net ([2001:4b98:dc4:8::225]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1r2Xu8-00E84i-1V for linux-arm-kernel@lists.infradead.org; Mon, 13 Nov 2023 14:27:10 +0000 Received: by mail.gandi.net (Postfix) with ESMTPSA id 9F7B31C0012; Mon, 13 Nov 2023 14:27:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1699885623; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=k+i4FLnvd6XaZ4FK4Rv/lHlLAWGwtUlxb23vylnIS6g=; b=iGLuVOPw+l/CxkdcZ/4FKg7+dIPMY8gL2CbmKr/0Umw9RnIJxa4RBep3RmGFRt7kBhrULY VwDCidB9ZXtJYNGEpMm+OebAMZUXYfTlOC6WPRXCsQDlE1rFkoETqtaBtODxEpHk8vM0Bx LvlOx6U2BL5fGVNNpN7HaBySe3mYNLBKTD5yVXxf6L9o/9DkK2O9Yc7v4HMH5ikcI5xrYs hhMFaP0Q7LaWWeg4Tl1vJKHTS/U2TKBee34xMElK4UoDmNjz25wzhPMHV0ugN4Xb5s/+Ze rxZOWCT2xetF5zM9gJBUSr2jeXjWlU+EC2QJA2RM+Z+BtYedyq0w4twkS9L2XA== From: =?utf-8?q?Th=C3=A9o_Lebrun?= Date: Mon, 13 Nov 2023 15:27:00 +0100 Subject: [PATCH 5/6] usb: cdns3-ti: notify cdns core that hardware resets across suspend on J7200 MIME-Version: 1.0 Message-Id: <20231113-j7200-usb-suspend-v1-5-ad1ee714835c@bootlin.com> References: <20231113-j7200-usb-suspend-v1-0-ad1ee714835c@bootlin.com> In-Reply-To: <20231113-j7200-usb-suspend-v1-0-ad1ee714835c@bootlin.com> To: Greg Kroah-Hartman , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Roger Quadros , Peter Chen , Pawel Laszczak , Nishanth Menon , Vignesh Raghavendra , Tero Kristo Cc: linux-usb@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, =?utf-8?q?Th=C3=A9o_Lebrun?= X-Mailer: b4 0.12.3 X-GND-Sasl: theo.lebrun@bootlin.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231113_062708_662071_3303C411 X-CRM114-Status: GOOD ( 14.34 ) 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 Use the CDNS3_RESET_ON_RESUME quirk flag to inform the cdns3 core that our J7200 USB controller will lose power during suspend. It therefore must be reconfigured when we resume. Signed-off-by: Théo Lebrun --- drivers/usb/cdns3/cdns3-ti.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/drivers/usb/cdns3/cdns3-ti.c b/drivers/usb/cdns3/cdns3-ti.c index 50b38c4b9c87..c65714c783fb 100644 --- a/drivers/usb/cdns3/cdns3-ti.c +++ b/drivers/usb/cdns3/cdns3-ti.c @@ -16,6 +16,7 @@ #include #include #include +#include "core.h" /* USB Wrapper register offsets */ #define USBSS_PID 0x0 @@ -127,6 +128,7 @@ static int cdns_ti_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; struct device_node *node = pdev->dev.of_node; + const struct of_dev_auxdata *auxdata; struct cdns_ti *data; unsigned long rate; int error, i; @@ -182,7 +184,8 @@ static int cdns_ti_probe(struct platform_device *pdev) cdns_ti_init_hw(data); - error = of_platform_populate(node, NULL, NULL, dev); + auxdata = of_device_get_match_data(dev); + error = of_platform_populate(node, NULL, auxdata, dev); if (error) { dev_err(dev, "failed to create children: %d\n", error); goto err; @@ -261,8 +264,20 @@ static void cdns_ti_remove(struct platform_device *pdev) platform_set_drvdata(pdev, NULL); } +static struct cdns3_platform_data cdns_ti_j7200_pdata = { + .quirks = CDNS3_RESET_ON_RESUME, +}; + +static const struct of_dev_auxdata cdns_ti_j7200_auxdata[] = { + { + .compatible = "cdns,usb3", + .platform_data = &cdns_ti_j7200_pdata, + }, + {}, +}; + static const struct of_device_id cdns_ti_of_match[] = { - { .compatible = "ti,j7200-usb", }, + { .compatible = "ti,j7200-usb", .data = cdns_ti_j7200_auxdata, }, { .compatible = "ti,j721e-usb", }, { .compatible = "ti,am64-usb", }, {}, From patchwork Mon Nov 13 14:27:01 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Th=C3=A9o_Lebrun?= X-Patchwork-Id: 13454047 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 F135CC4167B for ; Mon, 13 Nov 2023 14:27:40 +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:Cc:To:In-Reply-To:References:Message-Id :MIME-Version:Subject:Date:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=F1n8WmeT3KJ16EX9sUTGebaRteT8VoYQGfr7sxfDF5I=; b=UHnYj+NdgVbm35 TNvgD240bd8K+vA2Iag4XRXl53eb1XFH/HDPkTGJQ3wrvC3Y8LAU3EvCZrGZTIimlKjNr4Dm3pe6J bguHMxWXciR9sqZ2kZIouXGkUgX02pSLYkbOxHzPWS/PLJRI226u9yEPajFqxEd7g0u3xnX2LiqXl imKjnykP4zjRzFa0qFeDaR9x/nH/yF3ZGLS+2TCyL4m7vKm7ollHmxkw6KdKcC69J4ZReGJKsnctv j324XMHzg3WPfaT4k5J0jyqqjBAjMSShW3XMgTyw/gwO31kdoP66UazBXUaBrIjFrPHgLG4RyAc1T gRocyJBOSJU6dco5nxkQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1r2XuB-00E87I-1O; Mon, 13 Nov 2023 14:27:11 +0000 Received: from relay5-d.mail.gandi.net ([2001:4b98:dc4:8::225]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1r2Xu8-00E84l-1a for linux-arm-kernel@lists.infradead.org; Mon, 13 Nov 2023 14:27:10 +0000 Received: by mail.gandi.net (Postfix) with ESMTPSA id 4C9EF1C001D; Mon, 13 Nov 2023 14:27:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1699885623; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=xSePrEltdrZVOTvOhxdlRrK/qcL9Ks2P2izMU5tje1Y=; b=JKEFIsKBpS7AxZ3+kCpMqv8P5Lm/HTtIKtvBs8c7H0q2fKGbGECmfrHKImDfvuhobhcZ1u Gev9AUbdxWIBRLqbHb9k+OlVwvxQ+DY57PY32FuoA6asoyuyGrY/3aU1cw9zXPwh40A6Fl GkGACM+hTd3rwNT/kPle3JVOlWyYr2W7uGhaaJ0LHKZIJRVeUdOzSgyQm4/QJvm8+TYPlJ 6zPY419LPYhfOWk8JRyDs1PWuCrxJXCxFtTxK1QPgkK2j2S5NxvA9kO5dbHI6Fl56yOGMF IXVctc1Up4doHSAd2pWgQRfsBDo87v3jFFRcn3Zy/HQI2ZibhVwnDVX29lxXVg== From: =?utf-8?q?Th=C3=A9o_Lebrun?= Date: Mon, 13 Nov 2023 15:27:01 +0100 Subject: [PATCH 6/6] arm64: dts: ti: k3-j7200: use J7200-specific USB compatible MIME-Version: 1.0 Message-Id: <20231113-j7200-usb-suspend-v1-6-ad1ee714835c@bootlin.com> References: <20231113-j7200-usb-suspend-v1-0-ad1ee714835c@bootlin.com> In-Reply-To: <20231113-j7200-usb-suspend-v1-0-ad1ee714835c@bootlin.com> To: Greg Kroah-Hartman , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Roger Quadros , Peter Chen , Pawel Laszczak , Nishanth Menon , Vignesh Raghavendra , Tero Kristo Cc: linux-usb@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, =?utf-8?q?Th=C3=A9o_Lebrun?= X-Mailer: b4 0.12.3 X-GND-Sasl: theo.lebrun@bootlin.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231113_062708_672618_B5F6839C X-CRM114-Status: GOOD ( 11.18 ) 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 On our platform, suspend-to-idle or suspend-to-RAM turn the controller off thanks to a power-domain. This compatible triggers reset on resume behavior to reconfigure the hardware. Signed-off-by: Théo Lebrun --- arch/arm64/boot/dts/ti/k3-j7200-main.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/ti/k3-j7200-main.dtsi b/arch/arm64/boot/dts/ti/k3-j7200-main.dtsi index 709081cd1e7f..581905d9199e 100644 --- a/arch/arm64/boot/dts/ti/k3-j7200-main.dtsi +++ b/arch/arm64/boot/dts/ti/k3-j7200-main.dtsi @@ -788,7 +788,7 @@ pcie1_ep: pcie-ep@2910000 { }; usbss0: cdns-usb@4104000 { - compatible = "ti,j721e-usb"; + compatible = "ti,j7200-usb"; reg = <0x00 0x4104000 0x00 0x100>; dma-coherent; power-domains = <&k3_pds 288 TI_SCI_PD_EXCLUSIVE>;