Received: by 2002:a05:6a10:1a4d:0:0:0:0 with SMTP id nk13csp3572887pxb; Fri, 11 Feb 2022 03:01:27 -0800 (PST) X-Google-Smtp-Source: ABdhPJx21z1bk9ELe9996zURdLuPZYRqq7obBtcqER65aUGlwVWkKddyFQjlmaHeKaNjm/ke33Q5 X-Received: by 2002:a17:907:7f86:: with SMTP id qk6mr881900ejc.454.1644577286743; Fri, 11 Feb 2022 03:01:26 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1644577286; cv=none; d=google.com; s=arc-20160816; b=xiho+0dTT7nJ7OESB+9IR3+Ok44YzOxV4Kd7MLW94rrJPaQtXrsR4/5Qxa3ADHPZ95 vY2VQK6/PLLbuqyDbn0EN+qJhVvd2yaEnU0+nelNKMMq+w9mFPs0cwB7ohr13mW91s0g GqOMCJzdNUjAPkBcx0+KuUMO2Xp1r4SwG1rJwC31dMZ6L2NJUvaAKTLYNjIYzCaN5CSq wHCDpteHq8EEQhT5ppMsixPzGmaaY86NPC7IYxGqnWbE8dpIH00zELmwGuY9FnH9Fv6Q hhisS/u4dkgulceDVYTAeDNHJU5Wm+O1EWj4/p/Pi5GE02B5/5LkNWifJH83zQqWibiD O1Jg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from; bh=MQnYqnzqEq2nmtWdMbtndGAdssmIFuPHiAZTRsJit68=; b=LDy33YsD/LC2LfcHzCpOQUvDlLGuxQr3OKlvcdar/75vM/gPt0tw67uBAL1HyI+oiD Qt50Rx2Xvuql8mdpVlPq1NXT++H1AnHJ7QGvdwIYxB5xlk4pZ7FyPcFqurWHkxxkId/W 84BPUoQ2HQks7EDaJgiue/1JxaUijTa0TfwbLus207oPcfoxMZVB/e+tlosbuQ90729x cjTwD2qgh/DJlxe5O+QH/rCtTAMl2J79AxYdQzk5mP1SeJEUpn/w5MJJeoLQWp79Bjuz 02px08DLHk7qFM4aptzZw7wXAXXXJ2pWv97CVjLTw3mPysDsiFrbbSHLD4uTYJ8BB1YA CZ8g== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=rock-chips.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id c13si14874330ejj.7.2022.02.11.03.00.58; Fri, 11 Feb 2022 03:01:26 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=rock-chips.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241462AbiBKDxf (ORCPT + 99 others); Thu, 10 Feb 2022 22:53:35 -0500 Received: from mxb-00190b01.gslb.pphosted.com ([23.128.96.19]:39920 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237509AbiBKDxd (ORCPT ); Thu, 10 Feb 2022 22:53:33 -0500 Received: from mail-m17664.qiye.163.com (mail-m17664.qiye.163.com [59.111.176.64]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 776CF5F48; Thu, 10 Feb 2022 19:53:31 -0800 (PST) Received: from localhost.localdomain (unknown [58.22.7.114]) by mail-m17664.qiye.163.com (Hmail) with ESMTPA id 5529D1401A6; Fri, 11 Feb 2022 11:43:51 +0800 (CST) From: Jon Lin To: broonie@kernel.org Cc: heiko@sntech.de, linux-spi@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, Jon Lin Subject: [PATCH v10 5/6] spi: rockchip: Support cs-gpio Date: Fri, 11 Feb 2022 11:43:41 +0800 Message-Id: <20220211034344.4130-5-jon.lin@rock-chips.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220211034344.4130-1-jon.lin@rock-chips.com> References: <20220211034344.4130-1-jon.lin@rock-chips.com> X-HM-Spam-Status: e1kfGhgUHx5ZQUtXWQgPGg8OCBgUHx5ZQUlOS1dZCBgUCR5ZQVlLVUtZV1 kWDxoPAgseWUFZKDYvK1lXWShZQUhPN1dZLVlBSVdZDwkaFQgSH1lBWUMfGBhWQxoZSx4dTh9KQ0 NCVRMBExYaEhckFA4PWVdZFhoPEhUdFFlBWVVLWQY+ X-HM-Sender-Digest: e1kMHhlZQR0aFwgeV1kSHx4VD1lBWUc6NSo6Vgw*Sj5PGh4MGAg2F08o TwkwCRpVSlVKTU9PTk5KS0hKTEhIVTMWGhIXVREUFVUXEhU7CRQYEFYYExILCFUYFBZFWVdZEgtZ QVlOQ1VJSVVMVUpKT1lXWQgBWUFJTEhNNwY+ X-HM-Tid: 0a7ee6e14ad7da2fkuws5529d1401a6 X-Spam-Status: No, score=-0.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H5,RCVD_IN_MSPIKE_WL,RCVD_IN_SORBS_WEB,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 1.Add standard cs-gpio support 2.Refer to spi-controller.yaml for details Signed-off-by: Jon Lin --- Changes in v10: None Changes in v9: None Changes in v8: None Changes in v7: None Changes in v6: None Changes in v5: None Changes in v4: None Changes in v3: None drivers/spi/spi-rockchip.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/drivers/spi/spi-rockchip.c b/drivers/spi/spi-rockchip.c index 950d3bce443b..fbd750b1d28e 100644 --- a/drivers/spi/spi-rockchip.c +++ b/drivers/spi/spi-rockchip.c @@ -157,7 +157,8 @@ */ #define ROCKCHIP_SPI_MAX_TRANLEN 0xffff -#define ROCKCHIP_SPI_MAX_CS_NUM 2 +/* 2 for native cs, 2 for cs-gpio */ +#define ROCKCHIP_SPI_MAX_CS_NUM 4 #define ROCKCHIP_SPI_VER2_TYPE1 0x05EC0002 #define ROCKCHIP_SPI_VER2_TYPE2 0x00110002 @@ -245,11 +246,15 @@ static void rockchip_spi_set_cs(struct spi_device *spi, bool enable) /* Keep things powered as long as CS is asserted */ pm_runtime_get_sync(rs->dev); - ROCKCHIP_SPI_SET_BITS(rs->regs + ROCKCHIP_SPI_SER, - BIT(spi->chip_select)); + if (spi->cs_gpiod) + ROCKCHIP_SPI_SET_BITS(rs->regs + ROCKCHIP_SPI_SER, 1); + else + ROCKCHIP_SPI_SET_BITS(rs->regs + ROCKCHIP_SPI_SER, BIT(spi->chip_select)); } else { - ROCKCHIP_SPI_CLR_BITS(rs->regs + ROCKCHIP_SPI_SER, - BIT(spi->chip_select)); + if (spi->cs_gpiod) + ROCKCHIP_SPI_CLR_BITS(rs->regs + ROCKCHIP_SPI_SER, 1); + else + ROCKCHIP_SPI_CLR_BITS(rs->regs + ROCKCHIP_SPI_SER, BIT(spi->chip_select)); /* Drop reference from when we first asserted CS */ pm_runtime_put(rs->dev); -- 2.17.1