Received: by 10.213.65.68 with SMTP id h4csp3668617imn; Tue, 3 Apr 2018 08:49:48 -0700 (PDT) X-Google-Smtp-Source: AIpwx48ikKn2oIphglb7eIQshgKpJ6jfjHxXs9liiNZm+Ly2dSdknV/3Fq6N+tw6zB0R+OyqJzrc X-Received: by 10.99.110.5 with SMTP id j5mr9640473pgc.246.1522770588020; Tue, 03 Apr 2018 08:49:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1522770587; cv=none; d=google.com; s=arc-20160816; b=RmhTRMYkfX8ubcAZ2cCq3NpGT0Oj6SVxFRBDlHo1SfhWzqJ6TiLHA2/6wdjg/oOkNS ryXvpelw6zcm7iMaOP73xfdEwcL9+9TRadlL3wWZKlLqZR195QXTJQRWS6ENrK6G/TfG foc64+w7uavEV6psXZCNdBAChDoW7FdUosnXXnnVIxqOWfOppZu0lJ+O6FkPh0SUikaQ LTLmRZhYAxsBS1npxUwI1fUatOolI9hKIgudtvwO1itwaMcayoEvhsm/zlwyHOw9t8fR s1IW7GGYMPg5kWRmK1Z6cAINK7Okq5JiwjEvsi/f/Rnk78n0vxEfmYjhSJzrPjFWnzwq cIAw== 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=yfY59DT6+kQcXhJKP1J/MzhpkEtfOqZcIvcyEb7y6SU=; b=Td47+caZvwKVU9rkSOMcuvkUVdmxD7HJso5+A92fyl+ZzAS2bKP26hoGC4cFCJA1Lp WeZQGaIJXM550QscnjsZ00zNBpoB0xgJ/IiAFSWJFe6UcrwyhaaEonUaAvlmmTUWKQrV McAzdMNcw/b9AMYbIUcnKvPrbQQOzhIbgGhBsaNjNkBRlFDuCFQc1mE7sZ8nd6vOjurw oWN0+fuzIZaHN2HeB8CF4+mkLhZBJ9ffYKXyk5mBOgOolPArC45ZvrpCiBuvCqpOV0P2 pklZi56NjiLqkOuylSGA1c4jADhbIy/plGVn2KsMxLSQz+9FgIdzrBSy11xbfObVt14Y hmDg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gateworks-com.20150623.gappssmtp.com header.s=20150623 header.b=kuDCU+2J; 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 o11-v6si758856plk.199.2018.04.03.08.49.34; Tue, 03 Apr 2018 08:49:47 -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; dkim=pass header.i=@gateworks-com.20150623.gappssmtp.com header.s=20150623 header.b=kuDCU+2J; 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 S1751780AbeDCPsb (ORCPT + 99 others); Tue, 3 Apr 2018 11:48:31 -0400 Received: from mail-wm0-f52.google.com ([74.125.82.52]:54300 "EHLO mail-wm0-f52.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751410AbeDCPs3 (ORCPT ); Tue, 3 Apr 2018 11:48:29 -0400 Received: by mail-wm0-f52.google.com with SMTP id r191so3955055wmg.4 for ; Tue, 03 Apr 2018 08:48:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gateworks-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=yfY59DT6+kQcXhJKP1J/MzhpkEtfOqZcIvcyEb7y6SU=; b=kuDCU+2JFms7RiKVnvg2GOQIpJaCEzZvomHkp0JHv7o/K7OTtx4KjSLG0Zeg0PVbBT 1YI+JcUlrRXiOY/aDZSXuwptrUiXCtadL6w5hz6lsQ5YDG2cs6n9QK40jxbeQ8Y70nyW p4Ua96AMc//3tSU3m+ayQuR4eAX7YSQ8W3P86ckuulIBUNBu6iWexDuuhD1BJl5YUgMN 4Vwd/WevH6IHxG9SSW+enLiq13HTzRmZb4CbXFkBTFEJ889H5pVd1txo/RHX4W7QypA3 W/cR6VSqLBr5H5b9jq2Tx2fITJp4Cj/uHS5LBl28cRosf89wvfKZvtUeT/RQvpMevejj fcrw== 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=yfY59DT6+kQcXhJKP1J/MzhpkEtfOqZcIvcyEb7y6SU=; b=TcNK/6lr5F2MSBzho5ccuK1rwAldcSazgHpqjQb080LG0HNd4AS400T6uR4UT5Gsfd 2aQ6RrAYl/oc3baDM23mnGctr/7mMfsCE0H/koHEkoMkZ0b2MLUChLKmeZNBvkaVobmw GzlZ+qeoiwIbwvkyNqGNzNcRXjGEjcvPJ3ASxKRP+Q7EQ2mjG/McBuHria+Y8dtLrFCR W1/MK5yuIb3As/QDv3mckQgc1k3DtWUzDZwt3MYgnCusdn9Adic+k28cYj5bkrPbMYNA O1VHU/k/Tp0ENbZ0tbk8bTFZFGUUh2H54ZLbN4zT3NL4Ded47IpO6/9QiS8GbGagfXNl xCCw== X-Gm-Message-State: AElRT7FZnr/6T2v5/ud+8FG4PIgcMJ4lyCFUdJhDFKk+ddyqJWNI/wvn kZt3bIe+eLl96axqsqfsUmELgWWIGFZ61UJHz31QQw== X-Received: by 10.28.20.140 with SMTP id 134mr4154345wmu.87.1522770507595; Tue, 03 Apr 2018 08:48:27 -0700 (PDT) MIME-Version: 1.0 Received: by 10.28.6.66 with HTTP; Tue, 3 Apr 2018 08:48:27 -0700 (PDT) In-Reply-To: <1522250043-8065-3-git-send-email-tharvey@gateworks.com> References: <1522250043-8065-1-git-send-email-tharvey@gateworks.com> <1522250043-8065-3-git-send-email-tharvey@gateworks.com> From: Tim Harvey Date: Tue, 3 Apr 2018 08:48:27 -0700 Message-ID: Subject: Re: [PATCH v3 2/4] mfd: add Gateworks System Controller core driver To: Lee Jones , Rob Herring , Mark Rutland , Mark Brown , Dmitry Torokhov , Wim Van Sebroeck , Guenter Roeck Cc: linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-hwmon@vger.kernel.org, linux-input@vger.kernel.org, linux-watchdog@vger.kernel.org, Randy Dunlap 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 Wed, Mar 28, 2018 at 8:14 AM, Tim Harvey wrote: > The Gateworks System Controller (GSC) is an I2C slave controller > implemented with an MSP430 micro-controller whose firmware embeds the > following features: > - I/O expander (16 GPIO's) using PCA955x protocol > - Real Time Clock using DS1672 protocol > - User EEPROM using AT24 protocol > - HWMON using custom protocol > - Interrupt controller with tamper detect, user pushbotton > - Watchdog controller capable of full board power-cycle > - Power Control capable of full board power-cycle > > see http://trac.gateworks.com/wiki/gsc for more details > > + > +/* > + * gsc_powerdown - API to use GSC to power down board for a specific time > + * > + * secs - number of seconds to remain powered off > + */ > +static int gsc_powerdown(struct gsc_dev *gsc, unsigned long secs) > +{ > + int ret; > + unsigned char regs[4]; > + > + dev_info(&gsc->i2c->dev, "GSC powerdown for %ld seconds\n", > + secs); > + regs[0] = secs & 0xff; > + regs[1] = (secs >> 8) & 0xff; > + regs[2] = (secs >> 16) & 0xff; > + regs[3] = (secs >> 24) & 0xff; > + ret = regmap_bulk_write(gsc->regmap, GSC_TIME_ADD, regs, 4); > + > + return ret; > +} Any feedback on the 'powerdown' sysfs attribute that hooks to this function? This allows the GSC to disable the board primary power supply for 2^32 seconds and is often used to 'reset' the board although it could also be used to put the board in a power down state longer. I'm wondering if there is a more appropriate API for this in the kernel that I don't know about. I would also like to register a restart handler using this but I believe that ARM restart handlers currently can not use I2C - is that correct? Regards, Tim