Received: by 10.223.176.5 with SMTP id f5csp2886820wra; Thu, 1 Feb 2018 07:33:13 -0800 (PST) X-Google-Smtp-Source: AH8x224IuOI0d5XOm7D+mkWZuFJaX2Ad6YM/C77GrhEI2NudptWZLgv27cKCO84Z+g/2sKqJE7fI X-Received: by 10.101.72.197 with SMTP id o5mr30493405pgs.64.1517499193778; Thu, 01 Feb 2018 07:33:13 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1517499193; cv=none; d=google.com; s=arc-20160816; b=yVYwFs2jEa2vg45j35RVap+2UEVg02D8FldBbb8McJl6bq54zFGVHSGNPyH6wiyPbY y2vec2C0d0/Za5XLXlF5XMHr9gMLGqYuN1T5AgAGqp3pxF/gUPZ9pQaRPLhyK2Bl+MI3 /fS7MpLs+4EgxR13prXlrV68hRIjMo97I4LsLBDksUkD4FUOrDHlNWz9HaTbZQn4x5P5 76f1rrYDIL9IWjuEK5itwza5IehWcDTStOujoLDdOCl/SKf1tVG4GRmOhkZSR4zcPzBZ S6zJLVLULZuaCYBG09MOe/EAPOayaqY1h5izbOjX+HCf9NS/ElezYosc7k852d4MQu4n kZ6A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature :arc-authentication-results; bh=8vCXvoDWOff0BQlmeBikVlgoGrThHvM5dCKKeSZ8hwE=; b=uUC/aj71/zgpUdi/1h8xnOruQaLHDYfsqVq8ogiZ91wPXTP+GDWf3vYOT+rYXpjya6 gEugUuznnkf6ToWGjAWvmPNLjsBQ/yfsAtGITFQnCPABAF6AmQ8q8KY2EwH7lRMMc1/a W8U+K6Ah8sYBcwLsy2e87oXtEgEBJcPFsxlffRxW05GLb53aT8uRjKG+cU9QN1wPFRnD +HLcxDB/UZ8Zf1g7yP3Hd8RvveNbZaUxbNw9A0bxOZ1A2C31Tn2XeN6+VxvNVtooShcz AoBXRCD049gZ3X8HH5V80Y9lixmcrJczDJWTk5j6orcM244WBGQ4+Mi9C5KU9K1r3yct NBvA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=iY/jjNJI; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id o17si1663555pge.371.2018.02.01.07.32.58; Thu, 01 Feb 2018 07:33:13 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=iY/jjNJI; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752277AbeBAPb6 (ORCPT + 99 others); Thu, 1 Feb 2018 10:31:58 -0500 Received: from mail-qk0-f176.google.com ([209.85.220.176]:35342 "EHLO mail-qk0-f176.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752028AbeBAPb4 (ORCPT ); Thu, 1 Feb 2018 10:31:56 -0500 Received: by mail-qk0-f176.google.com with SMTP id 69so6701919qkz.2; Thu, 01 Feb 2018 07:31:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=8vCXvoDWOff0BQlmeBikVlgoGrThHvM5dCKKeSZ8hwE=; b=iY/jjNJIIKfibSuJwPWZ94kCCeRMNgiLzWDVeOw1I2MCfYaDdnA6kYgr9ZxX++abMh /6QVUYGm8xWjaMXoSamXDXcxL+n69C5lE8dxPS9Ct3TBuT2mVFhRACQlKFqklwQ/J8lO dUBWN7CQq1KtZaI7MUph7K3xKCUQcfQ29dvH4l8HsMMxNi9++o/dWFNHYi7Yi+SeXBI+ +FQnltHzCR96L4PBuPHYw+gnDOoY/ollFpqCEvs450b404a/8lI7XRc1uL4yY87tt7mX NSuaw7+SNdgbpdvsFJsL6PXnpf8jhjkGslUvxK0BRMjGgQ/C1r4Oe7cgM2B2G6vGTDVA LoLQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=8vCXvoDWOff0BQlmeBikVlgoGrThHvM5dCKKeSZ8hwE=; b=rR0Ix3zM+EJBZySkjsVMIg6d5pqySsT0bR018Qxep0nLxOA4G8PcWl56SF0dtTLZEB NHG1VmdJQ6ZWDRO6pxkHUKu2Ks6K3CMxuqe8JhBhYVHc0OpqMprmKuzhw56Twmvaf8ij VPATqvitFIOzTOB3Q3H69/05W52Rj82/O0rhV2m1inw2xBATSOE8zIa6zT0rcEz+bc7L uzXb7+mB7f2h7cuEbefJHdgYGwukYjRg5faAFFVEiXBShx6zmCrs7G9znXTKhKJwQ3q6 6xvdxhUOJpuUVuMpQLaoNKJgoSzWguV/u6UggefbEn2Pj6r9XuwTKasqZ68x0b7W0GXI vYig== X-Gm-Message-State: AKwxytfFEgRxn1QxoYk9CLb/SloWGTVlpS/d1+MJhqPhW3Rw+Vma0rYK GkBfJogscUBQUvvmjZbAh3iGI8QQB2ZxAzhxoUnfUbMoOuI= X-Received: by 10.55.87.70 with SMTP id l67mr54360099qkb.319.1517499115368; Thu, 01 Feb 2018 07:31:55 -0800 (PST) MIME-Version: 1.0 Received: by 10.12.175.35 with HTTP; Thu, 1 Feb 2018 07:31:54 -0800 (PST) In-Reply-To: <62ceed73b65399099ccd76fe6b7331bcd253b027.1517453569.git.baolin.wang@linaro.org> References: <2834309f69a1ec37b84a33f153a3d0b90336bcc6.1517453568.git.baolin.wang@linaro.org> <62ceed73b65399099ccd76fe6b7331bcd253b027.1517453569.git.baolin.wang@linaro.org> From: Andy Shevchenko Date: Thu, 1 Feb 2018 17:31:54 +0200 Message-ID: Subject: Re: [PATCH v2 2/2] gpio: Add GPIO driver for Spreadtrum SC9860 platform To: Baolin Wang Cc: Linus Walleij , Rob Herring , Mark Rutland , devicetree , Linux Kernel Mailing List , "open list:GPIO SUBSYSTEM" , Mark Brown Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Feb 1, 2018 at 5:04 AM, Baolin Wang wrote: > The Spreadtrum SC9860 platform GPIO controller contains 16 groups and > each group contains 16 GPIOs. Each GPIO can set input/output and has > the interrupt capability. Just noticed couple of more improvements you can do. > + case IRQ_TYPE_EDGE_RISING: > + sprd_gpio_update(chip, offset, SPRD_GPIO_IS, 0); > + sprd_gpio_update(chip, offset, SPRD_GPIO_IBE, 0); > + sprd_gpio_update(chip, offset, SPRD_GPIO_IEV, 1); > + irq_set_handler_locked(data, handle_edge_irq); > + break; > + case IRQ_TYPE_EDGE_FALLING: > + sprd_gpio_update(chip, offset, SPRD_GPIO_IS, 0); > + sprd_gpio_update(chip, offset, SPRD_GPIO_IBE, 0); > + sprd_gpio_update(chip, offset, SPRD_GPIO_IEV, 0); > + irq_set_handler_locked(data, handle_edge_irq); > + break; > + case IRQ_TYPE_EDGE_BOTH: > + sprd_gpio_update(chip, offset, SPRD_GPIO_IS, 0); > + sprd_gpio_update(chip, offset, SPRD_GPIO_IBE, 1); > + irq_set_handler_locked(data, handle_edge_irq); > + break; > + case IRQ_TYPE_LEVEL_HIGH: > + sprd_gpio_update(chip, offset, SPRD_GPIO_IS, 1); > + sprd_gpio_update(chip, offset, SPRD_GPIO_IBE, 0); > + sprd_gpio_update(chip, offset, SPRD_GPIO_IEV, 1); > + irq_set_handler_locked(data, handle_level_irq); > + break; > + case IRQ_TYPE_LEVEL_LOW: > + sprd_gpio_update(chip, offset, SPRD_GPIO_IS, 1); > + sprd_gpio_update(chip, offset, SPRD_GPIO_IBE, 0); > + sprd_gpio_update(chip, offset, SPRD_GPIO_IEV, 0); > + irq_set_handler_locked(data, handle_level_irq); > + break; > + default: > + return -EINVAL; I guess you can use fallthrough and reduce some lines, but I have no strong opinion which will look better. > + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > + sprd_gpio->base = devm_ioremap_nocache(&pdev->dev, res->start, > + resource_size(res)); Didn't notice before, why not to simple call devm_ioremap_resource() ? -- With Best Regards, Andy Shevchenko