Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.2/patches/813297/?format=api
{ "id": 813297, "url": "http://patchwork.ozlabs.org/api/1.2/patches/813297/?format=api", "web_url": "http://patchwork.ozlabs.org/project/uboot/patch/1505297094-5273-2-git-send-email-kever.yang@rock-chips.com/", "project": { "id": 18, "url": "http://patchwork.ozlabs.org/api/1.2/projects/18/?format=api", "name": "U-Boot", "link_name": "uboot", "list_id": "u-boot.lists.denx.de", "list_email": "u-boot@lists.denx.de", "web_url": null, "scm_url": null, "webscm_url": null, "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<1505297094-5273-2-git-send-email-kever.yang@rock-chips.com>", "list_archive_url": null, "date": "2017-09-13T10:04:51", "name": "[U-Boot,2/5] power: pmic: rk816: support rk816 pmic", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": false, "hash": "3084082eabcf09aec487021370b33e72bd5651bb", "submitter": { "id": 64532, "url": "http://patchwork.ozlabs.org/api/1.2/people/64532/?format=api", "name": "Kever Yang", "email": "kever.yang@rock-chips.com" }, "delegate": { "id": 69486, "url": "http://patchwork.ozlabs.org/api/1.2/users/69486/?format=api", "username": "ptomsich", "first_name": "Philipp", "last_name": "Tomsich", "email": "philipp.tomsich@theobroma-systems.com" }, "mbox": "http://patchwork.ozlabs.org/project/uboot/patch/1505297094-5273-2-git-send-email-kever.yang@rock-chips.com/mbox/", "series": [ { "id": 2863, "url": "http://patchwork.ozlabs.org/api/1.2/series/2863/?format=api", "web_url": "http://patchwork.ozlabs.org/project/uboot/list/?series=2863", "date": "2017-09-13T10:04:50", "name": "[U-Boot,1/5] rockchip: i2c: rk3328: support i2c for rk3328 SoC", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/2863/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/813297/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/813297/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<u-boot-bounces@lists.denx.de>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@bilbo.ozlabs.org", "Authentication-Results": [ "ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=lists.denx.de\n\t(client-ip=81.169.180.215; helo=lists.denx.de;\n\tenvelope-from=u-boot-bounces@lists.denx.de;\n\treceiver=<UNKNOWN>)", "ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"oEBrSseH\"; dkim-atps=neutral" ], "Received": [ "from lists.denx.de (dione.denx.de [81.169.180.215])\n\tby ozlabs.org (Postfix) with ESMTP id 3xsckH4Pdsz9s9Y\n\tfor <incoming@patchwork.ozlabs.org>;\n\tWed, 13 Sep 2017 20:05:59 +1000 (AEST)", "by lists.denx.de (Postfix, from userid 105)\n\tid 3C06CC225E8; Wed, 13 Sep 2017 10:05:22 +0000 (UTC)", "from lists.denx.de (localhost [IPv6:::1])\n\tby lists.denx.de (Postfix) with ESMTP id ED196C225C6;\n\tWed, 13 Sep 2017 10:05:16 +0000 (UTC)", "by lists.denx.de (Postfix, from userid 105)\n\tid 770BBC22430; Wed, 13 Sep 2017 10:05:08 +0000 (UTC)", "from mail-pf0-f196.google.com (mail-pf0-f196.google.com\n\t[209.85.192.196])\n\tby lists.denx.de (Postfix) with ESMTPS id 7957DC22498\n\tfor <u-boot@lists.denx.de>; Wed, 13 Sep 2017 10:05:04 +0000 (UTC)", "by mail-pf0-f196.google.com with SMTP id h4so7337997pfk.0\n\tfor <u-boot@lists.denx.de>; Wed, 13 Sep 2017 03:05:04 -0700 (PDT)", "from localhost.localdomain ([103.29.142.67])\n\tby smtp.gmail.com with ESMTPSA id\n\ti12sm9122203pgr.21.2017.09.13.03.05.00\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);\n\tWed, 13 Sep 2017 03:05:02 -0700 (PDT)" ], "X-Spam-Checker-Version": "SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de", "X-Spam-Level": "", "X-Spam-Status": "No, score=0.0 required=5.0 tests=RCVD_IN_DNSWL_NONE,\n\tRCVD_IN_MSPIKE_H2,\n\tT_DKIM_INVALID autolearn=unavailable autolearn_force=no\n\tversion=3.4.0", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;\n\th=sender:from:to:cc:subject:date:message-id:in-reply-to:references;\n\tbh=Qls1jQSE13yQlmF555F3hrxMRTwV10ThNTTkEuOFgbU=;\n\tb=oEBrSseHUaXqzMp9bLJni9vw1mIpVqvWWM6dTQ/VmsFJ8ksXLPT6EkEAovheb/MV5g\n\tX4LVvtxGu6lhecyKLEclCoaX/qth2W1eH8E5C1xKb6H3ofwnAMWBkUnXtAIJZpUlrcMj\n\t1i0DNdxdxZMJ4+mJAi6+vSsqnQiRDa0SFJEF4nKssxH12kM+XQqQFSTOgpt3J44qNpbM\n\tc5d7jQWwHucKL1pYoGwhQrYE1Tiv+goHuKbWePa0O+OgvsYj+lcdFaPscVrDhsuWmixU\n\trgNIN5yT67CTdFtAS0YCsENr1mPAZlgryvgV7+C34/ydW34J/OI6TLR01JiJTHWwoRj+\n\tEMaA==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:sender:from:to:cc:subject:date:message-id\n\t:in-reply-to:references;\n\tbh=Qls1jQSE13yQlmF555F3hrxMRTwV10ThNTTkEuOFgbU=;\n\tb=n4Xjugrbz1LCqw2h74qw2nt/dXHLjmczSrzvdvFWGHrbATZJFEWvYvqYEN9BNSeQ6J\n\toatcyw6xVuHtNRfneeVmDG5bLps4WHtK6Y2L5FiFzGLTYvVEtNc4CsmxeDQQkGmgDyWh\n\t91ZYz7Q+P3YMmSyLRevWIRULqPUWSAQ7M8dZla2XbKjIz5gJn0KVc1ZjX7BgP86swCAd\n\tRcYT9yWdjJMeDYuNPeb/1eBWMh+GX2l0VJ9lM9kAy074OedDgnwYicFDxgryPgD0x/+B\n\tqIZjJ6dH9QFTkQW1GK4p91uTsDI2ZpZHulvdXf5qmSOGKL//2mYymSWvPVQelWkPCmDT\n\tLvgg==", "X-Gm-Message-State": "AHPjjUj69LafIMfbVZTPVl0xJ1BSibiujYfcE9vdymvCqMwIgV/ur8B6\n\tGR9/3nYF6ykYLkJr", "X-Google-Smtp-Source": "AOwi7QCIfZMB2KShfnmyDVDV0PVMgLJ9KAuny8Q+5x3V6wbQG8736rY4eFCVWd+kbN8f+5eZWKlYrw==", "X-Received": "by 10.98.44.69 with SMTP id s66mr1587744pfs.309.1505297102882;\n\tWed, 13 Sep 2017 03:05:02 -0700 (PDT)", "From": "Kever Yang <kever.yang@rock-chips.com>", "To": "u-boot@lists.denx.de", "Date": "Wed, 13 Sep 2017 18:04:51 +0800", "Message-Id": "<1505297094-5273-2-git-send-email-kever.yang@rock-chips.com>", "X-Mailer": "git-send-email 1.9.1", "In-Reply-To": "<1505297094-5273-1-git-send-email-kever.yang@rock-chips.com>", "References": "<1505297094-5273-1-git-send-email-kever.yang@rock-chips.com>", "Cc": "Elaine Zhang <zhangqing@rock-chips.com>,\n\tJacob Chen <jacob-chen@iotwrt.com>", "Subject": "[U-Boot] [PATCH 2/5] power: pmic: rk816: support rk816 pmic", "X-BeenThere": "u-boot@lists.denx.de", "X-Mailman-Version": "2.1.18", "Precedence": "list", "List-Id": "U-Boot discussion <u-boot.lists.denx.de>", "List-Unsubscribe": "<https://lists.denx.de/options/u-boot>,\n\t<mailto:u-boot-request@lists.denx.de?subject=unsubscribe>", "List-Archive": "<http://lists.denx.de/pipermail/u-boot/>", "List-Post": "<mailto:u-boot@lists.denx.de>", "List-Help": "<mailto:u-boot-request@lists.denx.de?subject=help>", "List-Subscribe": "<https://lists.denx.de/listinfo/u-boot>,\n\t<mailto:u-boot-request@lists.denx.de?subject=subscribe>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=\"utf-8\"", "Content-Transfer-Encoding": "base64", "Errors-To": "u-boot-bounces@lists.denx.de", "Sender": "\"U-Boot\" <u-boot-bounces@lists.denx.de>" }, "content": "From: Elaine Zhang <zhangqing@rock-chips.com>\n\nAdd Rockchip pmic rk816 support.\n\nSigned-off-by: Elaine Zhang <zhangqing@rock-chips.com>\nSigned-off-by: Kever Yang <kever.yang@rock-chips.com>\n---\n\n drivers/power/pmic/rk8xx.c | 1 +\n drivers/power/regulator/rk8xx.c | 212 ++++++++++++++++++++++++++++++++--------\n include/power/rk8xx_pmic.h | 9 +-\n 3 files changed, 182 insertions(+), 40 deletions(-)", "diff": "diff --git a/drivers/power/pmic/rk8xx.c b/drivers/power/pmic/rk8xx.c\nindex eb3ec0f..0fdea95 100644\n--- a/drivers/power/pmic/rk8xx.c\n+++ b/drivers/power/pmic/rk8xx.c\n@@ -100,6 +100,7 @@ static struct dm_pmic_ops rk8xx_ops = {\n \n static const struct udevice_id rk8xx_ids[] = {\n \t{ .compatible = \"rockchip,rk808\" },\n+\t{ .compatible = \"rockchip,rk816\" },\n \t{ .compatible = \"rockchip,rk818\" },\n \t{ }\n };\ndiff --git a/drivers/power/regulator/rk8xx.c b/drivers/power/regulator/rk8xx.c\nindex 76fc2ef..cf3566e 100644\n--- a/drivers/power/regulator/rk8xx.c\n+++ b/drivers/power/regulator/rk8xx.c\n@@ -48,6 +48,21 @@ static const struct rk8xx_reg_info rk808_buck[] = {\n \t{ 1800000, 100000, REG_BUCK4_ON_VSEL, RK808_BUCK4_VSEL_MASK, },\n };\n \n+static const struct rk8xx_reg_info rk816_buck[] = {\n+\t/* buck 1 */\n+\t{ 712500, 12500, REG_BUCK1_ON_VSEL, RK818_BUCK_VSEL_MASK, },\n+\t{ 1800000, 200000, REG_BUCK1_ON_VSEL, RK818_BUCK_VSEL_MASK, },\n+\t{ 2300000, 0, REG_BUCK1_ON_VSEL, RK818_BUCK_VSEL_MASK, },\n+\t/* buck 2 */\n+\t{ 712500, 12500, REG_BUCK2_ON_VSEL, RK818_BUCK_VSEL_MASK, },\n+\t{ 1800000, 200000, REG_BUCK2_ON_VSEL, RK818_BUCK_VSEL_MASK, },\n+\t{ 2300000, 0, REG_BUCK2_ON_VSEL, RK818_BUCK_VSEL_MASK, },\n+\t/* buck 3 */\n+\t{ 712500, 12500, -1, RK818_BUCK_VSEL_MASK, },\n+\t/* buck 4 */\n+\t{ 800000, 100000, REG_BUCK4_ON_VSEL, RK818_BUCK4_VSEL_MASK, },\n+};\n+\n static const struct rk8xx_reg_info rk818_buck[] = {\n \t{ 712500, 12500, REG_BUCK1_ON_VSEL, RK818_BUCK_VSEL_MASK, },\n \t{ 712500, 12500, REG_BUCK2_ON_VSEL, RK818_BUCK_VSEL_MASK, },\n@@ -67,6 +82,15 @@ static const struct rk8xx_reg_info rk808_ldo[] = {\n \t{ 1800000, 100000, REG_LDO8_ON_VSEL, RK808_LDO_VSEL_MASK, },\n };\n \n+static const struct rk8xx_reg_info rk816_ldo[] = {\n+\t{ 800000, 100000, REG_LDO1_ON_VSEL, RK818_LDO_VSEL_MASK, },\n+\t{ 800000, 100000, REG_LDO2_ON_VSEL, RK818_LDO_VSEL_MASK, },\n+\t{ 800000, 100000, REG_LDO3_ON_VSEL, RK818_LDO_VSEL_MASK, },\n+\t{ 800000, 100000, REG_LDO4_ON_VSEL, RK818_LDO_VSEL_MASK, },\n+\t{ 800000, 100000, REG_LDO5_ON_VSEL, RK818_LDO_VSEL_MASK, },\n+\t{ 800000, 100000, REG_LDO6_ON_VSEL, RK818_LDO_VSEL_MASK, },\n+};\n+\n static const struct rk8xx_reg_info rk818_ldo[] = {\n \t{ 1800000, 100000, REG_LDO1_ON_VSEL, RK818_LDO_VSEL_MASK, },\n \t{ 1800000, 100000, REG_LDO2_ON_VSEL, RK818_LDO_VSEL_MASK, },\n@@ -88,10 +112,24 @@ static const uint rk818_chrg_shutdown_vsel_array[] = {\n };\n \n static const struct rk8xx_reg_info *get_buck_reg(struct udevice *pmic,\n-\t\t\t\t\t int num)\n+\t\t\t\t\t\t int num, int uvolt)\n {\n \tstruct rk8xx_priv *priv = dev_get_priv(pmic);\n+\n \tswitch (priv->variant) {\n+\tcase RK816_ID:\n+\t\tswitch (num) {\n+\t\tcase 0:\n+\t\tcase 1:\n+\t\t\tif (uvolt <= 1450000)\n+\t\t\t\treturn &rk816_buck[num * 3 + 0];\n+\t\t\telse if (uvolt <= 2200000)\n+\t\t\t\treturn &rk816_buck[num * 3 + 1];\n+\t\t\telse\n+\t\t\t\treturn &rk816_buck[num * 3 + 2];\n+\t\tdefault:\n+\t\t\treturn &rk816_buck[num + 4];\n+\t\t}\n \tcase RK818_ID:\n \t\treturn &rk818_buck[num];\n \tdefault:\n@@ -101,7 +139,7 @@ static const struct rk8xx_reg_info *get_buck_reg(struct udevice *pmic,\n \n static int _buck_set_value(struct udevice *pmic, int buck, int uvolt)\n {\n-\tconst struct rk8xx_reg_info *info = get_buck_reg(pmic, buck - 1);\n+\tconst struct rk8xx_reg_info *info = get_buck_reg(pmic, buck, uvolt);\n \tint mask = info->vsel_mask;\n \tint val;\n \n@@ -114,23 +152,76 @@ static int _buck_set_value(struct udevice *pmic, int buck, int uvolt)\n \treturn pmic_clrsetbits(pmic, info->vsel_reg, mask, val);\n }\n \n+static int _buck_get_enable(struct udevice *pmic, int buck)\n+{\n+\tstruct rk8xx_priv *priv = dev_get_priv(pmic);\n+\tuint mask = 0;\n+\tint ret = 0;\n+\n+\tswitch (priv->variant) {\n+\tcase RK816_ID:\n+\t\tif (buck >= 4) {\n+\t\t\tmask = 1 << (buck - 4);\n+\t\t\tret = pmic_reg_read(pmic, RK816_REG_DCDC_EN2);\n+\t\t} else {\n+\t\t\tmask = 1 << buck;\n+\t\t\tret = pmic_reg_read(pmic, RK816_REG_DCDC_EN1);\n+\t\t}\n+\t\tbreak;\n+\tcase RK808_ID:\n+\tcase RK818_ID:\n+\t\tmask = 1 << buck;\n+\t\tret = pmic_reg_read(pmic, REG_DCDC_EN);\n+\t\tif (ret < 0)\n+\t\t\treturn ret;\n+\t\tbreak;\n+\t}\n+\treturn ret & mask ? true : false;\n+}\n+\n+\n static int _buck_set_enable(struct udevice *pmic, int buck, bool enable)\n {\n-\tuint mask;\n+\tuint mask, value, en_reg;\n \tint ret;\n+\tstruct rk8xx_priv *priv = dev_get_priv(pmic);\n \n-\tbuck--;\n-\tmask = 1 << buck;\n-\tif (enable) {\n-\t\tret = pmic_clrsetbits(pmic, REG_DCDC_ILMAX, 0, 3 << (buck * 2));\n-\t\tif (ret)\n-\t\t\treturn ret;\n-\t\tret = pmic_clrsetbits(pmic, REG_DCDC_UV_ACT, 1 << buck, 0);\n-\t\tif (ret)\n-\t\t\treturn ret;\n+\tswitch (priv->variant) {\n+\tcase RK816_ID:\n+\t\tif (buck >= 4) {\n+\t\t\tbuck -= 4;\n+\t\t\ten_reg = RK816_REG_DCDC_EN2;\n+\t\t} else {\n+\t\t\ten_reg = RK816_REG_DCDC_EN1;\n+\t\t}\n+\t\tif (enable)\n+\t\t\tvalue = ((1 << buck) | (1 << (buck + 4)));\n+\t\telse\n+\t\t\tvalue = ((0 << buck) | (1 << (buck + 4)));\n+\t\tret = pmic_reg_write(pmic, en_reg, value);\n+\t\tbreak;\n+\n+\tcase RK808_ID:\n+\tcase RK818_ID:\n+\t\tmask = 1 << buck;\n+\t\tif (enable) {\n+\t\t\tret = pmic_clrsetbits(pmic, REG_DCDC_ILMAX,\n+\t\t\t\t\t 0, 3 << (buck * 2));\n+\t\t\tif (ret)\n+\t\t\t\treturn ret;\n+\t\t\tret = pmic_clrsetbits(pmic, REG_DCDC_UV_ACT,\n+\t\t\t\t\t 1 << buck, 0);\n+\t\t\tif (ret)\n+\t\t\t\treturn ret;\n+\t\t}\n+\t\tret = pmic_clrsetbits(pmic, REG_DCDC_EN, mask,\n+\t\t\t\t enable ? mask : 0);\n+\t\tbreak;\n+\tdefault:\n+\t\tret = -EINVAL;\n \t}\n \n-\treturn pmic_clrsetbits(pmic, REG_DCDC_EN, mask, enable ? mask : 0);\n+\treturn ret;\n }\n \n #ifdef ENABLE_DRIVER\n@@ -138,7 +229,10 @@ static const struct rk8xx_reg_info *get_ldo_reg(struct udevice *pmic,\n \t\t\t\t\t int num)\n {\n \tstruct rk8xx_priv *priv = dev_get_priv(pmic);\n+\n \tswitch (priv->variant) {\n+\tcase RK816_ID:\n+\t\treturn &rk816_ldo[num];\n \tcase RK818_ID:\n \t\treturn &rk818_ldo[num];\n \tdefault:\n@@ -146,10 +240,70 @@ static const struct rk8xx_reg_info *get_ldo_reg(struct udevice *pmic,\n \t}\n }\n \n+static int _ldo_get_enable(struct udevice *pmic, int ldo)\n+{\n+\tstruct rk8xx_priv *priv = dev_get_priv(pmic);\n+\tuint mask = 0;\n+\tint ret = 0;\n+\n+\tswitch (priv->variant) {\n+\tcase RK816_ID:\n+\t\tif (ldo >= 4) {\n+\t\t\tmask = 1 << (ldo - 4);\n+\t\t\tret = pmic_reg_read(pmic, RK816_REG_LDO_EN2);\n+\t\t} else {\n+\t\t\tmask = 1 << ldo;\n+\t\t\tret = pmic_reg_read(pmic, RK816_REG_LDO_EN1);\n+\t\t}\n+\t\tbreak;\n+\tcase RK808_ID:\n+\tcase RK818_ID:\n+\t\tmask = 1 << ldo;\n+\t\tret = pmic_reg_read(pmic, REG_LDO_EN);\n+\t\tif (ret < 0)\n+\t\t\treturn ret;\n+\t\tbreak;\n+\t}\n+\treturn ret & mask ? true : false;\n+}\n+\n+\n+static int _ldo_set_enable(struct udevice *pmic, int ldo, bool enable)\n+{\n+\tstruct rk8xx_priv *priv = dev_get_priv(pmic);\n+\tuint mask, value, en_reg;\n+\tint ret = 0;\n+\n+\tswitch (priv->variant) {\n+\tcase RK816_ID:\n+\t\tif (ldo >= 4) {\n+\t\t\tldo -= 4;\n+\t\t\ten_reg = RK816_REG_LDO_EN2;\n+\t\t} else {\n+\t\t\ten_reg = RK816_REG_LDO_EN1;\n+\t\t}\n+\t\tif (enable)\n+\t\t\tvalue = ((1 << ldo) | (1 << (ldo + 4)));\n+\t\telse\n+\t\t\tvalue = ((0 << ldo) | (1 << (ldo + 4)));\n+\n+\t\tret = pmic_reg_write(pmic, en_reg, value);\n+\t\tbreak;\n+\tcase RK808_ID:\n+\tcase RK818_ID:\n+\t\tmask = 1 << ldo;\n+\t\tret = pmic_clrsetbits(pmic, REG_LDO_EN, mask,\n+\t\t\t\t enable ? mask : 0);\n+\t\tbreak;\n+\t}\n+\n+\treturn ret;\n+}\n+\n static int buck_get_value(struct udevice *dev)\n {\n \tint buck = dev->driver_data - 1;\n-\tconst struct rk8xx_reg_info *info = get_buck_reg(dev->parent, buck);\n+\tconst struct rk8xx_reg_info *info = get_buck_reg(dev->parent, buck, 0);\n \tint mask = info->vsel_mask;\n \tint ret, val;\n \n@@ -165,14 +319,14 @@ static int buck_get_value(struct udevice *dev)\n \n static int buck_set_value(struct udevice *dev, int uvolt)\n {\n-\tint buck = dev->driver_data;\n+\tint buck = dev->driver_data - 1;\n \n \treturn _buck_set_value(dev->parent, buck, uvolt);\n }\n \n static int buck_set_enable(struct udevice *dev, bool enable)\n {\n-\tint buck = dev->driver_data;\n+\tint buck = dev->driver_data - 1;\n \n \treturn _buck_set_enable(dev->parent, buck, enable);\n }\n@@ -180,16 +334,8 @@ static int buck_set_enable(struct udevice *dev, bool enable)\n static int buck_get_enable(struct udevice *dev)\n {\n \tint buck = dev->driver_data - 1;\n-\tint ret;\n-\tuint mask;\n-\n-\tmask = 1 << buck;\n \n-\tret = pmic_reg_read(dev->parent, REG_DCDC_EN);\n-\tif (ret < 0)\n-\t\treturn ret;\n-\n-\treturn ret & mask ? true : false;\n+\treturn _buck_get_enable(dev->parent, buck);\n }\n \n static int ldo_get_value(struct udevice *dev)\n@@ -228,27 +374,15 @@ static int ldo_set_value(struct udevice *dev, int uvolt)\n static int ldo_set_enable(struct udevice *dev, bool enable)\n {\n \tint ldo = dev->driver_data - 1;\n-\tuint mask;\n-\n-\tmask = 1 << ldo;\n \n-\treturn pmic_clrsetbits(dev->parent, REG_LDO_EN, mask,\n-\t\t\t enable ? mask : 0);\n+\treturn _ldo_set_enable(dev->parent, ldo, enable);\n }\n \n static int ldo_get_enable(struct udevice *dev)\n {\n \tint ldo = dev->driver_data - 1;\n-\tint ret;\n-\tuint mask;\n-\n-\tmask = 1 << ldo;\n \n-\tret = pmic_reg_read(dev->parent, REG_LDO_EN);\n-\tif (ret < 0)\n-\t\treturn ret;\n-\n-\treturn ret & mask ? true : false;\n+\treturn _ldo_get_enable(dev->parent, ldo);\n }\n \n static int switch_set_enable(struct udevice *dev, bool enable)\ndiff --git a/include/power/rk8xx_pmic.h b/include/power/rk8xx_pmic.h\nindex 47a6b36..8e821c3 100644\n--- a/include/power/rk8xx_pmic.h\n+++ b/include/power/rk8xx_pmic.h\n@@ -171,8 +171,15 @@ enum {\n };\n \n enum {\n-\tRK805_ID = 0x8050,\n+\tRK816_REG_DCDC_EN1 = 0x23,\n+\tRK816_REG_DCDC_EN2,\n+\tRK816_REG_LDO_EN1 = 0x27,\n+\tRK816_REG_LDO_EN2,\n+};\n+\n+enum {\n \tRK808_ID = 0x0000,\n+\tRK816_ID = 0x8160,\n \tRK818_ID = 0x8180,\n };\n \n", "prefixes": [ "U-Boot", "2/5" ] }