From patchwork Wed Jun 28 08:47:16 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: ChiYuan Huang X-Patchwork-Id: 113722 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp8786020vqr; Wed, 28 Jun 2023 02:26:20 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5JqCt3zA7Vfr0b27PIVr5/B3dT+jMD/mpCcTYNkDyld2uYv1RJb6RWXqhdOWAW+YNy55/+ X-Received: by 2002:a17:906:7a52:b0:988:9dea:ab9c with SMTP id i18-20020a1709067a5200b009889deaab9cmr21103108ejo.1.1687944380505; Wed, 28 Jun 2023 02:26:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1687944380; cv=none; d=google.com; s=arc-20160816; b=T3JSfWPSCIBIjQR7H+uMsQtmgq6lMHb3rCEvIILGE9a+E2jXey/91IikdX8dkfvJPx 0ON11Uqn/Hy10ovFzd0mP2GQ7PbHd4xJmJL+v8ETX+yQLJ75LTdEBl9flHZ5i6Neyloi JO6584YK8TIwofz/t9EG2XHzFQJBbAv9Ou+DzqV6oe0ItdgQg5Mfbxjc7Nek9XP8FSmo vmT7BXq9bxMqNsj8Gdh38v6alJ3299Ai8Q4jRE/rycytCiTIC8GZM35ni93XzeN2CeOc q+dfFXTBPfMLyD1lnYzKV9gNwbvKagrbkCVTKJHrEYXBpckJbvbI2jpjkzyggCnFbtyG cvWg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from; bh=e3EDy/gc5JjGgYDc/e8iyo+6zOEYT9qiIck62MbQ40s=; fh=eHJOcYS525QcW0pH5DS07n+xTq7YwPHb/ZA5+OeJQdY=; b=ZSh2r+9Rd6sJKFHm3oQb7AD6IMGroQTWlEE2yMeAjrUyV5sEtd+XMiwQMGf7sJA0FQ Q3Cm4bM6o/SzInkKMux502azMr6uRkzxDR1XHaVYWL6jzhsR34pzX49FSLjwQcZUynmG AfdVP9iWS3+eOQa7Te5wi0k16PHVwkM1f2h0L3YUnfFFEGQVnaeiAsH/jTtcycmbw/jo xnhjSaWXbsT11//CkpX/+3DfzXiR9wQ04AzPeNyBg2McRN6Esiwr4DJmrm39OhbqCvR7 Nkv/cmYBDWtVz02wUNTzUSWpYxKTHpUDWNI/MYyQHqgv3cJf84Kc7LggQB6HE4hsiq+4 2Bpg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id t19-20020a170906065300b0096ae15237a1si5522501ejb.486.2023.06.28.02.25.56; Wed, 28 Jun 2023 02:26:20 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236625AbjF1JCB (ORCPT + 99 others); Wed, 28 Jun 2023 05:02:01 -0400 Received: from mg.richtek.com ([220.130.44.152]:44342 "EHLO mg.richtek.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236443AbjF1Iri (ORCPT ); Wed, 28 Jun 2023 04:47:38 -0400 X-MailGates: (flag:4,DYNAMIC,BADHELO,RELAY,NOHOST:PASS)(compute_score:DE LIVER,40,3) Received: from 192.168.10.47 by mg.richtek.com with MailGates ESMTP Server V5.0(12336:0:AUTH_RELAY) (envelope-from ); Wed, 28 Jun 2023 16:47:19 +0800 (CST) Received: from ex3.rt.l (192.168.10.46) by ex4.rt.l (192.168.10.47) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.25; Wed, 28 Jun 2023 16:47:18 +0800 Received: from linuxcarl2.richtek.com (192.168.10.154) by ex3.rt.l (192.168.10.45) with Microsoft SMTP Server id 15.2.1118.25 via Frontend Transport; Wed, 28 Jun 2023 16:47:18 +0800 From: To: , , CC: , , , , Subject: [PATCH 1/2] regulator: dt-bindings: rt5739: Add compatible for rt5733 Date: Wed, 28 Jun 2023 16:47:16 +0800 Message-ID: <1687942037-14652-2-git-send-email-cy_huang@richtek.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1687942037-14652-1-git-send-email-cy_huang@richtek.com> References: <1687942037-14652-1-git-send-email-cy_huang@richtek.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1769937966812000656?= X-GMAIL-MSGID: =?utf-8?q?1769937966812000656?= From: ChiYuan Huang Add compatible string for rt5733. Signed-off-by: ChiYuan Huang Acked-by: Rob Herring --- Documentation/devicetree/bindings/regulator/richtek,rt5739.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/regulator/richtek,rt5739.yaml b/Documentation/devicetree/bindings/regulator/richtek,rt5739.yaml index 358297dd3fb7..e95e046e9ed6 100644 --- a/Documentation/devicetree/bindings/regulator/richtek,rt5739.yaml +++ b/Documentation/devicetree/bindings/regulator/richtek,rt5739.yaml @@ -21,6 +21,7 @@ allOf: properties: compatible: enum: + - richtek,rt5733 - richtek,rt5739 reg: From patchwork Wed Jun 28 08:47:17 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: ChiYuan Huang X-Patchwork-Id: 113719 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp8775122vqr; Wed, 28 Jun 2023 02:03:33 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6v+siZMb2icnbNkmGWsb8bxRaLqMV+jyPrpzm/mOyuVC6pYxBF5aCgUvf99AdpiczuWi+5 X-Received: by 2002:a05:6402:520d:b0:516:463d:8a10 with SMTP id s13-20020a056402520d00b00516463d8a10mr3656157edd.3.1687943012876; Wed, 28 Jun 2023 02:03:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1687943012; cv=none; d=google.com; s=arc-20160816; b=Ks1swB1YNNgB2554iUd0nX+HlHTqn/MQFkBTuVKk4CtndpnCLH/oNpfRVH9kzpkuYU Zdfk6rCLM65Ylz6rg+tC4SwgEVWAAtA+ToF2ujoph2XwNXov33d9JLQOSMQpxwP8Ax2b 8K3p8W5UmodXCeabmDjnEEbaSnR+KxX3g0hKefAMEnTzic+mORzwyykde9wcXPQXffBC Gw/9zIUKumaobu5HNjuBYL5ujjqUMwmQgYui2wix5xM5N7a4AvnYr1/gYnYn4BOuD3at gjSYVVxwbfcPuEqEcqOpiWFbTonUomk2K0s3IZn/aABkv7K/wF71ny/Rvuvbng8iahMH eXHw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from; bh=5EEmluN3y2WY+vPbVmHVLaIjvTUDHKmK7AYybT215Qk=; fh=eHJOcYS525QcW0pH5DS07n+xTq7YwPHb/ZA5+OeJQdY=; b=stNPPwcw2QR3bjqmxzOHLjB6fQAQ0gAIZ7g9CLZmX+ST+OaN8ZDM4Yt8mqjhyDfK81 hS1W3jEpGYEUIyZkMp8poHkg294mNPbibXt9Pwue6UEQLGN6AaUwJ6SiOspLWUQDC9Nx 5rJJ58limxT9KR27wg1+EDy6ZX8JnP92lMac74qWPGkOSZbGeNVRKbP9m8xwKMFvluhO afCBBib/Ob5J0wehAchwTi+OvSZe5YkgexxTotF9PrtVoaxmjrkEKNCN+texADAxqMZt SLvvAJTg4XHioJfvstMeCyxl8HWZ63Q2kIXhkxmkaE7Utzg+l/f1OdfCTOSdSyY2LIk8 MSSA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id h21-20020aa7c615000000b0051bed973bb2si5089805edq.455.2023.06.28.02.02.51; Wed, 28 Jun 2023 02:03:32 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236496AbjF1JBL (ORCPT + 99 others); Wed, 28 Jun 2023 05:01:11 -0400 Received: from mg.richtek.com ([220.130.44.152]:44348 "EHLO mg.richtek.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236441AbjF1Iri (ORCPT ); Wed, 28 Jun 2023 04:47:38 -0400 X-MailGates: (flag:4,DYNAMIC,BADHELO,RELAY,NOHOST:PASS)(compute_score:DE LIVER,40,3) Received: from 192.168.10.47 by mg.richtek.com with MailGates ESMTP Server V5.0(12336:0:AUTH_RELAY) (envelope-from ); Wed, 28 Jun 2023 16:47:19 +0800 (CST) Received: from ex3.rt.l (192.168.10.46) by ex4.rt.l (192.168.10.47) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.25; Wed, 28 Jun 2023 16:47:18 +0800 Received: from linuxcarl2.richtek.com (192.168.10.154) by ex3.rt.l (192.168.10.45) with Microsoft SMTP Server id 15.2.1118.25 via Frontend Transport; Wed, 28 Jun 2023 16:47:18 +0800 From: To: , , CC: , , , , Subject: [PATCH 2/2] regulator: rt5739: Add DID check and compatible for rt5733 Date: Wed, 28 Jun 2023 16:47:17 +0800 Message-ID: <1687942037-14652-3-git-send-email-cy_huang@richtek.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1687942037-14652-1-git-send-email-cy_huang@richtek.com> References: <1687942037-14652-1-git-send-email-cy_huang@richtek.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1769936532309986846?= X-GMAIL-MSGID: =?utf-8?q?1769936532309986846?= From: ChiYuan Huang Add compatible and use DID to check rt5733. The only difference bwtween rt5733 and rt5739 is the output range and voltage step. These two chips can be distinguished from the DIE id. Signed-off-by: ChiYuan Huang --- drivers/regulator/rt5739.c | 49 +++++++++++++++++++++++++++++++------- 1 file changed, 41 insertions(+), 8 deletions(-) diff --git a/drivers/regulator/rt5739.c b/drivers/regulator/rt5739.c index 74fc5bf6d87e..c930ea27e51f 100644 --- a/drivers/regulator/rt5739.c +++ b/drivers/regulator/rt5739.c @@ -31,10 +31,17 @@ #define RT5739_MODEVSEL1_MASK BIT(1) #define RT5739_MODEVSEL0_MASK BIT(0) #define RT5739_VID_MASK GENMASK(7, 5) +#define RT5739_DID_MASK GENMASK(3, 0) #define RT5739_ACTD_MASK BIT(7) #define RT5739_ENVSEL1_MASK BIT(1) #define RT5739_ENVSEL0_MASK BIT(0) +#define RT5733_CHIPDIE_ID 0x1 +#define RT5733_VOLT_MINUV 270000 +#define RT5733_VOLT_MAXUV 1401250 +#define RT5733_VOLT_STPUV 6250 +#define RT5733_N_VOLTS 182 + #define RT5739_VOLT_MINUV 300000 #define RT5739_VOLT_MAXUV 1300000 #define RT5739_VOLT_STPUV 5000 @@ -92,9 +99,26 @@ static int rt5739_set_suspend_voltage(struct regulator_dev *rdev, int uV) { const struct regulator_desc *desc = rdev->desc; struct regmap *regmap = rdev_get_regmap(rdev); - unsigned int reg, vsel; + unsigned int did, reg, vsel; + int min_uV, max_uV, step_uV, ret; + + ret = regmap_read(regmap, RT5739_REG_ID1, &did); + if (ret) + return ret; + + did &= RT5739_DID_MASK; + + if (did == RT5733_CHIPDIE_ID) { + min_uV = RT5733_VOLT_MINUV; + max_uV = RT5733_VOLT_MAXUV; + step_uV = RT5733_VOLT_STPUV; + } else { + min_uV = RT5739_VOLT_MINUV; + max_uV = RT5739_VOLT_MAXUV; + step_uV = RT5739_VOLT_STPUV; + } - if (uV < RT5739_VOLT_MINUV || uV > RT5739_VOLT_MAXUV) + if (uV < min_uV || uV > max_uV) return -EINVAL; if (desc->vsel_reg == RT5739_REG_NSEL0) @@ -102,7 +126,7 @@ static int rt5739_set_suspend_voltage(struct regulator_dev *rdev, int uV) else reg = RT5739_REG_NSEL0; - vsel = (uV - RT5739_VOLT_MINUV) / RT5739_VOLT_STPUV; + vsel = (uV - min_uV) / step_uV; return regmap_write(regmap, reg, vsel); } @@ -189,15 +213,12 @@ static unsigned int rt5739_of_map_mode(unsigned int mode) } static void rt5739_init_regulator_desc(struct regulator_desc *desc, - bool vsel_active_high) + bool vsel_active_high, u8 did) { /* Fixed */ desc->name = "rt5739-regulator"; desc->owner = THIS_MODULE; desc->ops = &rt5739_regulator_ops; - desc->n_voltages = RT5739_N_VOLTS; - desc->min_uV = RT5739_VOLT_MINUV; - desc->uV_step = RT5739_VOLT_STPUV; desc->vsel_mask = RT5739_VSEL_MASK; desc->enable_reg = RT5739_REG_CNTL2; desc->active_discharge_reg = RT5739_REG_CNTL1; @@ -213,6 +234,17 @@ static void rt5739_init_regulator_desc(struct regulator_desc *desc, desc->vsel_reg = RT5739_REG_NSEL0; desc->enable_mask = RT5739_ENVSEL0_MASK; } + + /* Assigned by CHIPDIE ID */ + if (did == RT5733_CHIPDIE_ID) { + desc->n_voltages = RT5733_N_VOLTS; + desc->min_uV = RT5733_VOLT_MINUV; + desc->uV_step = RT5733_VOLT_STPUV; + } else { + desc->n_voltages = RT5739_N_VOLTS; + desc->min_uV = RT5739_VOLT_MINUV; + desc->uV_step = RT5739_VOLT_STPUV; + } } static const struct regmap_config rt5739_regmap_config = { @@ -258,7 +290,7 @@ static int rt5739_probe(struct i2c_client *i2c) vsel_acth = device_property_read_bool(dev, "richtek,vsel-active-high"); - rt5739_init_regulator_desc(desc, vsel_acth); + rt5739_init_regulator_desc(desc, vsel_acth, vid & RT5739_DID_MASK); cfg.dev = dev; cfg.of_node = dev_of_node(dev); @@ -271,6 +303,7 @@ static int rt5739_probe(struct i2c_client *i2c) } static const struct of_device_id rt5739_device_table[] = { + { .compatible = "richtek,rt5733" }, { .compatible = "richtek,rt5739" }, { /* sentinel */ } };