From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wr1-f42.google.com (mail-wr1-f42.google.com [209.85.221.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 59AD1513558 for ; Thu, 15 Oct 2026 10:23:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.42 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1792059830; cv=none; b=iELc6mwFf7AFwEYdmdkPvBuOi8zlx3oV3jH2bX9G1eBixQqdXwmEDPExkLrA2/9JvcnngeahHBbWNv5ox0/qf73MJlZd9Edxm8em7WLq98YAoRBEpXQa0l+co0yeNLhnpvQwbZk0nu5g56vlxPrmk60GamU3jnaInV7eTBppfVw= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1792059830; c=relaxed/simple; bh=nSmXuMKhoIgAobqpkzs+VXQaRMleH57PzdSWjcWc2zM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mPgjGhQng4+yIm3ervWMTawK4ObbEajuHKfW/xgRT6RHDzwIzLNetD8VC85CZkCe1IIdlwVnbwNolyR/FJ0eDQo61RqY1T1GR2jjkxokMZ6I51dfRhj9pcmYJTugMzdMFi2YCcADRZUrOt8OhXpDhYlw5BIcxQ203vF1Y5dfBdw= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=G1bmfbfb; arc=none smtp.client-ip=209.85.221.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="G1bmfbfb" Received: by mail-wr1-f42.google.com with SMTP id ffacd0b85a97d-48870973bddso3023616f8f.1 for ; Thu, 15 Oct 2026 03:23:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1792059826; x=1792664626; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=HteFBMsv61wMUi+iQYixSn1H5G1GsfDrtUwr2aL1cHg=; b=G1bmfbfbhZpSyS+0T9SyKr8bo1LQdS8wSGccWKWCpunwCRS5HGjEuwZzPSL7HXHo4x JpHNGZIhWP/8tVZsIx7MLvCezVNmyoqIlg/ofe1XISZk0OzdDc0a6IQCKMsyoWlB8pGE HVrQCOtUubg2UVXbWnd4A96LJAiskP627wMlfJYOsEndqualBXz8V0IkyoDAUswJ9+wB XCgSmJx+p8azki+EAzjidkSa32igo074pXzWmnrE8bQBRXl3j9rgrZFVfeCVdLyvey6V JU1gO/T0fFeLtjGSReXsjB2JosOD/YOJjTBBVB3lgS5ev1qySVydW9jIVLvYzA5cinMh mnxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1792059826; x=1792664626; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=HteFBMsv61wMUi+iQYixSn1H5G1GsfDrtUwr2aL1cHg=; b=B25ISb2tTPiDrGYIyd4q0DoEHVsSLSprfBzNnC7CF4oBBjcw04A6XG2Vn1jrwUbnIG pQJBsBI13U68A7JedmtW4P1kfSodAOlnEm8PKiHFfhcreKCjbMT3JPqffwR5XXFQmvG0 3M1cv+mC41l8JpISMg0nHSC8z/SenmgYJiw32W08IdouvzP60/6HrpdgxWlgFiWWM+J3 kijOPK/Wt4T1tlFw4Kr4jMkYcsYnSARNFzAGIQ0GINhU+n7KLRlp82+G0eLAzfRCHjZ7 Ip9Hrcc9tDu4mPHwWA1880VV/ig1WgGjYPQ6/3CNt5I+3Z8NC0QSy718uiZzdu0vIm8z hxFg== X-Forwarded-Encrypted: i=1; AKwUvBybEZSuSf3tN4xMmQFs4gl9nc/9hCCss1lE85KKlCzRbr+CO0BS8qniJHZZWgEmEC/Kk4/kJlz9Efr0gv4=@vger.kernel.org X-Gm-Message-State: AFq9FYKVZL0Q1h4LKLxPBCImTJ/XmfiKOEuUKqaiEoZxJnPlpOsrt1FW HCpU65Rzm4guYxsamYPSG/wZ8nGZPYM3hVt2T69UYSRe0OBScPj86GAF X-Gm-Gg: AYBFou0rZHcQYQKY9HMtnW8VUDDUHxA5jvpLdK/lNOotNrVcleIAzoa9wsVm6C2uSiY XVG3Q6Wpc20q5DjOpgqfnICkpZAWGJvXdJ6GhR/gAuNxac6kaWZYsGpTge1PVgBVXC52F+v80kf YhaS+lRqaqVN01eXdjcaQlKwTbof43kKp/Gy1qL4ceD5LmQmT2q9OThxKI4e0583vZKP5arIX6B Fax8Y4okYqozbzwFFuGJpquutFstmJSwnBsYmw/zK/aNdoxwnIp4E8qPIfx0ULDe6h4KJ0ODP/J y1F8gHOWjCz/8H+C6yZGp7X+2XI6pDh8i2U4Dt1cuVTc7HFPhNxXcWF9lbggxhIoGi4s5wUS0oD ZnfaK5chBTddnnykHXh103RGiSynNjbRRSH6sr8iYwDc4QlzB8eqiOSVP/DCFuhKB3+6nZItVFM G60b1hPvyUyYFKxhJSOdXcglw8KqGYHm+2oQin/WuMkvaOcTX8EecXHzd7fo8lWqJg6LduwGwN2 ReCrOTI27lo6O7yBiM= X-Received: by 2002:adf:e005:0:20b0:48b:437:8fbb with SMTP id ffacd0b85a97d-48db948204amr27843290f8f.19.1792059826507; Thu, 15 Oct 2026 03:23:46 -0700 (PDT) Received: from xeon ([188.163.112.62]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-48de0ab6361sm14952542f8f.32.2026.10.15.03.23.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Oct 2026 03:23:45 -0700 (PDT) From: Svyatoslav Ryhel To: Aaro Koskinen , Andreas Kemnade , Kevin Hilman , Roger Quadros , Tony Lindgren , Lee Jones , Dmitry Osipenko , Svyatoslav Ryhel Cc: linux-omap@vger.kernel.org, mfd@lists.linux.dev, linux-kernel@vger.kernel.org Subject: [PATCH v1 2/2] mfd: tps65910: Add restart handler Date: Thu, 15 Oct 2026 13:23:20 +0300 Message-ID: <20261015102320.23760-3-clamor95@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20261015102320.23760-1-clamor95@gmail.com> References: <20261015102320.23760-1-clamor95@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: Dmitry Osipenko Add restart handler to reset hardware properly on system reboot. Tested-by: Svyatoslav Ryhel # ASUS TF201 Tested-by: Maxim Schwalm # ASUS TF700T Signed-off-by: Dmitry Osipenko Signed-off-by: Svyatoslav Ryhel --- drivers/mfd/tps65910.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/drivers/mfd/tps65910.c b/drivers/mfd/tps65910.c index 18b76359046b8..a1734fee1485a 100644 --- a/drivers/mfd/tps65910.c +++ b/drivers/mfd/tps65910.c @@ -440,6 +440,20 @@ static int tps65910_power_off(struct sys_off_data *data) return NOTIFY_DONE; } +static int tps65910_restart(struct sys_off_data *data) +{ + struct i2c_client *tps65910_i2c_client = data->cb_data; + struct tps65910 *tps65910; + + tps65910 = dev_get_drvdata(&tps65910_i2c_client->dev); + + regmap_update_bits(tps65910->regmap, TPS65910_DEVCTRL, + DEVCTRL_DEV_OFF_RST_MASK | DEVCTRL_DEV_ON_MASK, + DEVCTRL_DEV_OFF_RST_MASK); + + return NOTIFY_DONE; +} + static int tps65910_i2c_probe(struct i2c_client *i2c) { const struct i2c_device_id *id = i2c_client_get_device_id(i2c); @@ -525,6 +539,14 @@ static int tps65910_i2c_probe(struct i2c_client *i2c) "failed to register power-off handler: %d\n", ret); return ret; } + + ret = devm_register_restart_handler(&i2c->dev, + tps65910_restart, i2c); + if (ret) { + dev_err(&i2c->dev, + "failed to register restart handler: %d\n", ret); + return ret; + } } ret = devm_mfd_add_devices(tps65910->dev, -1, -- 2.53.0