Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp1480905ybt; Mon, 15 Jun 2020 01:05:30 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyEvSfYBi0gyB6/8yFJZShsPJVNF3VjyiabcnlUp3ZoA/gOs7gf+VEQWR7uM1inAJiKaqOA X-Received: by 2002:a17:906:3154:: with SMTP id e20mr25301666eje.171.1592208330570; Mon, 15 Jun 2020 01:05:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1592208330; cv=none; d=google.com; s=arc-20160816; b=AOrNxeLZE1L/FzG0HeqGsmPn5+SJBLWiVG4yyWuVhZARAhBWCb40oGytYcuFhzVVUv nzd4bnjra8fTR/29KaLKc4gmIR6SQM5uvOgRmgKJ9cLmd/qynZh3X2+oiuCH+LoeGgwv vqkh45Vyvxw2FK8b6rt7nWU51xPjU8NfkbXpYr3VxhratsMApYtm0yGFnWDJuoPR7ztg KJcQ49MsDoJ/2bLoSF7O6RYO+xb+VHLoNafqZD05IznljvkbFHe5u2z1b3xQknqeKxL/ M/CgAvt4sNcc+Z/KfXBj+LjAd5EJqEUXeePnQ3R+shxRs+9NmymduhLLQELVxWdzqG+s N9uQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=NNdjIWpqOIzd0m8ttGrmgbfjsjDdO4jG01Ng0RZ57Yk=; b=kZK+Q4SSXoDDVOiA0dMjQRQ+rfyBItqmjz7KMNexVM8Ue2POLUTxtv23dDGowhaXwX vhF/kzFiYEZN8JSGSqP9BVVFr2x/1rhsz4IIEpuaPTzFbH+JwWsSQQlRpMcwoj3OxU8R lqTU0yQTc3jjWduNVnvbLOEtzwVv33KiCPXmsMurlRxdz4+GI0ZSXy15MMuV9M2q/qmI eS2xcO6NGTnKMABdoJqPHx38cAYkmdEfWlQf/6wU2A9jyEMUC98KS82sZPKmcxM5NG70 MWYZ2gH3T8RHG1QsOO1nH7/F9E/0aLjrJ6hlTSfJtEjU6WOu1nhYt252DKsp6Dm0Lmi4 2j9A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=up1WuBMw; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id l11si7911595edw.591.2020.06.15.01.05.07; Mon, 15 Jun 2020 01:05:30 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=up1WuBMw; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728709AbgFOIDS (ORCPT + 99 others); Mon, 15 Jun 2020 04:03:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34654 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728386AbgFOIDN (ORCPT ); Mon, 15 Jun 2020 04:03:13 -0400 Received: from mail-wr1-x441.google.com (mail-wr1-x441.google.com [IPv6:2a00:1450:4864:20::441]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 719A5C05BD43; Mon, 15 Jun 2020 01:03:13 -0700 (PDT) Received: by mail-wr1-x441.google.com with SMTP id e1so16060163wrt.5; Mon, 15 Jun 2020 01:03:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=NNdjIWpqOIzd0m8ttGrmgbfjsjDdO4jG01Ng0RZ57Yk=; b=up1WuBMwGRcvmOXYMRqouxeXOkJd2O/E8BLE+kbVXTkkODXYZWAPVAt1O3quhdfszR 74kQKXRnYRikyNh6kE63AUijJ2vj/RSe05UTC6WIvc9OZJPEXFqP+RuYg0n1IVHPcLz8 okU0do5NxuhAVm3YVIUur12LMzc4S24BbpD/oPgbaa0X6trDyrXfxf6MA5+nh8KzZem/ 72FTMablLMbz2NirPdcOyOLbc1czKcW+tI5iUGmL6A0RUg1Sr10l/YIghBvdWFSwqcKN +0gSmjenHZvX6dPeOSWJ0mtA6m0AdG928bMW09S4rsOpMCsoLSkxshtZpbE+FvIlmJCR vt5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=NNdjIWpqOIzd0m8ttGrmgbfjsjDdO4jG01Ng0RZ57Yk=; b=B62W4JhqQsOzHy/X2APmC/yO8cFDDHEiFRn8xaKMqszR7jAOA4ma8HEwfD6TaKpGYV TZ0Vu0zES4j9746HWRfafRRn5PIFo7gkbB1fqwhPBUJdWVWCdzQLo3yuPXitPyIZsN1v w5TRsT1ugArsiPtgGsInWGi2Xk4xslBCwUwkG09+B31uqEEoRFRtHT7R/MC94X3ei+vP +oM4J84snWQZVXN0MVh4OpSZhuxx7xlUNdt53UBB1KIwGHEQS+KfmL+QzWJSbO2WN4qx XNIUiM0/Sx4RZGZV+a5fkHT7RDXt5I/3tOdwgghwmYktYWMOYMWTg+vim4Hwgoxod0GR CRlQ== X-Gm-Message-State: AOAM532oX6eWE2TfqcfQa3lSXkztnWaQ9q/Prlm6bzU7EFBxSRtq2Vrc H89RIO5ehfjB2yr+cSecdqPBrynASEQ= X-Received: by 2002:a5d:6b81:: with SMTP id n1mr27100208wrx.411.1592208192034; Mon, 15 Jun 2020 01:03:12 -0700 (PDT) Received: from skynet.lan (168.red-88-20-188.staticip.rima-tde.net. [88.20.188.168]) by smtp.gmail.com with ESMTPSA id d9sm23107054wre.28.2020.06.15.01.03.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Jun 2020 01:03:11 -0700 (PDT) From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= To: broonie@kernel.org, f.fainelli@gmail.com, bcm-kernel-feedback-list@broadcom.com, p.zabel@pengutronix.de, linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Cc: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Subject: [PATCH 1/4] spi: bcm63xx-spi: add reset support Date: Mon, 15 Jun 2020 10:03:06 +0200 Message-Id: <20200615080309.2897694-2-noltari@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200615080309.2897694-1-noltari@gmail.com> References: <20200615080309.2897694-1-noltari@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org bcm63xx arch resets the SPI controller at early boot. However, bmips arch needs to perform a reset when probing the driver. Signed-off-by: Álvaro Fernández Rojas --- drivers/spi/spi-bcm63xx.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/drivers/spi/spi-bcm63xx.c b/drivers/spi/spi-bcm63xx.c index 0f1b10a4ef0c..8ab04affaf7b 100644 --- a/drivers/spi/spi-bcm63xx.c +++ b/drivers/spi/spi-bcm63xx.c @@ -18,6 +18,7 @@ #include #include #include +#include /* BCM 6338/6348 SPI core */ #define SPI_6348_RSET_SIZE 64 @@ -493,6 +494,7 @@ static int bcm63xx_spi_probe(struct platform_device *pdev) struct bcm63xx_spi *bs; int ret; u32 num_cs = BCM63XX_SPI_MAX_CS; + struct reset_control *reset; if (dev->of_node) { const struct of_device_id *match; @@ -529,6 +531,15 @@ static int bcm63xx_spi_probe(struct platform_device *pdev) return PTR_ERR(clk); } + reset = devm_reset_control_get(dev, NULL); + if (IS_ERR(reset)) { + ret = PTR_ERR(reset); + if (ret != -EPROBE_DEFER) + dev_err(dev, + "failed to get reset controller: %d\n", ret); + return ret; + } + master = spi_alloc_master(dev, sizeof(*bs)); if (!master) { dev_err(dev, "out of memory\n"); @@ -579,6 +590,12 @@ static int bcm63xx_spi_probe(struct platform_device *pdev) if (ret) goto out_err; + ret = reset_control_reset(reset); + if (ret) { + dev_err(dev, "unable to reset device: %d\n", ret); + goto out_clk_disable; + } + bcm_spi_writeb(bs, SPI_INTR_CLEAR_ALL, SPI_INT_STATUS); /* register and we are done */ -- 2.27.0