From nobody Sun May 4 17:09:30 2025 X-Original-To: dev-commits-src-main@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 4ZrB3H447lz5tyTl; Sun, 04 May 2025 17:09:31 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZrB3H1CVpz44RM; Sun, 04 May 2025 17:09:31 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746378571; 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=BZN/24s48tbh4sI7p0hQtUTABtHXX0fd2kuuB+iucgA=; b=CWRGuPlKreQWIlPUQukpkFn9kFIocUv4hreeQ3PO+Pqs18VvYrzjOzZ9xJ+1WNPA+C1GOn FQMdJYeHI93yLe4GeGck9F7PfaDX8MRI0xF7YXsMwlotnH4mbtWVBoqK4lcJdit8P14Nn9 oTYWm/9gD31pX0SvdOgzqP1sOKssZBzvFlczrOL+up3e7XK80Z+fuUUKQ/UODpgIPoafXK h+1ZDK5xLUDvYoWjDPg65ic41cAzBlzzvEjX8/tRt+rTnkIgYPuK462fs/9rJSt6cY4hTN WSApqmSHxh3voU3tJlw7sxxvYboIFRK3h97QMLnevtHed0OqUpySmI39vLDkRA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746378571; 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=BZN/24s48tbh4sI7p0hQtUTABtHXX0fd2kuuB+iucgA=; b=N8wBi9cUnEnFEr81p1egsB+QNgiqG/jxtnT52F6ZbBvgMjl8O1akEQ0cL1FI5ZpGEUrnDh V5qHqOxhxGmuc6zJX6wTVvk72OEe10mEuvRZYw6MWMNbEIjxl0ZFuLLie7JU3uTyeKcyvd 4OxS3g7VyIA2pk50Qtr+3vo7Y7FsBHSQNoxfuSh8yqwwOq140MD1ATgHZ/ltk/1Y/FuP1k TLLqVwqjaBj25SrrmSXR4erFGxmZu547y/zHPIrK88WuZyNDZDMV/X8erTTkPF700Wb8nE 2AXO9JNzR115Clur9515sk+CkjLX6rwnNIcDP0eeTi8qlp4hjC93mCiqTjLikQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746378571; a=rsa-sha256; cv=none; b=JKTwONh1fTnF85bljiL47ZwtjlEeRixi26xDVCXG04IbSxDiInZ0XtzCCUuBEpd7eT/zHl ylIO78RVDvPS0ufp4MwNcHglrghMMnPbUI/EEK0M2xnKR3HznRToR2v1iCprDLZuNoEy0o 5p07gOUoyBu5qxTmhGYM+PP/LMlE3DYIbFNzKWy8o6dHvmDZ942WEdJXnRIEzgChdYlryh TF1kuXcmcFgsqvjqWfgKgUwiQc4IWgAObNQj56Nh/UBHBscWAwjJim+Z5urUOPeIgvcCHr ZT2WkVuHAUfy9yu8TAFOFVST+YjT/zRivQ0RTg4zSMJNxvfEib33rENCutgK2w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZrB3G30x3zdMF; Sun, 04 May 2025 17:09:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 544H9Urm060555; Sun, 4 May 2025 17:09:30 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 544H9UCb060553; Sun, 4 May 2025 17:09:30 GMT (envelope-from git) Date: Sun, 4 May 2025 17:09:30 GMT Message-Id: <202505041709.544H9UCb060553@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Michal Meloun Subject: git: 71279c158005 - main - rk3568 pcie: Do not require optional FDT properties. List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mmel X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 71279c158005ee5c2cca2e5c19158237119e5286 Auto-Submitted: auto-generated The branch main has been updated by mmel: URL: https://cgit.FreeBSD.org/src/commit/?id=71279c158005ee5c2cca2e5c19158237119e5286 commit 71279c158005ee5c2cca2e5c19158237119e5286 Author: Michal Meloun AuthorDate: 2025-02-18 14:39:15 +0000 Commit: Michal Meloun CommitDate: 2025-05-04 11:48:47 +0000 rk3568 pcie: Do not require optional FDT properties. - "vpcie3v3-supply" is documented as an optional, do not require it. - fix handling of the another optional property "reset-gpios". - while I'm in, fix errors reporting in rk3568_pcie_init_soc() MFC after: 2 weeks Reviewed by: andrew Differential Revision: https://reviews.freebsd.org/D50102 --- sys/arm64/rockchip/rk3568_pcie.c | 62 ++++++++++++++++++++++++++++------------ 1 file changed, 43 insertions(+), 19 deletions(-) diff --git a/sys/arm64/rockchip/rk3568_pcie.c b/sys/arm64/rockchip/rk3568_pcie.c index 9e3a1fa054cc..ac9d0a713886 100644 --- a/sys/arm64/rockchip/rk3568_pcie.c +++ b/sys/arm64/rockchip/rk3568_pcie.c @@ -139,21 +139,43 @@ rk3568_pcie_init_soc(device_t dev) int err, count; bool status; + /* Assert PCIe reset */ + if (sc->reset_gpio != NULL) { + if (gpio_pin_setflags(sc->reset_gpio, GPIO_PIN_OUTPUT)) { + device_printf(dev, "Could not setup PCIe reset\n"); + return (ENXIO); + } + if (gpio_pin_set_active(sc->reset_gpio, true)) { + device_printf(dev, "Could not set PCIe reset\n"); + return (ENXIO); + } + } + /* Assert reset */ - if (hwreset_assert(sc->hwreset)) + if (hwreset_assert(sc->hwreset)) { device_printf(dev, "Could not assert reset\n"); + return (ENXIO); + } /* Powerup PCIe */ - if (regulator_enable(sc->regulator)) - device_printf(dev, "Cannot enable regulator\n"); + if (sc->regulator != NULL) { + if (regulator_enable(sc->regulator)) { + device_printf(dev, "Cannot enable regulator\n"); + return (ENXIO); + } + } /* Enable PHY */ - if (phy_enable(sc->phy)) + if (phy_enable(sc->phy)) { device_printf(dev, "Cannot enable phy\n"); + return (ENXIO); + } /* Deassert reset */ - if (hwreset_deassert(sc->hwreset)) + if (hwreset_deassert(sc->hwreset)) { device_printf(dev, "Could not deassert reset\n"); + return (ENXIO); + } /* Enable clocks */ if ((err = clk_enable(sc->aclk_mst))) { @@ -183,7 +205,7 @@ rk3568_pcie_init_soc(device_t dev) bus_write_4(sc->apb_res, PCIE_CLIENT_GENERAL_CON, (DEVICE_TYPE_MASK << 16) | DEVICE_TYPE_RC); - /* Assert reset PCIe */ + /* Deassert PCIe reset */ if ((err = gpio_pin_set_active(sc->reset_gpio, false))) device_printf(dev, "reset_gpio set failed\n"); @@ -193,9 +215,13 @@ rk3568_pcie_init_soc(device_t dev) (LINK_REQ_RST_GRT | LTSSM_ENABLE)); DELAY(100000); - /* Release reset */ - if ((err = gpio_pin_set_active(sc->reset_gpio, true))) - device_printf(dev, "reset_gpio release failed\n"); + /* Release PCIe reset */ + if (sc->reset_gpio != NULL) { + if (gpio_pin_set_active(sc->reset_gpio, true)) { + device_printf(dev, "Could not release PCIe reset"); + return (ENXIO); + } + } /* Wait for link up/stable */ for (count = 20; count; count--) { @@ -301,8 +327,9 @@ rk3568_pcie_attach(device_t dev) } /* Get regulator if present */ - if (regulator_get_by_ofw_property(dev, 0, "vpcie3v3-supply", - &sc->regulator)) { + error = regulator_get_by_ofw_property(dev, 0, "vpcie3v3-supply", + &sc->regulator); + if (error != 0 && error != ENOENT) { device_printf(dev, "Cannot get regulator\n"); goto fail; } @@ -314,14 +341,11 @@ rk3568_pcie_attach(device_t dev) } /* Get GPIO reset */ - if (OF_hasprop(sc->node, "reset-gpios")) { - if (gpio_pin_get_by_ofw_property(dev, sc->node, "reset-gpios", - &sc->reset_gpio)) { - device_printf(dev, "Cannot get reset-gpios\n"); - goto fail; - } - gpio_pin_setflags(sc->reset_gpio, GPIO_PIN_OUTPUT); - gpio_pin_set_active(sc->reset_gpio, true); + error = gpio_pin_get_by_ofw_property(dev, sc->node, "reset-gpios", + &sc->reset_gpio); + if (error != 0 && error != ENOENT) { + device_printf(dev, "Cannot get reset-gpios\n"); + goto fail; } /* Get clocks */