From nobody Tue Aug 16 12:25:51 2022 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4M6Vjq41YHz4Yyjj; Tue, 16 Aug 2022 12:25:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4M6Vjq3DFDz4Hxy; Tue, 16 Aug 2022 12:25:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1660652751; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6jZA1Urcblaw6B2Kz8xd/1aUxKJJ0St3muvfR0n9WxU=; b=wFLSuo97HD8/2HknTcTEeCiFsHTbsO6EeLZtsrU5l/dv/vyLeqO5iF1yru7SYaeCA8m0sc z5wJThwb8kZZnWL99KZBmPiMiLyWtOHgPfpEHnvtWKj7Unx9saZ16poWoWQfExIXe+utnD bhBobcEe3Lh5Dq3XuYuMicZp6sxNT9hgcBmgiFJY2bLdyBuDcXTlA5fPtihF/hTvN6MeCi ClqJGh70jo4EcMdgFNnTLAXc7Wua2TuxXHvBTzimuuLgvBJsAoxyC7EK0nRuMvNNf9kaWS ccYe93AdITXD5HpIHLrTKsxagyINPaZjsfkqR9BDwjKPA6OFeK+xhw5DvSwc5A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4M6Vjq21MMz18R4; Tue, 16 Aug 2022 12:25:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 27GCPpe8021276; Tue, 16 Aug 2022 12:25:51 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 27GCPp4e021275; Tue, 16 Aug 2022 12:25:51 GMT (envelope-from git) Date: Tue, 16 Aug 2022 12:25:51 GMT Message-Id: <202208161225.27GCPp4e021275@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Ganbold Tsagaankhuu Subject: git: 1331c0f44b6a - main - Add support for RockChip RK356X to DWC3 driver. For RK356x platform, we can set bit 26 of DWC3_GUCTL1 register for usb 2.0 device. List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ganbold X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 1331c0f44b6a3b6dec1fbd638103fa15bffac5d8 Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1660652751; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6jZA1Urcblaw6B2Kz8xd/1aUxKJJ0St3muvfR0n9WxU=; b=F0Bz3PBQ+E+hB8AJFvpfinE46r2nRvG1VTptUbQc1NzFKvl15rf0sPfzWP5AXT21oJPCEC ifSFLNiyWXG+UytXM+YEXOzIjVGClcA9mwdfSVSngkq0mVqA54CQyeNiaGx9l/QZ2kQpix jRB4pHd+8XMVhMMMh17tJIu017mavUpLc4WJAjYY2FjWYE5tvDMyCeCQrv8R3y7oy216hJ bmBtS3j5nqT49hyNSbVZFBR9lFWQsjWUkDt1mfGtlVKnC3Nw52X5oIOmabjquqnExkvltK uiwlODtUcFFYMsjJOxEX2YzCD+QqCQhtM5MUi6cA/0BSYc8hL2h/jZ7l+zJeGw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1660652751; a=rsa-sha256; cv=none; b=s1B/4mNLmj0bxe52K2ouxL3DOsAeF2AzaDSqOq+6s9PMn0tISkglBv4r9Lzf8Cx7M2kfBO 1xZgGDpqzUXYv8Gi4AaZ7jRNonxIEfPb/nndm2EP8dtYpe/YxIUuCAfQ3Nx1tNglfIyS2k +OhO/MuwWvJYdFEJ2ruL9fG3vq0Wcql1MKWmc3Ggx6JbytZUerWj1kSQI/ndVnIDYzGlTu jFEpRl+Bm2B3Vi/0IU0P2mu4HRYTw/098a38GflyZ5DhfPRvHZJYQ1nc6ZGcRa/38lPEJu Hi06hsZmPKdcvIDx9Fm3M+KsM9ZHA8nDoOz39ZVx0d0m5GYaN39AZVsLOvMxKw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by ganbold: URL: https://cgit.FreeBSD.org/src/commit/?id=1331c0f44b6a3b6dec1fbd638103fa15bffac5d8 commit 1331c0f44b6a3b6dec1fbd638103fa15bffac5d8 Author: Søren Schmidt AuthorDate: 2022-08-16 12:24:44 +0000 Commit: Ganbold Tsagaankhuu CommitDate: 2022-08-16 12:24:44 +0000 Add support for RockChip RK356X to DWC3 driver. For RK356x platform, we can set bit 26 of DWC3_GUCTL1 register for usb 2.0 device. Reviewed by: manu Differential Revision: https://reviews.freebsd.org/D36211 --- sys/arm64/rockchip/rk_dwc3.c | 6 +----- sys/dev/usb/controller/dwc3.c | 9 ++++++++- sys/dev/usb/controller/dwc3.h | 1 + 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/sys/arm64/rockchip/rk_dwc3.c b/sys/arm64/rockchip/rk_dwc3.c index a443438511ab..8582f7a86999 100644 --- a/sys/arm64/rockchip/rk_dwc3.c +++ b/sys/arm64/rockchip/rk_dwc3.c @@ -141,11 +141,7 @@ rk_dwc3_attach(device_t dev) clk_get_name(sc->clk_bus)); return (ENXIO); } - if (sc->type == RK3399) { - if (clk_get_by_ofw_name(dev, 0, "grf_clk", &sc->clk_grf) != 0) { - device_printf(dev, "Cannot get grf_clk clock\n"); - return (ENXIO); - } + if (clk_get_by_ofw_name(dev, 0, "grf_clk", &sc->clk_grf) == 0) { err = clk_enable(sc->clk_grf); if (err != 0) { device_printf(dev, "Could not enable clock %s\n", diff --git a/sys/dev/usb/controller/dwc3.c b/sys/dev/usb/controller/dwc3.c index 19237ef4c11d..2e8f868bc47b 100644 --- a/sys/dev/usb/controller/dwc3.c +++ b/sys/dev/usb/controller/dwc3.c @@ -366,6 +366,7 @@ snps_dwc3_common_attach(device_t dev, bool is_fdt) #ifdef FDT phandle_t node; phy_t usb2_phy, usb3_phy; + uint32_t reg; #endif int error, rid; @@ -403,7 +404,13 @@ snps_dwc3_common_attach(device_t dev, bool is_fdt) error = phy_get_by_ofw_name(dev, node, "usb3-phy", &usb3_phy); if (error == 0 && usb3_phy != NULL) phy_enable(usb3_phy); - + else { + reg = DWC3_READ(sc, DWC3_GUCTL1); + if (bootverbose) + device_printf(dev, "Forcing USB2 clock only\n"); + reg |= DWC3_GUCTL1_DEV_FORCE_20_CLK_FOR_30_CLK; + DWC3_WRITE(sc, DWC3_GUCTL1, reg); + } snps_dwc3_configure_phy(sc, node); skip_phys: #endif diff --git a/sys/dev/usb/controller/dwc3.h b/sys/dev/usb/controller/dwc3.h index 83951d327c8c..21a87a1917ee 100644 --- a/sys/dev/usb/controller/dwc3.h +++ b/sys/dev/usb/controller/dwc3.h @@ -49,6 +49,7 @@ #define DWC3_GUCTL1 0xc11c #define DWC3_GUCTL1_TX_IPGAP_LINECHECK_DIS (1 << 28) +#define DWC3_GUCTL1_DEV_FORCE_20_CLK_FOR_30_CLK (1 << 26) #define DWC3_GSNPSID 0xc120 #define DWC3_GGPIO 0xc124