Received: by 2002:a05:6a10:17d3:0:0:0:0 with SMTP id hz19csp1705920pxb; Mon, 12 Apr 2021 04:58:24 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyggWGAo4UY30s4gB97sghk9tY7H5W+hmkyaf1zAdVokZ4NrbE48xBEJhoBF7RhI3LOKHP3 X-Received: by 2002:a65:66c3:: with SMTP id c3mr26367127pgw.355.1618228704592; Mon, 12 Apr 2021 04:58:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1618228704; cv=none; d=google.com; s=arc-20160816; b=sHo6uMPakNuBZXf1xKERvredBY+nKnJ7W+u9wymo4eU5zlLeREE7IwP/fLyUxngbyn zgukJK8pvXZ3B439Cfa0/R4NITGqcm9fQ6R9uRC4hvATmM+CP3mH6I2gbQd5+aC65jZT 2fWjI18zqoMBS+JWA2k0bRCljqal7LWaVe4CIk9a3t/CEd/+QyU2Tqg5ITQdGgbdeUfc JJANUtoMFzXDkqXs479khoduWFd2nhFoHxfJc433hultKNm9vIBFU5GvswdAWX9GDHFJ UE67t1FJw58Uj82+YE/Ozkj3BzAEr5U5+Db4LYxdB0lkojxuj2DV0m38Rub9qQsp5rUc 1CkA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:subject:cc:to:from:date; bh=/O4g5lG97PlsVPx3KqWrCwnYP9utz8TcaQSwTV+przM=; b=uyP4TvUCI1SBu1F9SMZ1VL5AJuVTDYUlbtWheVj60G9uShx+DwAzBwh/vkfAYiMowe iCi/PoVOe0p39ICnQkMMi6BQHaCi3Zu2gKQXJm/DAM98m4q2sMXbELDCuSuiH30W7lf4 8Oqxkb4p20wZ24vZTyqjraK/Qb5oFeXWUClrgaHEUkpzuq2uXsd7+DHokm/rYUSgCGTt LVAtxBJ4kLQ1NRg7IkWfuQEGzOBTb/NawTs8r9RmgxNdro1gvRYZIoYqnSf4Bo93oGmY IhZWhXQd9SHh1znwaieElIAakzMpBhrlS2TBqBsZt0zFKM6iGSdY2u27+4VC+dz6GRjn ALxA== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=NONE sp=NONE dis=NONE) header.from=siemens.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id i1si13962664pgj.269.2021.04.12.04.58.12; Mon, 12 Apr 2021 04:58:24 -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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=siemens.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240733AbhDLL50 (ORCPT + 99 others); Mon, 12 Apr 2021 07:57:26 -0400 Received: from gecko.sbs.de ([194.138.37.40]:35090 "EHLO gecko.sbs.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239202AbhDLL50 (ORCPT ); Mon, 12 Apr 2021 07:57:26 -0400 Received: from mail2.sbs.de (mail2.sbs.de [192.129.41.66]) by gecko.sbs.de (8.15.2/8.15.2) with ESMTPS id 13CBuhgY004539 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 12 Apr 2021 13:56:44 +0200 Received: from md1za8fc.ad001.siemens.net ([139.22.41.180]) by mail2.sbs.de (8.15.2/8.15.2) with ESMTP id 13CBugBC024375; Mon, 12 Apr 2021 13:56:42 +0200 Date: Mon, 12 Apr 2021 13:56:41 +0200 From: Henning Schild To: Andy Shevchenko , Enrico Weigelt Cc: Linux Kernel Mailing List , Linux LED Subsystem , Platform Driver , linux-watchdog@vger.kernel.org, Srikanth Krishnakar , Jan Kiszka , Gerd Haeussler , Guenter Roeck , Wim Van Sebroeck , Mark Gross , Hans de Goede , Pavel Machek Subject: Re: [PATCH v3 2/4] leds: simatic-ipc-leds: add new driver for Siemens Industial PCs Message-ID: <20210412135641.1173941b@md1za8fc.ad001.siemens.net> In-Reply-To: References: <20210329174928.18816-1-henning.schild@siemens.com> <20210329174928.18816-3-henning.schild@siemens.com> <20210330135808.373c3308@md1za8fc.ad001.siemens.net> <20210330143011.0e8ae4a0@md1za8fc.ad001.siemens.net> <20210330172305.67b6e050@md1za8fc.ad001.siemens.net> <20210401124415.3c9321c0@md1za8fc.ad001.siemens.net> X-Mailer: Claws Mail 3.17.8 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Am Thu, 1 Apr 2021 14:04:51 +0300 schrieb Andy Shevchenko : > On Thu, Apr 1, 2021 at 1:44 PM Henning Schild > wrote: > > > > Am Wed, 31 Mar 2021 18:40:23 +0300 > > schrieb Andy Shevchenko : > > > > > On Tue, Mar 30, 2021 at 6:33 PM Henning Schild > > > wrote: > > > > Am Tue, 30 Mar 2021 15:41:53 +0300 > > > > schrieb Andy Shevchenko : > > > > > On Tue, Mar 30, 2021 at 3:35 PM Henning Schild > > > > > wrote: > > > > > > Am Tue, 30 Mar 2021 15:15:16 +0300 > > > > > > schrieb Andy Shevchenko : > > > > > > > On Tue, Mar 30, 2021 at 2:58 PM Henning Schild > > > > > > > wrote: > > > > > > > > Am Tue, 30 Mar 2021 14:04:35 +0300 > > > > > > > > schrieb Andy Shevchenko : > > > > > > > > > On Mon, Mar 29, 2021 at 8:59 PM Henning Schild > > > > > > > > > wrote: > > > > > > > > > > > > > > > +static struct simatic_ipc_led > > > > > > > > > > simatic_ipc_leds_mem[] = { > > > > > > > > > > + {0x500 + 0x1A0, "red:" LED_FUNCTION_STATUS > > > > > > > > > > "-1"}, > > > > > > > > > > + {0x500 + 0x1A8, "green:" LED_FUNCTION_STATUS > > > > > > > > > > "-1"}, > > > > > > > > > > + {0x500 + 0x1C8, "red:" LED_FUNCTION_STATUS > > > > > > > > > > "-2"}, > > > > > > > > > > + {0x500 + 0x1D0, "green:" LED_FUNCTION_STATUS > > > > > > > > > > "-2"}, > > > > > > > > > > + {0x500 + 0x1E0, "red:" LED_FUNCTION_STATUS > > > > > > > > > > "-3"}, > > > > > > > > > > + {0x500 + 0x198, "green:" LED_FUNCTION_STATUS > > > > > > > > > > "-3"}, > > > > > > > > > > + { } > > > > > > > > > > +}; > > > > > > > > > > > > > > > > > > It seems to me like poking GPIO controller registers > > > > > > > > > directly. This is not good. The question still > > > > > > > > > remains: Can we simply register a GPIO (pin control) > > > > > > > > > driver and use an LED GPIO driver with an additional > > > > > > > > > board file that instantiates it? > > > > > > > > > > > > > > > > I wrote about that in reply to the cover letter. My > > > > > > > > view is still that it would be an abstraction with only > > > > > > > > one user, just causing work and likely not ending up as > > > > > > > > generic as it might eventually have to be. > > > > > > > > > > > > > > > > The region is reserved, not sure what the problem with > > > > > > > > the "poking" is. > > > > > > > > > > > > > > > > > > > > > > Maybe i do not understand all the benefits of such a > > > > > > > > split at this point in time. At the moment i only see > > > > > > > > work with hardly any benefit, not just work for me but > > > > > > > > also for maintainers. I sure do not mean to be > > > > > > > > ignorant. Maybe you go into details and convince me or > > > > > > > > we wait for other peoples opinions on how to proceed, > > > > > > > > maybe there is a second user that i am not aware of? > > > > > > > > Until i am convinced otherwise i will try to argue that > > > > > > > > a single-user-abstraction is needless work/code, and > > > > > > > > should be done only when actually needed. > > > > > > > > > > > > > > I have just read your messages (there is a cover letter > > > > > > > and additional email which was sent lately). > > > > > > > > > > > > > > I would like to know what the CPU model number on that > > > > > > > board is. Than we can continue to see what possibilities > > > > > > > we have here. > > > > > > > > > > > > I guess we are talking about the one that uses memory > > > > > > mapped, that is called an "IPC127E" and seems to have > > > > > > either Intel Atom E3940 or E3930 which seems to be Apollo > > > > > > Lake. > > > > > > > > > > Yep. And now the question, in my patch series you should have > > > > > got the apollolake-pinctrl driver loaded (if not, we have to > > > > > investigate why it's not being instantiated). This will give > > > > > you a read GPIO driver. > > > > > > > > Ok, so there is the existing driver i asked about several times. > > > > Thanks for pointing it out. > > > > > > If you remember, I asked you about the chip twice :-) > > > I assumed that we were talking about Apollo Lake and that's why I > > > insisted that the driver is in the kernel source tree. > > > > Sorry, maybe i did not get the context of your question and which of > > the machines you asked about. Now it is clear i guess. > > > > > > > > > > So, you may use regular LED GPIO on top of it > > > > > (https://elixir.bootlin.com/linux/latest/source/drivers/leds/leds-gpio.c). > > > > > I would like to understand why it can't be achieved. > > > > > > > > Will have a look. Unfortunately this one box is missing in my > > > > personal collection, but let us assume that one can be > > > > converted to that existing driver. > > > > > > OK! > > > > > > > I guess that will still mean the PIO-based part of the LED > > > > driver will have to stay as is. > > > > > > Probably yes. I haven't looked into that part and I have no idea > > > what's going on on that platform(s). > > > > > > > Which i guess means the series can be reviewed as if the mmio bits > > for that apollo lake would not be in it, maybe i will even send a > > version without that one box. We have others in the "backlog" might > > as well delay that one if it helps sorting out a base-line. > > It depends on the role of P2SB in this case. > Shouldn't you drop that completely out from this series? We still have one such GPIO bit in one wdt, might be "sunrisepoint". Still have to clarify if that can maybe be dropped for a first step. > Otherwise we have to understand what to do with it. > It seems the best approach can be to expose the P2SB device to Linux, > but we have to answer to Bjorn's request about region reservations. I now have such an apollolake to play with. Having your series applied my LEDs driver fails to alloc that mmio memory, so far so correct. Still have to figure out how to use those GPIOs. I was hoping to find a gpiochip in sysfs and be able to export gpios to userland. Enrico, does "gpio_amd_fch" show up under /sys/class/gpio as a gpiochip? Or how to interact with that driver before basing another one on top? I am afraid that pinctrl-broxton might be loaded but not working as expected. Henning