Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp4218897imm; Tue, 11 Sep 2018 08:37:21 -0700 (PDT) X-Google-Smtp-Source: ANB0VdZqk9d1mk/KK+HVYVRgwYQRgD8+oAZXkrpdUvXQZrspMLcotivhCgx7oMj0y/z4jxHm7o/K X-Received: by 2002:a17:902:654b:: with SMTP id d11-v6mr28005601pln.8.1536680241635; Tue, 11 Sep 2018 08:37:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1536680241; cv=none; d=google.com; s=arc-20160816; b=EK1+5P64EclDPm1RNr/9MIeMwJCVmJj4KhjDVGDph39xcqbsCku9deY61ZnPhvjwIT +FsLlPYHLvzDnDJzPPIyCjL0cpkS+9ynPEUBq7TBE2zTQOfOIilHElA97Xg7KwM7MEUo 9/vDH3H/fX+bPP3Q74+vwTWcFkJ3Nx6nOkVQpZxReAGAbvac3/whRb5BKTe60sONqyMK pTr5r8KBuJATQTn8+gUmX1yy6B47Fb+oiTZxa7pffieZUFb+HuHo2KoApD7JSIOH8SGh scjNkNJcHRMauPkgy+LKYU5XexhDKiVUfIU2gKn1p4wmFIKAJxzcjcSM01FsE8rSDDpn h9dQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=h6jNSDqNMnwwDkbJ6jE0/uH7FThKuLzEkybGiuAaHbY=; b=ENTeKe+QPm4ygp9dSTWestK2z+1nEbRIrhJbBaC0JZ2BsdSAzypecd9SVQOglGebQf kgKkieXhj05RIVEZ3BNoImQrfFD02Q51ZGgNl4tMn6zRd/rEktrphw3Gw0KfwUGx8nsT RZjpcvlL6l/vDfogvsp9b+kPTvYJvVAFATqtjisvs4dpoBMouCuv42FKnD27EIyrylr9 K+dIDDnldbuoGVQlLNB5o0dlqyQQRj6fXSyJRO7MKe0sJnrZj86pDihk+kaiiCGmROLl 9H5eSoki6x8v1Gl9Q4xwSvGNrguZbeu084seASDinol+HfFpU7H/UJyqj6luD44IyMLa EfGw== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 22-v6si20715709pfl.220.2018.09.11.08.37.05; Tue, 11 Sep 2018 08:37:21 -0700 (PDT) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727762AbeIKUgY (ORCPT + 99 others); Tue, 11 Sep 2018 16:36:24 -0400 Received: from mail.bootlin.com ([62.4.15.54]:51443 "EHLO mail.bootlin.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726863AbeIKUgY (ORCPT ); Tue, 11 Sep 2018 16:36:24 -0400 Received: by mail.bootlin.com (Postfix, from userid 110) id 6265E20789; Tue, 11 Sep 2018 17:36:32 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on mail.bootlin.com X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED,SHORTCIRCUIT, URIBL_BLOCKED shortcircuit=ham autolearn=disabled version=3.4.0 Received: from localhost (242.171.71.37.rev.sfr.net [37.71.171.242]) by mail.bootlin.com (Postfix) with ESMTPSA id 33238206FF; Tue, 11 Sep 2018 17:36:22 +0200 (CEST) Date: Tue, 11 Sep 2018 17:36:21 +0200 From: Alexandre Belloni To: Geert Uytterhoeven Cc: Lee Jones , radu_nicolae.pirea@upb.ro, Rob Herring , Mark Rutland , Nicolas Ferre , Greg KH , Mark Brown , Jiri Slaby , Richard Genoud , "David S. Miller" , Mauro Carvalho Chehab , Andrew Morton , Arnd Bergmann , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , Linux ARM , Linux Kernel Mailing List , "open list:SERIAL DRIVERS" , linux-spi Subject: Re: [PATCH v12 0/6] Driver for at91 usart in spi mode Message-ID: <20180911153621.GP2494@piout.net> References: <20180904111310.4049-1-radu_nicolae.pirea@upb.ro> <20180911093356.GE4185@dell> <20180911093917.GL2494@piout.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 11/09/2018 16:59:09+0200, Geert Uytterhoeven wrote: > Hi Alexandre, > > On Tue, Sep 11, 2018 at 11:40 AM Alexandre Belloni > wrote: > > On 11/09/2018 10:33:56+0100, Lee Jones wrote: > > > On Tue, 04 Sep 2018, Radu Pirea wrote: > > > > Radu Pirea (6): > > > > MAINTAINERS: add at91 usart mfd driver > > > > dt-bindings: add binding for atmel-usart in SPI mode > > > > mfd: at91-usart: added mfd driver for usart > > > > MAINTAINERS: add at91 usart spi driver > > > > spi: at91-usart: add driver for at91-usart as spi > > > > tty/serial: atmel: change the driver to work under at91-usart mfd > > > > > > > > .../bindings/{serial => mfd}/atmel-usart.txt | 25 +- > > > > MAINTAINERS | 16 + > > > > drivers/mfd/Kconfig | 9 + > > > > drivers/mfd/Makefile | 1 + > > > > drivers/mfd/at91-usart.c | 71 +++ > > > > drivers/spi/Kconfig | 8 + > > > > drivers/spi/Makefile | 1 + > > > > drivers/spi/spi-at91-usart.c | 432 ++++++++++++++++++ > > > > drivers/tty/serial/Kconfig | 1 + > > > > drivers/tty/serial/atmel_serial.c | 42 +- > > > > include/dt-bindings/mfd/at91-usart.h | 17 + > > > > 11 files changed, 606 insertions(+), 17 deletions(-) > > > > rename Documentation/devicetree/bindings/{serial => mfd}/atmel-usart.txt (76%) > > > > create mode 100644 drivers/mfd/at91-usart.c > > > > create mode 100644 drivers/spi/spi-at91-usart.c > > > > create mode 100644 include/dt-bindings/mfd/at91-usart.h > > > > > > Seeing as this patch-set has caused some issues this morning, I took > > > the liberty to peruse back into its history to figure out where things > > > started to go wrong. I also re-reviewed the MFD driver - and I'm glad > > > I did! > > > > > > My Acked-by has been attached to the MFD portion since v5, which is > > > why the code hasn't caught my eye before today. I reviewed the > > > relocation of the *binding document* (serial => mfd with no changes) > > > in v4 and nothing else. It appears as though you mistakenly added it > > > to the *MFD driver* instead. This explains my confusion in v10 when I > > > told you I'd already reviewed the binding document. > > > > > > As I said, I have re-reviewed the MFD driver and I'm afraid to say > > > that I do not like what I see. Besides the missing header file and > > > the whitespace tabbing errors, I do not agree with the implementation. > > > Using MFD as a shim to hack around driver selection is not a valid > > > use-case. > > > > > > What's stopping you from just using the compatible string directly to > > > select which driver you need to probe? > > > > > > > Then you'd have multiple compatible strings for the same IP which is a > > big no-no. > > It's still the same hardware device, isn't? > What if the SPI or UART slave is not on-board, but on an expansion board? > Then the SoC-specific .dtsi has no idea what mode should be used. > > Hence shouldn't the software derive the hardware mode from the full > hardware description in DT? If that's impossible (I didn't look into detail > whether an SPI bus can easily be distinguished from a UART bus), perhaps > a mode property should be added? > Yes, this is exactly what is done: https://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git/tree/drivers/mfd/at91-usart.c?h=ib-mfd-spi-tty-4.20-1#n33 Only one compatbile for the IP and a property to know what is the mode. That property should indeed be set in the board dts and not the SoC dtsi. the other, less robust alternative was to look for child nodes and decide that if some where present it would indicate an SPI bus. But I think at some point we may have child nodes under a UART node. -- Alexandre Belloni, Bootlin Embedded Linux and Kernel engineering https://bootlin.com