Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp1275887pxb; Thu, 4 Mar 2021 07:34:40 -0800 (PST) X-Google-Smtp-Source: ABdhPJwc5HyquDtO1VA2dRJ0FZMxuRPQVCwtAQ4T8XIdVe/v6YkjHrbXZXlTebkzAioxbdfAxkjl X-Received: by 2002:aa7:c6da:: with SMTP id b26mr5082372eds.254.1614872080331; Thu, 04 Mar 2021 07:34:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1614872080; cv=none; d=google.com; s=arc-20160816; b=qE3ulRH49L9AxIlG2Tuh1sW6WVGYMtrUeXEng+YIaDhazJ4iuKNrmn7drTgJD4oJls Myn4JVfvs4eOjcvGD+XU4C8af3RsXLjNK6NQFWc+Z9yzoy5jlZi+xv8jdNwkAPGI7S1G P3vyxEG++LTDjSFylg65+qoNzbGrMKL0GrPdvKr69HZoBFgVGQgHeFuGy2FiMy8vwRCy B+GfjJNBI0bN5M7B5PEYtwXEDr57BrflXGyF0DuBNioh9KE0K+Z4RXx7W4JpGc4zu6pc Iq21g1JHgWWTKPnFTszkjUrfujpAAuRiAYI/tNxQohxkrdccF65Ek6w4WY+2R/HGfm4y aWaA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=z/YunITDzSj54Y4k2da7IIbwcZOzFgpMcTcXrvSJIsY=; b=q3h3qLt/JWMJwXiMRWdVrYMpA1EUZN3GAKhqM0aH5DCyM1u4GDhmfBt1V7gTLvbCI5 C7aJ/S7lLS/tCuY1SRAh+pgo/wGkyM+aWFaD14q+f4B/IO5UlCuq2c7eW3lZLrSNKh/0 bHqEfWG7yZKAhNbgiAlb2YoRVeqEcrCndQUTLVW6ptBd7XN3rMCk9MHoZoe+ZRkLgE9K pWKXiPk3hti+D8Sh8gq1Kh9hE2q+YzmG4vT4aYteSx3yAcVF/0bA3pYuZWqQ3cAYSwPb y1sHoXD3YsuYOdVL/uzNflivpwhJQJqhwIDmVSHU9LJBocP8MC2HyyP0j/ulhAeXtc28 5vHw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=JaUPYLR7; 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=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id w2si14979342edr.159.2021.03.04.07.34.16; Thu, 04 Mar 2021 07:34:40 -0800 (PST) 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=@linaro.org header.s=google header.b=JaUPYLR7; 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=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235780AbhCDIay (ORCPT + 99 others); Thu, 4 Mar 2021 03:30:54 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41758 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236838AbhCDIa0 (ORCPT ); Thu, 4 Mar 2021 03:30:26 -0500 Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com [IPv6:2a00:1450:4864:20::12c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B6DC7C06175F for ; Thu, 4 Mar 2021 00:29:45 -0800 (PST) Received: by mail-lf1-x12c.google.com with SMTP id m22so41796629lfg.5 for ; Thu, 04 Mar 2021 00:29:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=z/YunITDzSj54Y4k2da7IIbwcZOzFgpMcTcXrvSJIsY=; b=JaUPYLR7xkZXBatHr7s2xfITNdM0H4Jctt/Fw2uA9rVTPRXS2ypGfQgeG9h77/gY5y 7R8yulF7mLSY0OgIKuT6J/Ojr06v7NT7A6N5Nkq6CnoaP8Yr0tttUmgXRo9RzzIK0UnP UVtLZe4POq614g7G8HEaMlTlNd/edz0pZ/qrLnEd/fMjim5WibSx3ajwVPMfR0eZ2ABR f02UlJEuLJBHeRh0WEyp58aIIIxQeyyyLJX8vDD1h13rv3fk1tJqBy+UArpvwCFZt+GW WZgE6/MLDaJg5nIEm/9E9KW4ILP0L+viXBuImxX4kz7o8HLReWKq8Y/Pv7jUdUKfuVSr 3rIA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=z/YunITDzSj54Y4k2da7IIbwcZOzFgpMcTcXrvSJIsY=; b=YERlLb4rqVMnIrFTL3wJjDw+nL+zMB4r+qfN/sVsGyfXfXPeN/+kj3PP2wvnltNZEJ sFG7ses5CyI7EWuxl488DwWJYNQbvpuaTYjMG/mAA/XRpTIZDq1JamRjbd+ohzDBDL3T eGTAiTPQko38SA/OB7qu5v3jqmV+ytxXOMYP6iCqVx9y71tzYE7LdZsZvVWoxybOK5Nz 59jgDLuoW76WHbEyamacC33H3hbdo57Bmz39/GXhG9zUYPaajhNSEsOXl3wUYNuKcdJu 8PyNR5zXVJtjL6D7gQxGECKwtNdu+aySM+yi2+ZqajxGvrjV/CrgX80G9ae/r5s9zBny acdA== X-Gm-Message-State: AOAM531T9nxDpQVN6BTrROd+Vqdu7uSTB2KVsweOYB4sSbw3Gvukyb3E c9N/UiCRIBgvaov2u7i1/CLpliOMEkqxWdHSMoUfbg== X-Received: by 2002:a05:6512:10d1:: with SMTP id k17mr1556851lfg.649.1614846584130; Thu, 04 Mar 2021 00:29:44 -0800 (PST) MIME-Version: 1.0 References: <20210304034141.7062-1-brad@pensando.io> <20210304034141.7062-2-brad@pensando.io> In-Reply-To: <20210304034141.7062-2-brad@pensando.io> From: Linus Walleij Date: Thu, 4 Mar 2021 09:29:33 +0100 Message-ID: Subject: Re: [PATCH 1/8] gpio: Add Elba SoC gpio driver for spi cs control To: Brad Larson Cc: Linux ARM , Arnd Bergmann , Bartosz Golaszewski , Mark Brown , Serge Semin , Adrian Hunter , Ulf Hansson , Olof Johansson , "open list:GPIO SUBSYSTEM" , linux-spi , linux-mmc , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , "linux-kernel@vger.kernel.org" Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Brad, thanks for your patch! On Thu, Mar 4, 2021 at 4:42 AM Brad Larson wrote: > This GPIO driver is for the Pensando Elba SoC which > provides control of four chip selects on two SPI busses. > > Signed-off-by: Brad Larson (...) > +#include Use this in new drivers: #include > + * pin: 3 2 | 1 0 > + * bit: 7------6------5------4----|---3------2------1------0 > + * cs1 cs1_ovr cs0 cs0_ovr | cs1 cs1_ovr cs0 cs0_ovr > + * ssi1 | ssi0 > + */ > +#define SPICS_PIN_SHIFT(pin) (2 * (pin)) > +#define SPICS_MASK(pin) (0x3 << SPICS_PIN_SHIFT(pin)) > +#define SPICS_SET(pin, val) ((((val) << 1) | 0x1) << SPICS_PIN_SHIFT(pin)) So 2 bits per GPIO line in one register? (Nice doc!) > +struct elba_spics_priv { > + void __iomem *base; > + spinlock_t lock; > + struct gpio_chip chip; > +}; > + > +static int elba_spics_get_value(struct gpio_chip *chip, unsigned int pin) > +{ > + return -ENXIO; > +} Write a comment that the chip only supports output mode, because it repurposes SPI CS pins as generic GPIO out, maybe at the top of the file? I suppose these systems also actually (ab)use the SPI cs for things that are not really SPI CS? Because otherwise this could just be part of the SPI driver (native chip select). > +static const struct of_device_id ebla_spics_of_match[] = { > + { .compatible = "pensando,elba-spics" }, Have you documented this? Other than that this is a nice and complete driver. Yours, Linus Walleij