Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp312085pxu; Fri, 11 Dec 2020 03:01:03 -0800 (PST) X-Google-Smtp-Source: ABdhPJxI0qT+n2Y87Zb6qqiFQT7PieSc+nf6aM21j/NMU70v42dzrjKAyOn4lTGHn3v2TXSB+wsb X-Received: by 2002:a17:906:3102:: with SMTP id 2mr10329000ejx.135.1607684463115; Fri, 11 Dec 2020 03:01:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1607684463; cv=none; d=google.com; s=arc-20160816; b=jNqiDSLCxT7tJky20Gbe6v7cllFbQ39gnlOO7nTdxoJv2jhYpcI86AtMJpuU22tV4K qaSfx8DJzkQvGOiCgf4VgS7UjLE5dOOo0pUiWp2YwbwGRX3WJvEWQxK2/iCx/wKmxChF R0kJd0a8gaVGOBsiml2opCDRoiAOE+YOKcABhBu1CiyiilmpK0f9QzY3Ko7ZkpMKr9/M rVSG/0W75JV8HXyzS8L7zEhLk2c00r8gw54zKyw/xfLXUvX3qwfm+QGadhqD5GcyDdvb 1t++YgXaDTdsjy+AAgs55rwXnMDXlwlknTPUyROalGZq0V6gRSin8ScsgtWpLRonnWO/ v3dA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from; bh=YNqXXpiEKHnGubXZ3SBjg8K3G7siCvpVH3u/ZP4Lta0=; b=QgceYES/osapO7RrSOwSyyiTs4a+iA9aVh1+x1vmj1qQGTPm1sna1IMQ57ExoejwwF BaxnJOkVV0mqc7bTkU9Pow5ae/k66c1dNkptigBV7uvc+vhbPEZUMcH6b+2atuPW2vG6 y9lCp17BJQwc87F4ndZvyRDWnjllAUHh6lDu5FNf047WFtM4PDX/R7/gJ0BaeEtUfLQG 95mZnc51SsP4foz9mHK1aWHrr1A1Y2I25Ic6qrSOXC1nk6Gv9iVMic6jfw/TVhom8lsp FQ5hNdBQadBp67RVhnfHdBk2qZPtOQoyxfoSqXoAT9l9+VqiXJsHLzlac5Izr0h+i7ZF RFJw== 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=arm.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id a15si4901700eju.355.2020.12.11.03.00.40; Fri, 11 Dec 2020 03:01:03 -0800 (PST) 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=arm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2394917AbgLKBYH (ORCPT + 99 others); Thu, 10 Dec 2020 20:24:07 -0500 Received: from foss.arm.com ([217.140.110.172]:49800 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2394745AbgLKBVf (ORCPT ); Thu, 10 Dec 2020 20:21:35 -0500 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 359DE147A; Thu, 10 Dec 2020 17:20:18 -0800 (PST) Received: from localhost.localdomain (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 3A3223F66B; Thu, 10 Dec 2020 17:20:16 -0800 (PST) From: Andre Przywara To: Maxime Ripard , Chen-Yu Tsai , Jernej Skrabec Cc: Icenowy Zheng , Linus Walleij , Rob Herring , =?UTF-8?q?Cl=C3=A9ment=20P=C3=A9ron?= , Shuosheng Huang , Yangtao Li , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-sunxi@googlegroups.com, Lee Jones Subject: [PATCH v2 10/21] mfd: axp20x: Allow AXP chips without interrupt lines Date: Fri, 11 Dec 2020 01:19:23 +0000 Message-Id: <20201211011934.6171-11-andre.przywara@arm.com> X-Mailer: git-send-email 2.14.1 In-Reply-To: <20201211011934.6171-1-andre.przywara@arm.com> References: <20201211011934.6171-1-andre.przywara@arm.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Currently the AXP chip requires to have its IRQ line connected to some interrupt controller, and will fail probing when this is not the case. On a new Allwinner SoC (H616) there is no NMI pin anymore, so the interrupt functionality of the AXP chip is simply not available. Check whether the DT describes the AXP chip as an interrupt controller before trying to register the irqchip, to avoid probe failures on setups without an interrupt. Signed-off-by: Andre Przywara --- drivers/mfd/axp20x.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/drivers/mfd/axp20x.c b/drivers/mfd/axp20x.c index aa59496e4376..a52595c49d40 100644 --- a/drivers/mfd/axp20x.c +++ b/drivers/mfd/axp20x.c @@ -959,12 +959,17 @@ int axp20x_device_probe(struct axp20x_dev *axp20x) AXP806_REG_ADDR_EXT_ADDR_SLAVE_MODE); } - ret = regmap_add_irq_chip(axp20x->regmap, axp20x->irq, - IRQF_ONESHOT | IRQF_SHARED | axp20x->irq_flags, - -1, axp20x->regmap_irq_chip, &axp20x->regmap_irqc); - if (ret) { - dev_err(axp20x->dev, "failed to add irq chip: %d\n", ret); - return ret; + if (!axp20x->dev->of_node || + of_property_read_bool(axp20x->dev->of_node, "interrupt-controller")) { + ret = regmap_add_irq_chip(axp20x->regmap, axp20x->irq, + IRQF_ONESHOT | IRQF_SHARED | axp20x->irq_flags, + -1, axp20x->regmap_irq_chip, + &axp20x->regmap_irqc); + if (ret) { + dev_err(axp20x->dev, "failed to add irq chip: %d\n", + ret); + return ret; + } } ret = mfd_add_devices(axp20x->dev, -1, axp20x->cells, -- 2.17.5