Received: by 2002:a05:6a10:a852:0:0:0:0 with SMTP id d18csp1866323pxy; Sun, 2 May 2021 04:58:45 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwhDhNyviVKJKA9f7/xI0dgCSgPNlW0h5EBZZKZbDNC2fExRTk0Go6mN8R5+xujm+R+fPYV X-Received: by 2002:a17:902:7402:b029:ed:1bf0:1ef1 with SMTP id g2-20020a1709027402b02900ed1bf01ef1mr15246298pll.24.1619956725193; Sun, 02 May 2021 04:58:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1619956725; cv=none; d=google.com; s=arc-20160816; b=flZyXqeCtPJsQzRsiAJwrYuiyQZRR8vGDyXDPpRwnyuTwgdhqjFwWr0kxpw9GrtgFT ApMNjiYleXj3kT9mrVYwzI8UQZHYaTbuZwT7rjrq0+89vaizL3AAB2DabiXUeuzaxuPQ 07Ag1KVpLQVGkV3Eo31MM043Dv1AyKnQIwN+D0aQTx3A6UnNnEiSfjRBHV/bjLmwYCGi pewnrZrkb3KPdTDh5BP75KdjzZKoAkdwLn8cYADuZK1CQYQaP2NsEQD0+F4hlet0foOA I7KtNsDeuiEqYCEuYKYi1AFOdAEhqgWMP/ftUYer3HX5ZLI4u/+cwCHv+IB057W55jOP uESA== 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:date:subject:cc:to:from :dkim-signature; bh=kLZRS6xLdXCHFPyFw/CKeSsIUfpwtnMkQJdLEnE9b74=; b=oRtCxQW5WOcJDFnXfmyY7IdTp4vCoycgfTJw7WQ/z/3fvkFfclQ8nYbEfnniBfPPkI N2qnL3y/kHq0wCIDBEuOkePiDDANRkcUE22ZCbWRqjdGB2WDmTKASSNaygPtk2siubW5 /+XaqeX1EtjB8pe3KbFe+GoOaq0AyAraj4ZQN2xZ8QsAyKXu6MZXzVGdO0Ic9KexD5G7 8m6GlJGSykmBttFkpu0DFclXHtq+UCwYadQkB8NnsNwnDSLUQh6QSbl+BkpXRSaQoOvY ZWh2Frwc/SPaweUm7lRQB+JyJr5JLLg0WkHXvfjquZWkLPTTNHuuMx752pc9rhpztFNi NzAg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@snejp.pl header.s=gmail header.b=cCyPSrS9; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id mw15si4459544pjb.154.2021.05.02.04.58.32; Sun, 02 May 2021 04:58:45 -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=@snejp.pl header.s=gmail header.b=cCyPSrS9; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232187AbhEBLyk (ORCPT + 99 others); Sun, 2 May 2021 07:54:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41592 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232166AbhEBLyj (ORCPT ); Sun, 2 May 2021 07:54:39 -0400 Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com [IPv6:2a00:1450:4864:20::632]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0CE5DC06138B for ; Sun, 2 May 2021 04:53:47 -0700 (PDT) Received: by mail-ej1-x632.google.com with SMTP id gx5so3731768ejb.11 for ; Sun, 02 May 2021 04:53:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=snejp.pl; s=gmail; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=kLZRS6xLdXCHFPyFw/CKeSsIUfpwtnMkQJdLEnE9b74=; b=cCyPSrS9YnMEUL5SKK3suBuQidAfeHspCw+UGMMogzqbbxbZVJowe/mO2A5dRGf9Xb wDnGaRmiJPXdrcKsjdDEe4vUXnWOs/mgaZ7x5zVMRBUBZ7lXcOilADhJSMFg5kmdwVfI yiDJXeTQ8ZT3y/YNvxaTBWa8PnsXd/menZop84OnEGKwVKkWq9sr6P9UufAVvrYlKLq+ ARBTNx79YKTpMBYkPhU/xW6t5SFX4ONHnT+NQbaToAW50ok7bwkRzaXThWD6qSDlBBsb YRXvVe2AW83T7psGLp0YXxfZAITZzW2GJ49uyFcE8AqbzRzkNPPZ+qoyhUcIL1IV7lq+ eg/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=kLZRS6xLdXCHFPyFw/CKeSsIUfpwtnMkQJdLEnE9b74=; b=eBaW2zc7WTzvsRPGEIh3jhLeldOPniWeS0tTgl8cQrMSUSSYfNxQx3/hWE1pbEnkd3 kO83qpZu8YEmTmAWnzOtyYirBAcy3v7lqeS9brdbdGVZzAD3Abj2PM5/44rlfckXN1jU e8mausVlyN3VLJM9z5SFctp6AEi50slqUsRe5d6Reo90heJp4FI3CHLzsERMkXAJbuOk G0KgOWhnNkI/BX7gq9NZbRuxtteKVXXuBLbD0sECrHrclRMGDZ4+NNlh4392u2az7a/J hxXSfws7GnX7FrIt62y5yzuv4L3dm9L1NziX16HCWxmMsSfn2K8IPhCvxaYBFQqiFo2c 4JUQ== X-Gm-Message-State: AOAM533PEXqzm6D9ShAaovBtFHgI7Say1R/DihaZLvCIbXT7OP0Q2e80 qLHPaBDQjMxDIRRS35cadoX9JA== X-Received: by 2002:a17:907:6289:: with SMTP id nd9mr12128307ejc.384.1619956425759; Sun, 02 May 2021 04:53:45 -0700 (PDT) Received: from PackardBell (192038133011.mbb.telenor.dk. [192.38.133.11]) by smtp.googlemail.com with ESMTPSA id mp36sm8598075ejc.48.2021.05.02.04.53.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 02 May 2021 04:53:45 -0700 (PDT) Received: from localhost (PackardBell [local]) by PackardBell (OpenSMTPD) with ESMTPA id 0c0b6556; Sun, 2 May 2021 11:53:35 +0000 (UTC) From: Bartosz Dudziak To: Andy Gross , Bjorn Andersson , Liam Girdwood , Mark Brown , Rob Herring , Kathiravan T , linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org Cc: Bartosz Dudziak Subject: [PATCH 2/2] regulator: qcom_smd: Add PM8226 regulator support Date: Sun, 2 May 2021 13:53:04 +0200 Message-Id: <20210502115304.8570-2-bartosz.dudziak@snejp.pl> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210502115304.8570-1-bartosz.dudziak@snejp.pl> References: <20210502115304.8570-1-bartosz.dudziak@snejp.pl> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add support for PM8226 regulator which is commonly used with MSM8226 SoCs. Signed-off-by: Bartosz Dudziak --- drivers/regulator/qcom_smd-regulator.c | 83 ++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) diff --git a/drivers/regulator/qcom_smd-regulator.c b/drivers/regulator/qcom_smd-regulator.c index bb944ee5fe..05df7b00e3 100644 --- a/drivers/regulator/qcom_smd-regulator.c +++ b/drivers/regulator/qcom_smd-regulator.c @@ -251,6 +251,50 @@ static const struct regulator_desc pma8084_switch = { .ops = &rpm_switch_ops, }; +static const struct regulator_desc pm8226_hfsmps = { + .linear_ranges = (struct linear_range[]) { + REGULATOR_LINEAR_RANGE(375000, 0, 95, 12500), + REGULATOR_LINEAR_RANGE(1575000, 96, 158, 25000), + }, + .n_linear_ranges = 2, + .n_voltages = 159, + .ops = &rpm_smps_ldo_ops, +}; + +static const struct regulator_desc pm8226_ftsmps = { + .linear_ranges = (struct linear_range[]) { + REGULATOR_LINEAR_RANGE(350000, 0, 184, 5000), + REGULATOR_LINEAR_RANGE(1280000, 185, 261, 10000), + }, + .n_linear_ranges = 2, + .n_voltages = 262, + .ops = &rpm_smps_ldo_ops, +}; + +static const struct regulator_desc pm8226_pldo = { + .linear_ranges = (struct linear_range[]) { + REGULATOR_LINEAR_RANGE(750000, 0, 63, 12500), + REGULATOR_LINEAR_RANGE(1550000, 64, 126, 25000), + REGULATOR_LINEAR_RANGE(3100000, 127, 163, 50000), + }, + .n_linear_ranges = 3, + .n_voltages = 164, + .ops = &rpm_smps_ldo_ops, +}; + +static const struct regulator_desc pm8226_nldo = { + .linear_ranges = (struct linear_range[]) { + REGULATOR_LINEAR_RANGE(750000, 0, 63, 12500), + }, + .n_linear_ranges = 1, + .n_voltages = 64, + .ops = &rpm_smps_ldo_ops, +}; + +static const struct regulator_desc pm8226_switch = { + .ops = &rpm_switch_ops, +}; + static const struct regulator_desc pm8x41_hfsmps = { .linear_ranges = (struct linear_range[]) { REGULATOR_LINEAR_RANGE( 375000, 0, 95, 12500), @@ -746,6 +790,44 @@ static const struct rpm_regulator_data rpm_pm8916_regulators[] = { {} }; +static const struct rpm_regulator_data rpm_pm8226_regulators[] = { + { "s1", QCOM_SMD_RPM_SMPA, 1, &pm8226_hfsmps, "vdd_s1" }, + { "s2", QCOM_SMD_RPM_SMPA, 2, &pm8226_ftsmps, "vdd_s2" }, + { "s3", QCOM_SMD_RPM_SMPA, 3, &pm8226_hfsmps, "vdd_s3" }, + { "s4", QCOM_SMD_RPM_SMPA, 4, &pm8226_hfsmps, "vdd_s4" }, + { "s5", QCOM_SMD_RPM_SMPA, 5, &pm8226_hfsmps, "vdd_s5" }, + { "l1", QCOM_SMD_RPM_LDOA, 1, &pm8226_nldo, "vdd_l1_l2_l4_l5" }, + { "l2", QCOM_SMD_RPM_LDOA, 2, &pm8226_nldo, "vdd_l1_l2_l4_l5" }, + { "l3", QCOM_SMD_RPM_LDOA, 3, &pm8226_nldo, "vdd_l3_l24_l26" }, + { "l4", QCOM_SMD_RPM_LDOA, 4, &pm8226_nldo, "vdd_l1_l2_l4_l5" }, + { "l5", QCOM_SMD_RPM_LDOA, 5, &pm8226_nldo, "vdd_l1_l2_l4_l5" }, + { "l6", QCOM_SMD_RPM_LDOA, 6, &pm8226_pldo, "vdd_l6_l7_l8_l9_l27" }, + { "l7", QCOM_SMD_RPM_LDOA, 7, &pm8226_pldo, "vdd_l6_l7_l8_l9_l27" }, + { "l8", QCOM_SMD_RPM_LDOA, 8, &pm8226_pldo, "vdd_l6_l7_l8_l9_l27" }, + { "l9", QCOM_SMD_RPM_LDOA, 9, &pm8226_pldo, "vdd_l6_l7_l8_l9_l27" }, + { "l10", QCOM_SMD_RPM_LDOA, 10, &pm8226_pldo, "vdd_l10_l11_l13" }, + { "l11", QCOM_SMD_RPM_LDOA, 11, &pm8226_pldo, "vdd_l10_l11_l13" }, + { "l12", QCOM_SMD_RPM_LDOA, 12, &pm8226_pldo, "vdd_l12_l14" }, + { "l13", QCOM_SMD_RPM_LDOA, 13, &pm8226_pldo, "vdd_l10_l11_l13" }, + { "l14", QCOM_SMD_RPM_LDOA, 14, &pm8226_pldo, "vdd_l12_l14" }, + { "l15", QCOM_SMD_RPM_LDOA, 15, &pm8226_pldo, "vdd_l15_l16_l17_l18" }, + { "l16", QCOM_SMD_RPM_LDOA, 16, &pm8226_pldo, "vdd_l15_l16_l17_l18" }, + { "l17", QCOM_SMD_RPM_LDOA, 17, &pm8226_pldo, "vdd_l15_l16_l17_l18" }, + { "l18", QCOM_SMD_RPM_LDOA, 18, &pm8226_pldo, "vdd_l15_l16_l17_l18" }, + { "l19", QCOM_SMD_RPM_LDOA, 19, &pm8226_pldo, "vdd_l19_l20_l21_l22_l23_l28" }, + { "l20", QCOM_SMD_RPM_LDOA, 20, &pm8226_pldo, "vdd_l19_l20_l21_l22_l23_l28" }, + { "l21", QCOM_SMD_RPM_LDOA, 21, &pm8226_pldo, "vdd_l19_l20_l21_l22_l23_l28" }, + { "l22", QCOM_SMD_RPM_LDOA, 22, &pm8226_pldo, "vdd_l19_l20_l21_l22_l23_l28" }, + { "l23", QCOM_SMD_RPM_LDOA, 23, &pm8226_pldo, "vdd_l19_l20_l21_l22_l23_l28" }, + { "l24", QCOM_SMD_RPM_LDOA, 24, &pm8226_nldo, "vdd_l3_l24_l26" }, + { "l25", QCOM_SMD_RPM_LDOA, 25, &pm8226_pldo, "vdd_l25" }, + { "l26", QCOM_SMD_RPM_LDOA, 26, &pm8226_nldo, "vdd_l3_l24_l26" }, + { "l27", QCOM_SMD_RPM_LDOA, 27, &pm8226_pldo, "vdd_l6_l7_l8_l9_l27" }, + { "l28", QCOM_SMD_RPM_LDOA, 28, &pm8226_pldo, "vdd_l19_l20_l21_l22_l23_l28" }, + { "lvs1", QCOM_SMD_RPM_VSA, 1, &pm8226_switch, "vdd_lvs1" }, + {} +}; + static const struct rpm_regulator_data rpm_pm8941_regulators[] = { { "s1", QCOM_SMD_RPM_SMPA, 1, &pm8x41_hfsmps, "vdd_s1" }, { "s2", QCOM_SMD_RPM_SMPA, 2, &pm8x41_hfsmps, "vdd_s2" }, @@ -1092,6 +1174,7 @@ static const struct of_device_id rpm_of_match[] = { { .compatible = "qcom,rpm-mp5496-regulators", .data = &rpm_mp5496_regulators }, { .compatible = "qcom,rpm-pm8841-regulators", .data = &rpm_pm8841_regulators }, { .compatible = "qcom,rpm-pm8916-regulators", .data = &rpm_pm8916_regulators }, + { .compatible = "qcom,rpm-pm8226-regulators", .data = &rpm_pm8226_regulators }, { .compatible = "qcom,rpm-pm8941-regulators", .data = &rpm_pm8941_regulators }, { .compatible = "qcom,rpm-pm8950-regulators", .data = &rpm_pm8950_regulators }, { .compatible = "qcom,rpm-pm8953-regulators", .data = &rpm_pm8953_regulators }, -- 2.25.1