Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp609656pxk; Thu, 1 Oct 2020 09:58:33 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwpPcOPlsiAr+D/cg1Mk/ZdE12ahhIdDZFMhbCfUDiQvbY2UNzOgbgvaeQrdt75qsIXGSxL X-Received: by 2002:aa7:d35a:: with SMTP id m26mr8885775edr.183.1601571513640; Thu, 01 Oct 2020 09:58:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1601571513; cv=none; d=google.com; s=arc-20160816; b=GG85P8dxup0rLc7Be3ncl0wSnblaNGhvTYUnATDH6koigQdwPWyEB5BN3qKSnWvXr6 1mszMyCLCWIZgJibfK3BnXGWRYpEA2JCODheI6xG9lJr9T3IrcQgQL4rP5yqz4nwxTf1 vSkJ4CWCniC6ORueRo9f8k+x+mUgLajIpNIZ4ImaHiXh/E7mq6LnsbifqIZv9JEze36o v2U/9jDjEBHmm0cz7a1U8HKwFkm2Dc/DvtlQT+zOwahY8hJcbysCneynHiinAYljC3oK QCi6OngT1UraKqSexmegQljpO6/8PJG0LhUrbt7miaBIcqKkwWnZgQUHdOeN8kIVpDZD 8LHw== 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:dkim-signature; bh=NrH22gwtp1tqPznxA4uG7fXVKT4yV6NRDxpd9M2hv+Q=; b=N7wFmgTaMcyNBnOJGCqsB7E1mt6R83bnTnSal9VJ9rmKlkCbOWOns23eDeyfPBPIJp bMwB0ymiLtrIw+W37rbU2SKTZRWHlWmpdx8NDojrTvynrK53Yl9QAXObFMYozQ5Z/LZk s77567WYi328lX18PtWN/OFxBlKZfqpbyf9gyKfaLu87Gezp0otrlk8AEAI9RT8w/6jY 1kkAYAGO05bpSR9QD+L1p34uuJDFhLqZLzFHF+p3LrJhHObWy2gVOLO55ttcyqUOQPSv bw25dvB6tJsIu44i6rR6hURUCQmynrR489urqUYhcqyCsv8y7qmuSvDXCld0RME+i6ZN vTWA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=p10ja8kQ; 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=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id i11si3623915ejv.366.2020.10.01.09.58.08; Thu, 01 Oct 2020 09:58:33 -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; dkim=pass header.i=@kernel.org header.s=default header.b=p10ja8kQ; 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=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732721AbgJAQ5I (ORCPT + 99 others); Thu, 1 Oct 2020 12:57:08 -0400 Received: from mail.kernel.org ([198.145.29.99]:34560 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732642AbgJAQ5H (ORCPT ); Thu, 1 Oct 2020 12:57:07 -0400 Received: from kozik-lap.mshome.net (unknown [194.230.155.194]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id EBFD220872; Thu, 1 Oct 2020 16:57:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1601571427; bh=7aS47hyWVPzM2FOSyLz/dbb6z+WLaI/DDtFRbtnS01M=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=p10ja8kQugkWnEQ8ppSUuDgBeFdJpiuH7SskLjgzN7fFSLM+EFUJeXa64gMX8Pcxl xN2KBBX3baZW9zZIHdIsfflXSYlWsqXEdwZWXCZGLUc6xM8t2spjAfHu82qcq28z6j zAgZ0MG3ssa0lcHtINmR5O/K/UmgqT0eTp16ZwRk= From: Krzysztof Kozlowski To: Sylwester Nawrocki , Tomasz Figa , Chanwoo Choi , Michael Turquette , Stephen Boyd , Kukjin Kim , Krzysztof Kozlowski , linux-samsung-soc@vger.kernel.org, linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: Marek Szyprowski Subject: [PATCH 1/2] soc: samsung: exynos-pmu: instantiate clkout driver as MFD Date: Thu, 1 Oct 2020 18:56:45 +0200 Message-Id: <20201001165646.32279-2-krzk@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201001165646.32279-1-krzk@kernel.org> References: <20201001165646.32279-1-krzk@kernel.org> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The Exynos clock output (clkout) driver uses same register address space (Power Management Unit address space) as Exynos PMU driver and same set of compatibles. It was modeled as clock provider instantiated with CLK_OF_DECLARE_DRIVE(). This however brings ordering problems and lack of probe deferral, therefore clkout driver should be converted to a regular module and instantiated as a child of PMU driver to be able to use existing compatibles and address space. Signed-off-by: Krzysztof Kozlowski --- drivers/soc/samsung/exynos-pmu.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/soc/samsung/exynos-pmu.c b/drivers/soc/samsung/exynos-pmu.c index 17304fa18429..a18c93a4646c 100644 --- a/drivers/soc/samsung/exynos-pmu.c +++ b/drivers/soc/samsung/exynos-pmu.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include @@ -97,6 +98,10 @@ static const struct of_device_id exynos_pmu_of_device_ids[] = { { /*sentinel*/ }, }; +static const struct mfd_cell exynos_pmu_devs[] = { + { .name = "exynos-clkout", }, +}; + struct regmap *exynos_get_pmu_regmap(void) { struct device_node *np = of_find_matching_node(NULL, @@ -110,6 +115,7 @@ EXPORT_SYMBOL_GPL(exynos_get_pmu_regmap); static int exynos_pmu_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; + int ret; pmu_base_addr = devm_platform_ioremap_resource(pdev, 0); if (IS_ERR(pmu_base_addr)) @@ -128,6 +134,11 @@ static int exynos_pmu_probe(struct platform_device *pdev) platform_set_drvdata(pdev, pmu_context); + ret = devm_mfd_add_devices(dev, PLATFORM_DEVID_NONE, exynos_pmu_devs, + ARRAY_SIZE(exynos_pmu_devs), NULL, 0, NULL); + if (ret) + return ret; + if (devm_of_platform_populate(dev)) dev_err(dev, "Error populating children, reboot and poweroff might not work properly\n"); -- 2.17.1