From nobody Tue Feb 22 08:58:50 2022 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 732CA19D83C3; Tue, 22 Feb 2022 08:58: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 4K2tPk5KGVz3pWw; Tue, 22 Feb 2022 08:58:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1645520330; 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=ULVhwT1L3O8rQFrAEHTNpXYsf4GLsVuMAXErWKjOuFE=; b=KU7S5NjOMDfVotUhZIFsItnqc0sykslu7DkpiLjccdhYyMCkt1ikK1wOlKeJAgHu7/GvnQ AiixNpCJR0KoqvF7bKvhqEGunssdyr44b1LoK79hM7+tSRHGmyrAIXDfSqd3b2mDjFEXdf lR8ydpaJFrs1BHbOASIwse4TUPSA9Odtdnha/h1nx6ZJIZwkiiH7jsvmGSSf2xzsLIakTG tOfkG7/SX/VgScA6Z5qw67DQOdFhywPyi2RAWc9TXV38kwEXfWV4bAWlTMmdiOyiQVmb8o sfOjTv2RUF3TjsvlFFIH6/gT/Ly+LV8KJnl5uNUW2FU8Yuq/HUy000VYLyJO4A== 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 91E1B20FBB; Tue, 22 Feb 2022 08:58:50 +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 21M8wo5j038160; Tue, 22 Feb 2022 08:58:50 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 21M8woB8038159; Tue, 22 Feb 2022 08:58:50 GMT (envelope-from git) Date: Tue, 22 Feb 2022 08:58:50 GMT Message-Id: <202202220858.21M8woB8038159@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Wojciech Macek Subject: git: caca7dd08752 - main - sdhci_fsl_fdt: Apply errata for LX2160A 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: Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: wma X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: caca7dd087527e234fea09aac89634f5148b7478 Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1645520330; 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=ULVhwT1L3O8rQFrAEHTNpXYsf4GLsVuMAXErWKjOuFE=; b=oSM2rTJWXjavNxlXr9TPpm3kTSd1HcNZlVCXVYI2fW/iZuGjt7aFYlLVnTNfttk7wv3VaS T5S3InRG/oqKcqVoBwG9+HLWPUQiD4L2hku8V8r8uk+jjWP4ivwBP3n/DpC6D3ND3/5n/2 ukAEyHOMhHm/S54c5Qchw+lqu25wXCKif0KLUiZMTDRhFLIrfCB5UTQE5uP7AochV8NxKj cz5rCThaPToSj6806VZ8nZBD9mI6DvebtbM38Ra7898qMX4dBipYnFT8izgDEuVDdJY97O yDskWfLPavnsvKZ8lna0Q97JZBA9VR8zkGgzk/5HWueIyh1LszN6JqKqEvgNgQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1645520330; a=rsa-sha256; cv=none; b=t0ZpOgf1J2ara1ndfytT9qsR9vpjaA8W4LmCMcdCBIvFA6Uk003h54MK0Hqtcr21uhfUm2 WeDSgzrQ4tq/MTsNrOwgKOE1aC3MqYQrXD37loWy9GhEtjRSU8w/WsxOK+kOJxb1nj5AFy x8rzBrALpc4IeN58V5mC0iDClqsIwRrjC6ZguWx5oTH++nF/fSeEEa4dNtqQY2c/YzX4nj vNBzRv+w2NVckDezuHpe8/pjx39YglNI8N3S8LXieVGWK6VQqEbGLju/7Khpz4x47qcr8Y c3Sn3xhByj85xpe7DWTQSPpbsT8lo8NiJsuKkcokUU9OIninl6apxoWdD7zBzw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by wma: URL: https://cgit.FreeBSD.org/src/commit/?id=caca7dd087527e234fea09aac89634f5148b7478 commit caca7dd087527e234fea09aac89634f5148b7478 Author: Hubert Mazur AuthorDate: 2021-12-21 14:52:56 +0000 Commit: Wojciech Macek CommitDate: 2022-02-22 08:58:35 +0000 sdhci_fsl_fdt: Apply errata for LX2160A LX2160A is affected by two erratum regarding SDHCI. However this board has generic compat string in DTS for SDHCI which means erratum cannot be simply applied. Compare compat string from "/" path with LX2160A compat string when attaching device and apply erratum. Reviewed by: mmel, imp Obtained from: Semihalf Sponsored by: Alstom Group Differential revision: https://reviews.freebsd.org/D34028 --- sys/dev/sdhci/sdhci_fsl_fdt.c | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/sys/dev/sdhci/sdhci_fsl_fdt.c b/sys/dev/sdhci/sdhci_fsl_fdt.c index 2f19136c6078..34e7e6fd449f 100644 --- a/sys/dev/sdhci/sdhci_fsl_fdt.c +++ b/sys/dev/sdhci/sdhci_fsl_fdt.c @@ -219,6 +219,13 @@ static const struct sdhci_fsl_fdt_soc_data sdhci_fsl_fdt_ls1046a_soc_data = { .errata = SDHCI_FSL_UNSUPP_1_8V | SDHCI_FSL_TUNING_ERRATUM_TYPE2, }; +static const struct sdhci_fsl_fdt_soc_data sdhci_fsl_fdt_lx2160a_soc_data = { + .quirks = 0, + .baseclk_div = 2, + .errata = SDHCI_FSL_UNRELIABLE_PULSE_DET | + SDHCI_FSL_HS400_LIMITED_CLK_DIV, +}; + static const struct sdhci_fsl_fdt_soc_data sdhci_fsl_fdt_gen_data = { .quirks = 0, .baseclk_div = 1, @@ -790,13 +797,23 @@ sdhci_fsl_fdt_attach(device_t dev) sc = device_get_softc(dev); ocd_data = ofw_bus_search_compatible(dev, sdhci_fsl_fdt_compat_data)->ocd_data; - sc->soc_data = (struct sdhci_fsl_fdt_soc_data *)ocd_data; sc->dev = dev; - sc->slot.quirks = sc->soc_data->quirks; sc->flags = 0; host = &sc->slot.host; - rid = 0; + + /* + * LX2160A needs its own soc_data in order to apply SoC + * specific quriks. Since the controller is identified + * only with a generic compatible string we need to do this dance here. + */ + if (ofw_bus_node_is_compatible(OF_finddevice("/"), "fsl,lx2160a")) + sc->soc_data = &sdhci_fsl_fdt_lx2160a_soc_data; + else + sc->soc_data = (struct sdhci_fsl_fdt_soc_data *)ocd_data; + + sc->slot.quirks = sc->soc_data->quirks; + sc->mem_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid, RF_ACTIVE); if (sc->mem_res == NULL) {