From patchwork Sun May 14 12:31:22 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jakob Hauser X-Patchwork-Id: 681880 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id B7A7AC7EE2A for ; Sun, 14 May 2023 12:32:03 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236997AbjENMcA (ORCPT ); Sun, 14 May 2023 08:32:00 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58874 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236252AbjENMb6 (ORCPT ); Sun, 14 May 2023 08:31:58 -0400 Received: from sonic314-19.consmr.mail.ir2.yahoo.com (sonic314-19.consmr.mail.ir2.yahoo.com [77.238.177.145]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A9E272703 for ; Sun, 14 May 2023 05:31:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rocketmail.com; s=s2048; t=1684067515; bh=Fg8O9S7CQWLvLBXMCmKEFeFmz8DxFrOra+7NQGOwBwo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From:Subject:Reply-To; b=XlIWbq8PlxqdwrN301ADyRkhQXCiF993mORFVh/QN53NhnDCUYNFCGpTaqyu5mc3fODy68uA9E5GhrV+chzRZrC/IvaVor0PE+2YbwXGO/s3PcC/l+PD+cNk8U7Bu05vh0nd43McoGvJjhBfnPNb62Fg4gdpn0H89SuAYcjhZv+ocfHT8MGMyAoCgJBkGlyGIuUtoU1TUVGw/UCNZwDYetMpuNFkvIoPBnH9x8Uw28T+GbTso/jEgVBbZ2hKBvbCaMqwHxMd3aSykq7p7VOW8PYw17SSb3PPRd79vJA9NeaJzFSTPTmvIHy3ooAvs6i9uVp4w4tlkCVoswYZDOjEww== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1684067515; bh=SBPJmK8rSWush7S0V6c3t1jgi55cFEd25HXBvBk2VfQ=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=a9iIGGZ+clnpQU3YamFPik3XCEtmAN3jcfPGL2ZlI2MMQuUOGfSkC/J3+Q3kcwfE4Mtzp4DC1Ka9w1N8zr4TRkVIB+8vWzplMtCZJw3GU/uJW9U4vbLaG3DA5lrErv/U3ksztoZCWbYOxaPdcwANv7UIgYBnZY+sIVIueo7IJ4yCj9CoT3P5KaSDoCwaXjprrY5nuvuyr6Y1Jmt7S8ruaUQQNqNKGU47OlkLTDJF2IcKdKN3x+yC4xrEDGKZwO6xuRVTSYiw4UEmm8tDAeNLMHMMLumapg4PY+BMYJPME7VjBwi9CcfvoyQ8F+iPtYGFf4zuzM4Tg349WPj2o72ulg== X-YMail-OSG: hw.10HwVM1lpZ7Ff3X_oOtwwPjWZvbeXPqcza5P71_MNdkl9w6QjvcbZHbkFYXs GePaBGjYhIkUQpp_E7khQ77YrETr7t7QnaFkZlTRj0NIztDkiFSvycAmmrJNq1.CM1roc1u8lnXK wpmEHnXSIQanoG5DzBfuSfboFNeAEdYvLa6WANRUAsLrmnvBBaGbU4h38n37YJeDbDFmgCC9BcGe acNPbvtGZaFFE3ADKg.IAe5_i9cS4RJAs4cfP7zf_mZfGKoDQdYZjwoZ1BSNeSGU8NDBG19YdrRL QGCRFfmZC6EVvX2uPBp6nPTN76D4Ln0sG94.3xZXjSweBhe1sYz1CSlJmVQP0oqBmFmZrsK8iLht y1kInKHvmLuwMADrEib5JCnnn5v0H3jrv0R4OFVM2Lts1JUABjYPFG9jxQldju.m.1KmnLJWaLGT CCNWyNrW_qPocPvgTWgSS7G337W2IbWo4RRH30J.EB6f8arXIURbaw48ob2zVv5EQoVmMLNzhv.J fl.1NaGeY7kf8HoKoHCm_4udZvl0z_kPvYONklML1YE1nebjmjDVbRrFJ5MPQ8ApO5YUq35ko5yb phTxVcnIErwa23j8dA1WXENFJ.5F7pmN9M060Y6TaCcE7TNlRbYMCz96I7gl14hUYL83HZltAZNc c.rcGvuhpy4JAbloUq_ngViGNF6BsuroTponuoZlu2g5fFzmV2xZjF7_VMepUkNq3jhp.QjrA0TY vnItl0PGAZAf1ITt3apk7qTTIMnZQMeDnS22drMRRKXu35_gdo6K9sn3msJefz6GdnNTAWCzR5r5 itme2pkH3wZppulDTvn3CjK0FnEukCvFZz0Gy0GzF_tyt1pci.VUrCSqILEvmwV6UFMAIMWlmsKL 2D8k7ovB0ynHjLnJB4U77qpm5CcM0fwG5s9rf3E2bhBPPXNxym006.T6BulgObgVwvtN2FxppC2S wzoPgId383qZg34bGw6DNVDv.GNkwYOyK8ICH.uQPPmLdrVG70V6M3lRZUwqOeCw4SaJarBa0WBm iv9LSghXq1xvRFORD1BhgCdgBk5iKVnklHo19i18QR.06dbal810im.t0g9PrhRlFmmj_B3Evjd4 4rMKXc6eoeS_OfUnDyf43N0PWxlSNEXrsVVHm.gFw3ehR5pd..4hy1xxYC7TesyybcCPvsVwKaeo wf.My6qvYPCqHyMSfLPXUFPCLMMWvxH5nPA2KhhXve1GumvpptPi0Sd.vCsXSOnOSxi_YCigJ0gc shmjH6rUvRr.s2jggdsOl_.VNOO5yQNVLosyjGP8ISrpBnZO2N.J6ZKJmXB7PCl.oj4pglrHbGyW aStR4Emuj0n_cqvutlnEWCT2Fl1lsqvCGQdaSIxt48iccC1UYWk0Fj071ZYPPOWQ3Q0_ZRHs6q5Y fxXZl.s_HpLhWCFOTvvN8Ifixm4f4oDs.iBNdpEd.qbB0pjd.f7EXt4IcYDo3C3rxRd22.B5RTVi jrze7zoIRHp7XHCu.fF61yj4gMaoP1QOxsKqiYP5sNR.Z6KmFmEQb56uA_qJMffrGxEKy0bOrbZl 472EStfbyeKtgHipnUrvtRZt46he9E3pKESWzCxGogVYgM5mf1igYNBXtf15KZRzDWprDLHKQlf1 52DVIgLbeaRFGTPqlDhaTLDsCbUQc2MP7w2.OUrt0mSWR05b6yMW3QLAe9JvlZ_Ug3MkAnO5Wm80 gL4VCeThfabE_E2szDQMoyxdBuGD8XJQAWrmsdMRQXAPYOjfozVo5Gc8FkhmczocgYPC_jjM_ltC wzHV6V1hcpPDiP3AehXTigrWMMAQkwhWtW7IYr4dOtuqmtfZfZwJr8WSGbyMvtVknepxScfkcZrM hix3qQin8mkVhMGosK_.7bMIbQUiHjdNN5f4428bo0QHcXz_00UOQL7laP0E._I_6.RSrjwP4qOl _2nxIf5owOcqdeb_JzKK9Qpfr6n5D4Cae9fa2QnbPjyBpZXbrdAfV1yjpczQBqoMIlunucgkCOMJ F4rDjpXp.JiXnS9PwE1TgtsVrucr6NaT_ZpVLLYvCYp3zj2A4Nk9HUm_FFeSvihCpbiaxh56S295 uBOy5VfsvUc1Dx.0Tq6lsSEInRjI6hC2aMOt3hCfdUpWwOEJgwMUL1rKfWi1qLU2BBLjaQaypY2u _WQlNWuksqtVIV0y2vMxi.dScVOFaIKErgK8GStv0z8gzVXiMm_VNFzSc1FoI.h6ShPvVZpD_SOy c3NNfwwtsphQqVhnCkR2krLmtJavzipgmT9g6IJBO3CMsiEPAAC6U1K53uYm5qfY55m00tcARf2K N.WAxjXX7hud8P4Uj7zYkC1v9 X-Sonic-MF: X-Sonic-ID: f11cbd54-bba3-4800-a368-3581eb786e2a Received: from sonic.gate.mail.ne1.yahoo.com by sonic314.consmr.mail.ir2.yahoo.com with HTTP; Sun, 14 May 2023 12:31:55 +0000 Received: by hermes--production-ir2-7867f454fc-kqstn (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID 32d47a946aad3f7d203db987b930ba8f; Sun, 14 May 2023 12:31:52 +0000 (UTC) From: Jakob Hauser To: Sebastian Reichel , Lee Jones , Liam Girdwood , Mark Brown , Rob Herring , Krzysztof Kozlowski Cc: Beomho Seo , Chanwoo Choi , Stephan Gerhold , Raymond Hackley , Pavel Machek , Axel Lin , ChiYuan Huang , Linus Walleij , Henrik Grimler , linux-pm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, phone-devel@vger.kernel.org, ~postmarketos/upstreaming@lists.sr.ht, Jakob Hauser Subject: [PATCH v5 02/10] mfd: rt5033: Fix chip revision readout Date: Sun, 14 May 2023 14:31:22 +0200 Message-Id: <20230514123130.41172-3-jahau@rocketmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230514123130.41172-1-jahau@rocketmail.com> References: <20230514123130.41172-1-jahau@rocketmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org After reading the data from the DEVICE_ID register, mask 0x0f needs to be applied to extract the revision of the chip [1]. The other part of the DEVICE_ID register, mask 0xf0, is a vendor identification code. That's how it is set up at similar products of Richtek, e.g. RT9455 [2] page 21 top. [1] https://github.com/msm8916-mainline/linux-downstream/blob/GT-I9195I/drivers/mfd/rt5033_core.c#L484 [2] https://www.richtek.com/assets/product_file/RT9455/DS9455-00.pdf Signed-off-by: Jakob Hauser --- drivers/mfd/rt5033.c | 5 +++-- include/linux/mfd/rt5033-private.h | 4 ++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/mfd/rt5033.c b/drivers/mfd/rt5033.c index 8029d444b794..3eee4242ee02 100644 --- a/drivers/mfd/rt5033.c +++ b/drivers/mfd/rt5033.c @@ -55,7 +55,7 @@ static const struct regmap_config rt5033_regmap_config = { static int rt5033_i2c_probe(struct i2c_client *i2c) { struct rt5033_dev *rt5033; - unsigned int dev_id; + unsigned int dev_id, chip_rev; int ret; rt5033 = devm_kzalloc(&i2c->dev, sizeof(*rt5033), GFP_KERNEL); @@ -78,7 +78,8 @@ static int rt5033_i2c_probe(struct i2c_client *i2c) dev_err(&i2c->dev, "Device not found\n"); return -ENODEV; } - dev_info(&i2c->dev, "Device found Device ID: %04x\n", dev_id); + chip_rev = dev_id & RT5033_CHIP_REV_MASK; + dev_info(&i2c->dev, "Device found (rev. %d)\n", chip_rev); ret = regmap_add_irq_chip(rt5033->regmap, rt5033->irq, IRQF_TRIGGER_FALLING | IRQF_ONESHOT, diff --git a/include/linux/mfd/rt5033-private.h b/include/linux/mfd/rt5033-private.h index 6bb432f6a96c..b035a67cec73 100644 --- a/include/linux/mfd/rt5033-private.h +++ b/include/linux/mfd/rt5033-private.h @@ -71,6 +71,10 @@ enum rt5033_reg { /* RT5033 CHGCTRL2 register */ #define RT5033_CHGCTRL2_CV_MASK 0xfc +/* RT5033 DEVICE_ID register */ +#define RT5033_VENDOR_ID_MASK 0xf0 +#define RT5033_CHIP_REV_MASK 0x0f + /* RT5033 CHGCTRL3 register */ #define RT5033_CHGCTRL3_CFO_EN_MASK 0x40 #define RT5033_CHGCTRL3_TIMER_MASK 0x38 From patchwork Sun May 14 12:31:23 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jakob Hauser X-Patchwork-Id: 681879 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id EA39CC7EE24 for ; Sun, 14 May 2023 12:32:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237524AbjENMcI (ORCPT ); Sun, 14 May 2023 08:32:08 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59104 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236252AbjENMcE (ORCPT ); Sun, 14 May 2023 08:32:04 -0400 Received: from sonic309-24.consmr.mail.ir2.yahoo.com (sonic309-24.consmr.mail.ir2.yahoo.com [77.238.179.82]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A2AAD2D70 for ; Sun, 14 May 2023 05:32:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rocketmail.com; s=s2048; t=1684067519; bh=BgnxKccDW0hD4wBKD/wGrzdwGz4y7GQfSjWtC1jgF84=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From:Subject:Reply-To; b=tOFNhfjc7cMjPVUPZWShSvLt9MmaYuhvzwBdSJyDSnRBNLUM9ghwCZPz2RWxOtTzKGaXq0X4GTIxsWUwG3GJwG7D8JjO13euTQfG003dIZ+MkRHIFrVsbJUaX69kbl/sG1uEz+F6+/Ie44pjt1bQ6Z3ia8Pwm1zrp+3H7M3LYctOB+WM6uxRVKFixs3PzqRqKgO/koOke5Lj0oDgFrNxq7eo2AlvtMC75jWpyTGjwYGqrq4lWFRmSv4hC2pQfk09ygnTrZyIA1JZaApzrz7sPBNvq3abZtnnOPkBuglOsqBgtli/WUXBHOBstPmoB0GG5uKcghld7APdavvOPIFbGQ== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1684067519; bh=F1e/yH2/7uoIQfeSzKAgSA5/bP4Dh1YK42oYCg+sfM/=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=AGNMK6IHn41SjYp9fpgk/qlIaqCgADeyt4mD8PbH/A8ulSWvVpWJIFemIB61p1J3iLbeC1LLGw69EEbVeBEHIG2JUEOK0yQe5DFqO7erl1hN3nZjuRohA/j4sxCsaUsrHNQfCGYMDt06K2F/wZZNb92iHLxGr/Nvejp1cl6y1HQ9o+e6ogPeVu8eiPSKV93TYQNhR9/TSEe94cliUo/xSuXVVRZxgOmcjTxYYv7lLCCbB0GbhN2ZDTaz+aa/6s3ezZxGvlWze6+xyREJMin/j3zdhy9pbpT5pshZQColj5IThIAzATlqD8UUN1pIOic1RngZKwTLFEhw3f77mlB9hQ== X-YMail-OSG: mXxq_KIVM1kqLI5v7AqJx03NRoX2RkS4eD3cxfPawAdacQksZaC_k7NPkg7srpt I.Lh0nB9r0qpgdSqA09RiRBybXjAve9o9D_65.WSXElnu6uNQ0fKLygQ7j4FQeBp3EICUzgDWzXq sgFvG9W_eJlYeYj2BeDLW_snaEIHP.A1iFKu.bJKukI8JXokxjfuaAwMHxzVUcaOJLQYWxjs_WWi NeBER.AboFrYvpnJODU6UmPIRMnl_DRsrtV.UYC_6A0d49IEMDBZAc4eit2lJKqyclM.Co5vSeKZ bIWd9k4zQKM0nA_ag5dTGX1JJuUOipOcpIS5GoKhrGqNs2Udnke54juDpUNgEm5wdfYXrqSdjNVa MTWrxrHBY1T1CSpnoyD8SNZdJHRn71vttBUoJa3GyyM8jJQK4skFFPCHqTQSyijua20hhzAbu_8t YS14zLAPBxAbHDNjYIOKxTDBidQY0gSvuVO6Z9_EV3IfM_0Y67NrcoGkC_9b3UDhLcaL26V_6c.J 0V34Z76GY9_pu6Qo0DoPh8hIxq9EDcNIy4xF1.6P6OlkkeEy8xgFugCE3XZBWKuUfQ879wcBsdr7 4twC74IKTzTmspd6AlPYUbibqndbBdN15PXy2uhHh9Y7Z8Fe2ZegONz4fVBBqoP0jQx05V1LEb6. UD.cYGYMKbcfvMRhIpGHLsBl6bxmi8heVsWBV2uWN__iCqT.Go5P8lVu3Pv52uqG2Ka6HiHcAPBX bysRa1Jz.X2elmhbAb20Q0F8oIiCOx.Di9MgXyBduMcZlokYaK0fLlsubuCmSXTb9yM0nO6_vcQ5 B.ucXabcDd7uiFfPJfTDefLhC7IoYpzwRsRyakT7u9nVuTDG9xO4tU_FVLUN_rP7jYiYHDf3gJ1K mJX6NIIdFYOT4f7.4wI.blXIzr334.Lhv7.81.vIqh6oKatmhBHS0ogxXpcvDulSu3fRzu32H8Sf Qcg094KwjDZwpzF6iu9NixoppaH_700xysAnZcuy55zdHMJ36qboTtBbEOZ5dam_Rdi8znMugR0T b7yIAh0qITRtLUd5LzIeWS9wjmtvlOHDVT9diI8aZiJtd0NInm70HCVxoWEo1v5NpCfgFi8slvfb FhI2yKQn78uWGaAHQmQgST68wQuWW.DKvtz9juCQKfDHooWYiv5b0HA7W0tp9Tf44XXhHSVQg2Zg 8A.RtCL.hTveLwe7ZBoGRK.qOlIVdlaaqej73Yweh0y0OnJxRiQ5tl4RevRPO.cgnf0TFJKrsyJh XLMSQKGOZlAxwPl6S8KDhm1cfWaRhFRPVhGSKDASP1sUSr7pqqqpiyWZAnNfksLp7tO0qxw0i6_B tH4vq557NorCQw.u9e1ysQ6VsfzwdwisHzbH_ITKEROU7Uv7yjAfBb93Ex1qYvcs9md.cTsAn1mS GXz0gdzi9i05gejGcnUNt2mmvLNpRjtag5LQUkbjgbCF8.T_o_3AZknINv1yP73RFFe0zO0eZs7C TbFESAEmqJwsiJ8jZohkrgfUfpXgJS7MEf2k.0CVSYozy6ntCSffCMksi23KztxK69och0udY9lw KIuFYyMmG31xSzuvGLbi64Zaim04bU8vWiFySsxB5tVmebt0KsNsXErajkEf0IaM7Ey_.06Y68O5 Y0XqePmmX8XDJK9JBi6mdrbhr9AIP0W36r3Xbwe_9a1khGC2BQrQVFEH19AjUMXYhoEL9pIXUwNn MqnNpVaKTyxf46beAFyrIgX5McWAltr0p_ps7O7v84feJ6UFVAzhOd_gxJPuWlw9uibpp7Gck8.4 WFA7v1l7OxqvBLqDKHCfBtEYM6rZGfSPyQ7JFWdmgRue_oUN2yCjjDwX81bhIS1DaW8C_GXri14z CyDjaSDqUOAZvPa0M7rD7rbU.mtFZ.Sh_k8pKHwjXG4cy_SAecDfyKJZlpbiKZVgjaOGN4KVnIF3 ZQHQb0WTbiZbDB9f40JRgzl1Q9WuFQTBzhOknyV7ruE_h6sGeYAtZSR4xpewl5.doPFUChybNmsg TSvx2vnmwtQC0LIv8iHp5B_8hNKOwaRhaFIfuqggHtjMMgCF78LrC6MNsF7Ah64FEhFguT46aIKf V9ns60rNrNeERZFbHrmd8iTgT4QVcbMVJASCkEciC1jp.t2vFElnVAecaOA6ZthS.K0.EMt3WOhe BRnKWN8z626vJs6Y8DQTuUrKpR_gPtJjKTjUAv_n4wLuK0V2sdJnZHrWvJZGd7HeXsIFnwTMElqT bgyD4YWm.0LA.FZ8nXdsV59BloWmRRxhpz2Luw32nHgLwilsYJBbbJLdjFKS_1a_v1uLNniRSQrS I_GFrwOeCGHply5nEhFZd_A-- X-Sonic-MF: X-Sonic-ID: b3d60582-78fb-4e9a-84be-0df6b00ff0c8 Received: from sonic.gate.mail.ne1.yahoo.com by sonic309.consmr.mail.ir2.yahoo.com with HTTP; Sun, 14 May 2023 12:31:59 +0000 Received: by hermes--production-ir2-7867f454fc-kqstn (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID 32d47a946aad3f7d203db987b930ba8f; Sun, 14 May 2023 12:31:53 +0000 (UTC) From: Jakob Hauser To: Sebastian Reichel , Lee Jones , Liam Girdwood , Mark Brown , Rob Herring , Krzysztof Kozlowski Cc: Beomho Seo , Chanwoo Choi , Stephan Gerhold , Raymond Hackley , Pavel Machek , Axel Lin , ChiYuan Huang , Linus Walleij , Henrik Grimler , linux-pm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, phone-devel@vger.kernel.org, ~postmarketos/upstreaming@lists.sr.ht, Jakob Hauser Subject: [PATCH v5 03/10] mfd: rt5033: Fix STAT_MASK, HZ_MASK and AICR defines Date: Sun, 14 May 2023 14:31:23 +0200 Message-Id: <20230514123130.41172-4-jahau@rocketmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230514123130.41172-1-jahau@rocketmail.com> References: <20230514123130.41172-1-jahau@rocketmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org The charger state mask RT5033_CHG_STAT_MASK should be 0x30 [1][2]. The high impedance mask RT5033_RT_HZ_MASK is actually value 0x02 [3] and is assosiated to the RT5033 CHGCTRL1 register [4]. Accordingly also change RT5033_CHARGER_HZ_ENABLE to 0x02 to avoid the need of a bit shift upon application. For input current limiting AICR mode, the define for the 1000 mA step was missing [5]. Additionally add the define for DISABLE option. Concerning the mask, remove RT5033_AICR_MODE_MASK because there is already RT5033_CHGCTRL1_IAICR_MASK further up. They are redundant and the upper one makes more sense to have the masks of a register colleted there as an overview. [1] https://github.com/msm8916-mainline/linux-downstream/blob/GT-I9195I/drivers/battery/rt5033_charger.c#L669-L682 [2] https://github.com/torvalds/linux/blob/v6.0/include/linux/mfd/rt5033-private.h#L59-L62 [3] https://github.com/msm8916-mainline/linux-downstream/blob/GT-I9195I/include/linux/battery/charger/rt5033_charger.h#L44 [4] https://github.com/msm8916-mainline/linux-downstream/blob/GT-I9195I/drivers/battery/rt5033_charger.c#L223 [5] https://github.com/msm8916-mainline/linux-downstream/blob/GT-I9195I/drivers/battery/rt5033_charger.c#L278 Signed-off-by: Jakob Hauser Acked-for-MFD-by: Lee Jones --- include/linux/mfd/rt5033-private.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/include/linux/mfd/rt5033-private.h b/include/linux/mfd/rt5033-private.h index b035a67cec73..b6773ebf4e6b 100644 --- a/include/linux/mfd/rt5033-private.h +++ b/include/linux/mfd/rt5033-private.h @@ -55,7 +55,7 @@ enum rt5033_reg { }; /* RT5033 Charger state register */ -#define RT5033_CHG_STAT_MASK 0x20 +#define RT5033_CHG_STAT_MASK 0x30 #define RT5033_CHG_STAT_DISCHARGING 0x00 #define RT5033_CHG_STAT_FULL 0x10 #define RT5033_CHG_STAT_CHARGING 0x20 @@ -67,6 +67,7 @@ enum rt5033_reg { /* RT5033 CHGCTRL1 register */ #define RT5033_CHGCTRL1_IAICR_MASK 0xe0 #define RT5033_CHGCTRL1_MODE_MASK 0x01 +#define RT5033_CHGCTRL1_HZ_MASK 0x02 /* RT5033 CHGCTRL2 register */ #define RT5033_CHGCTRL2_CV_MASK 0xfc @@ -92,7 +93,6 @@ enum rt5033_reg { /* RT5033 RT CTRL1 register */ #define RT5033_RT_CTRL1_UUG_MASK 0x02 -#define RT5033_RT_HZ_MASK 0x01 /* RT5033 control register */ #define RT5033_CTRL_FCCM_BUCK_MASK BIT(0) @@ -119,13 +119,14 @@ enum rt5033_reg { * register), AICR mode limits the input current. For example, the AIRC 100 * mode limits the input current to 100 mA. */ +#define RT5033_AICR_DISABLE 0x00 #define RT5033_AICR_100_MODE 0x20 #define RT5033_AICR_500_MODE 0x40 #define RT5033_AICR_700_MODE 0x60 #define RT5033_AICR_900_MODE 0x80 +#define RT5033_AICR_1000_MODE 0xa0 #define RT5033_AICR_1500_MODE 0xc0 #define RT5033_AICR_2000_MODE 0xe0 -#define RT5033_AICR_MODE_MASK 0xe0 /* RT5033 use internal timer need to set time */ #define RT5033_FAST_CHARGE_TIMER4 0x00 @@ -195,7 +196,7 @@ enum rt5033_reg { /* RT5033 charger high impedance mode */ #define RT5033_CHARGER_HZ_DISABLE 0x00 -#define RT5033_CHARGER_HZ_ENABLE 0x01 +#define RT5033_CHARGER_HZ_ENABLE 0x02 /* RT5033 regulator BUCK output voltage uV */ #define RT5033_REGULATOR_BUCK_VOLTAGE_MIN 1000000U From patchwork Sun May 14 12:31:25 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jakob Hauser X-Patchwork-Id: 681878 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7C961C77B7D for ; Sun, 14 May 2023 12:32:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237509AbjENMcO (ORCPT ); Sun, 14 May 2023 08:32:14 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59110 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237526AbjENMcI (ORCPT ); Sun, 14 May 2023 08:32:08 -0400 Received: from sonic306-19.consmr.mail.ir2.yahoo.com (sonic306-19.consmr.mail.ir2.yahoo.com [77.238.176.205]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 70A1330FF for ; Sun, 14 May 2023 05:32:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rocketmail.com; s=s2048; t=1684067520; bh=xfHykX4lNV0IJkAiNJxxbDhqSPAzmVIyexGvhYt+828=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From:Subject:Reply-To; b=pmT0AhKPqCJGY2LRJYSr0thvKqdI/DFCZirY7L8CLCWe18rrJvixoUX95DSik1lUPnxloDu6SBol3jFIrbnfp8pUDpqJR2jFFev86iBjZdVkk6CbM0VCCeLhkFCp1jvsoQ3bap4lpkhwTiiz2WtkgzZclQXKm4XjCf1agg3tUhRFUtAKteN0rwr257SojBBRjwASViyzLXZOWOIMfA78iUPxOIJO/RTvVQAWYDReIw2sHBlrIPRFtDTh+nbtgxuU7jbceA0zES4SUdasCd3RfH034GUmkM0mrWNJR5D0gQ3ekINLn2Rj6jZcqohePQjGuwAT16MH0lOeRQEK6WxsaQ== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1684067520; bh=l6+PRkGShezgHq+bJCwTCvlB4lyX9L9yCZdvoBysmd6=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=JI3Pl6sIl3T6IQ6YcBoZgihpR/baA/pmsjYXe2aDan3g6yUA5Q5v1952BdVy/SFC2X9/LYHUxlprXTGpI/Jleyior3nyTysvaChzpb9p95odR2IY3modpXNIMLgBDe+RRmU1Kizes9Ab3SrkCTscbd9I+vdsnfrLRMa+0A0angF6mh+RbqBGqSO6MMhXkcq8u3ixi6oNlLSDMXC+0uoQcnN/jT6sEtd1l2rVInMsrB2Zaj3km6d2Akn+hsSe5qUl2zcuM+/Uos7zwU61C+JD1EX/pAOZGgMTrdpGwr+ilS3h5+whwunxv0kDQLlE2aIoDVDp1CBa4ubw81lTWVXIYA== X-YMail-OSG: 9oMc6WEVM1lwAQZg8xY2LQofvNPkIns1EJtLCtGe2NUTUu5dHQGyKVI9_En8AlR nHPosDBI0PGihMGOR3vXuwJvq8RBReziyIu6Ah0OwOFFndDD0tMC.Zb6uJ5MJYcd7aJfhgIA8DXx qStAqoiJtp5J5LwzJh9c3TqZn66TsQPyq0PfqgPqUljro28WVNTLtzWRKkJhlasD0W1km5KojhOD jd6XyIEmY6PDO22Po97OuHqgJt0HMBgVT6aDuOepYtITNeC6ljNmcNCFOi.Pb.fwoQJgPyfF2G7V 036RZ9id5elocyJhRq9x.HEWX6Vz8qayfOf1gSlTGsT1YsAsqNfpQcVB5XMkpSMnWUyGtMJ_QPlP w0LqlaihDxUlCER2YgBqYXQwQqbAcIG7CohTlvRuWAf.Znpp6yQLvlrEN7bta0z0L_zpNKCwO1pE Rf1wpEfepTDfJT7wWdRQJxrg_sOiUNnrv7caH7tAdByUNLIO41CC.Xx77s9mJwBQQGb3w.rFK0G7 jgv2AL8ZPmLztyx7U7HsGIIIzCjpb2RlP9o7bCbRlu1QjButW2XlaEQ_tlYVGb3TYecckrb2VMad wNPwR2_OkWH0fZP4SIMunQ9_8Xw1nR1pBpFI0DivAqTik7HMGJCxLTc7FhqD8weatodAcH9MYJU9 s0N0G_L4554lNgp4tMFbcaD9V0yHaxkmQvyFNmF6w4vDyMQe1Vq2wT9MPX1d5xgapco2VwZktlah cg18u.tygyY0s5_lQCeecRA4iOtpPOXE5cLYR.fA.VLMu3P_Kl5BYr80sjY.656PwDhV9ho19LTU Npo9oFW33N_2UEHihuOwIgK1EsLpbIlK4o6ctsgUykGNfHZBhfb1TkDGIGGzziZmfZKnFQA2zcaU ZVpJqUEL0Wk9GgtT.A2XdbJBeCZuTo2v.quSppct3S628C811qiaIfSkPtM_fEp29GYA7x7sESJN NYfGwsVuXSsCYEs0ZE.LpU9q9JVI80pzRQAlx4v0T4bXEiLMJ_1fqoDP3Fd0h_fplHplUj5svroW VGnthYCKg00ju4YQaXaGgrox48Rn8UAbOFOw83QrpZIVXDUyTGrg7iYcLXgAXwx3WWbrKAywZGxP Jhzndo_IZOcDUt7fG_7tv2X.vuceVpQHYhhcJMxPekT1XN0d_Xg1psGC.ABE2Paz4CexlByyy.Gg HuD1jsvNyGwXRwvf9D3ZGfrvGbJbWgh..ZzraOstVnznerv6Q.TwvBSU0vRLw8vOnUo1_JnnwGHQ 4ALFAb0jFp5OUdtNRCeOcGbex3OJFCnBA7WrhYz3uSA1JA40zGcYAkSvAQ4haGZB38Vz7rcn2tdl as85P7Te6M7.AUP0kN_rm48RNAPnwPD5f6qOvKDAazn8bprHYsvk5TpPQf6wv.sVmjUUFLbq14.A sCGHSzytch4qYr7Oanyq78nKzBeBWcuZ3c7JO0EezP0js_GDnRGMcvq.zd1ARlfrB4E6ndnY5IhU KXWK0UBX654PhYLIxGutt5XR0uCx48_VINhEwrQ6hbFovg81CovEMdeX4z35GdUs9Kaw3C50qrpB fuV_eH2WmGTVbOOes9QwohMJpfLztL0Q3SYABMiEkC9sPs04SN.rXh0WXVUtuaRTsyZDhKc.YLqT zoPTKEFfbf3kGD_mcAV3d4RDMopQrPmQOie5Ml5r7aE39v24ad9bEZclAht1Wono07aGMGZ7cVtN BwzM6IScJZcdOJpH5NHXDnsPQl3O5KddVCgpWeiiPnVbjauEcnlC1t9UdDnIx5nOwu_x_9m7Ehjq cL6BDpFlOPNcv2wBxmVDMXu9PdsCoHls43NBXDg_aOPe.oPi0dFBreC7WlBvTT3Km.wB2O7RxkZ_ ykDIgPk2mb3MNbowzH8f_q61c2ZFBgjz2d2Ehu35K1rHVfHUpL3G3VKy3SZTEvMd79OiX6DeOnwW W67h0tFmoMhzoK_N7hy04zYfg4vRMONYxi4wi8tbOWFFeVBcJ5mCgE7ap6.jQirhg1MF3PNsQu2F xD52UvjgcVFBcDZRjZjaSsfsGSaNoyVrW.o3YvZ9GMwc3XUABhTyu74anvc8kCJycXkFC0rlURuj o_DUrzelpqrPn5LtsMndHOYkooaN8C9pnK5gQP_UDrwzIuY20Uvq0R58f_E5_bFTdIy79BPRmIfP GGqJgGT39mM6J22iG4rKfrPtGhxmcf_4oBDz.Zpj3WDTjC4lAnaVNVeFuQuu9lCBP8GcOhjY7MqG r5W.C8hhicLfMxJ64iLpBIAo79xLnV_egKaToj0A2FVCVQzV2oZDsXMLORfNnZ64A2.pjYmxFRkR hjOE2ZiQ7XNFh5iYpsu0MOqXukZSAWOs- X-Sonic-MF: X-Sonic-ID: d38c1b50-3e18-4029-8bc5-ff22906835a3 Received: from sonic.gate.mail.ne1.yahoo.com by sonic306.consmr.mail.ir2.yahoo.com with HTTP; Sun, 14 May 2023 12:32:00 +0000 Received: by hermes--production-ir2-7867f454fc-kqstn (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID 32d47a946aad3f7d203db987b930ba8f; Sun, 14 May 2023 12:31:56 +0000 (UTC) From: Jakob Hauser To: Sebastian Reichel , Lee Jones , Liam Girdwood , Mark Brown , Rob Herring , Krzysztof Kozlowski Cc: Beomho Seo , Chanwoo Choi , Stephan Gerhold , Raymond Hackley , Pavel Machek , Axel Lin , ChiYuan Huang , Linus Walleij , Henrik Grimler , linux-pm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, phone-devel@vger.kernel.org, ~postmarketos/upstreaming@lists.sr.ht, Jakob Hauser Subject: [PATCH v5 05/10] power: supply: rt5033_charger: Add RT5033 charger device driver Date: Sun, 14 May 2023 14:31:25 +0200 Message-Id: <20230514123130.41172-6-jahau@rocketmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230514123130.41172-1-jahau@rocketmail.com> References: <20230514123130.41172-1-jahau@rocketmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org This patch adds device driver of Richtek RT5033 PMIC. The driver supports switching charger. rt5033 charger provides three charging modes. The charging modes are pre-charge mode, fast charge mode and constant voltage mode. They vary in charge rate, the charge parameters can be controlled by i2c interface. Cc: Beomho Seo Cc: Chanwoo Choi Tested-by: Raymond Hackley Signed-off-by: Jakob Hauser Reviewed-by: Linus Walleij --- drivers/power/supply/Kconfig | 8 + drivers/power/supply/Makefile | 1 + drivers/power/supply/rt5033_charger.c | 472 ++++++++++++++++++++++++++ include/linux/mfd/rt5033.h | 16 - 4 files changed, 481 insertions(+), 16 deletions(-) create mode 100644 drivers/power/supply/rt5033_charger.c diff --git a/drivers/power/supply/Kconfig b/drivers/power/supply/Kconfig index c78be9f322e6..ea11797670ca 100644 --- a/drivers/power/supply/Kconfig +++ b/drivers/power/supply/Kconfig @@ -766,6 +766,14 @@ config BATTERY_RT5033 The fuelgauge calculates and determines the battery state of charge according to battery open circuit voltage. +config CHARGER_RT5033 + tristate "RT5033 battery charger support" + depends on MFD_RT5033 + help + This adds support for battery charger in Richtek RT5033 PMIC. + The device supports pre-charge mode, fast charge mode and + constant voltage mode. + config CHARGER_RT9455 tristate "Richtek RT9455 battery charger driver" depends on I2C diff --git a/drivers/power/supply/Makefile b/drivers/power/supply/Makefile index 4adbfba02d05..dfc624bbcf1d 100644 --- a/drivers/power/supply/Makefile +++ b/drivers/power/supply/Makefile @@ -54,6 +54,7 @@ obj-$(CONFIG_BATTERY_MAX17040) += max17040_battery.o obj-$(CONFIG_BATTERY_MAX17042) += max17042_battery.o obj-$(CONFIG_BATTERY_MAX1721X) += max1721x_battery.o obj-$(CONFIG_BATTERY_RT5033) += rt5033_battery.o +obj-$(CONFIG_CHARGER_RT5033) += rt5033_charger.o obj-$(CONFIG_CHARGER_RT9455) += rt9455_charger.o obj-$(CONFIG_CHARGER_RT9467) += rt9467-charger.o obj-$(CONFIG_CHARGER_RT9471) += rt9471.o diff --git a/drivers/power/supply/rt5033_charger.c b/drivers/power/supply/rt5033_charger.c new file mode 100644 index 000000000000..1aa346dd0679 --- /dev/null +++ b/drivers/power/supply/rt5033_charger.c @@ -0,0 +1,472 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Battery charger driver for RT5033 + * + * Copyright (C) 2014 Samsung Electronics, Co., Ltd. + * Author: Beomho Seo + */ + +#include +#include +#include +#include +#include +#include + +struct rt5033_charger_data { + unsigned int pre_uamp; + unsigned int pre_uvolt; + unsigned int const_uvolt; + unsigned int eoc_uamp; + unsigned int fast_uamp; +}; + +struct rt5033_charger { + struct device *dev; + struct regmap *regmap; + struct power_supply *psy; + struct rt5033_charger_data *chg; +}; + +static int rt5033_get_charger_state(struct rt5033_charger *charger) +{ + struct regmap *regmap = charger->regmap; + unsigned int reg_data; + int state; + + if (!regmap) + return POWER_SUPPLY_STATUS_UNKNOWN; + + regmap_read(regmap, RT5033_REG_CHG_STAT, ®_data); + + switch (reg_data & RT5033_CHG_STAT_MASK) { + case RT5033_CHG_STAT_DISCHARGING: + state = POWER_SUPPLY_STATUS_DISCHARGING; + break; + case RT5033_CHG_STAT_CHARGING: + state = POWER_SUPPLY_STATUS_CHARGING; + break; + case RT5033_CHG_STAT_FULL: + state = POWER_SUPPLY_STATUS_FULL; + break; + case RT5033_CHG_STAT_NOT_CHARGING: + state = POWER_SUPPLY_STATUS_NOT_CHARGING; + break; + default: + state = POWER_SUPPLY_STATUS_UNKNOWN; + } + + return state; +} + +static int rt5033_get_charger_type(struct rt5033_charger *charger) +{ + struct regmap *regmap = charger->regmap; + unsigned int reg_data; + int state; + + regmap_read(regmap, RT5033_REG_CHG_STAT, ®_data); + + switch (reg_data & RT5033_CHG_STAT_TYPE_MASK) { + case RT5033_CHG_STAT_TYPE_FAST: + state = POWER_SUPPLY_CHARGE_TYPE_FAST; + break; + case RT5033_CHG_STAT_TYPE_PRE: + state = POWER_SUPPLY_CHARGE_TYPE_TRICKLE; + break; + default: + state = POWER_SUPPLY_CHARGE_TYPE_NONE; + } + + return state; +} + +static int rt5033_get_charger_current_limit(struct rt5033_charger *charger) +{ + struct regmap *regmap = charger->regmap; + unsigned int state, reg_data, data; + + regmap_read(regmap, RT5033_REG_CHG_CTRL5, ®_data); + + state = (reg_data & RT5033_CHGCTRL5_ICHG_MASK) + >> RT5033_CHGCTRL5_ICHG_SHIFT; + + data = RT5033_CHARGER_FAST_CURRENT_MIN + + RT5033_CHARGER_FAST_CURRENT_STEP_NUM * state; + + return data; +} + +static int rt5033_get_charger_const_voltage(struct rt5033_charger *charger) +{ + struct regmap *regmap = charger->regmap; + unsigned int state, reg_data, data; + + regmap_read(regmap, RT5033_REG_CHG_CTRL2, ®_data); + + state = (reg_data & RT5033_CHGCTRL2_CV_MASK) + >> RT5033_CHGCTRL2_CV_SHIFT; + + data = RT5033_CHARGER_CONST_VOLTAGE_LIMIT_MIN + + RT5033_CHARGER_CONST_VOLTAGE_STEP_NUM * state; + + return data; +} + +static inline int rt5033_init_const_charge(struct rt5033_charger *charger) +{ + struct rt5033_charger_data *chg = charger->chg; + int ret; + unsigned int val; + u8 reg_data; + + /* Set constant voltage mode */ + if (chg->const_uvolt < RT5033_CHARGER_CONST_VOLTAGE_LIMIT_MIN || + chg->const_uvolt > RT5033_CHARGER_CONST_VOLTAGE_LIMIT_MAX) { + dev_err(charger->dev, + "Value 'constant-charge-voltage-max-microvolt' out of range\n"); + return -EINVAL; + } + + if (chg->const_uvolt == RT5033_CHARGER_CONST_VOLTAGE_LIMIT_MIN) + reg_data = 0x00; + else if (chg->const_uvolt == RT5033_CHARGER_CONST_VOLTAGE_LIMIT_MAX) + reg_data = RT5033_CV_MAX_VOLTAGE; + else { + val = chg->const_uvolt; + val -= RT5033_CHARGER_CONST_VOLTAGE_LIMIT_MIN; + val /= RT5033_CHARGER_CONST_VOLTAGE_STEP_NUM; + reg_data = val; + } + + ret = regmap_update_bits(charger->regmap, RT5033_REG_CHG_CTRL2, + RT5033_CHGCTRL2_CV_MASK, + reg_data << RT5033_CHGCTRL2_CV_SHIFT); + if (ret) { + dev_err(charger->dev, "Failed regmap update\n"); + return -EINVAL; + } + + /* Set end of charge current */ + if (chg->eoc_uamp < RT5033_CHARGER_EOC_MIN || + chg->eoc_uamp > RT5033_CHARGER_EOC_MAX) { + dev_err(charger->dev, + "Value 'charge-term-current-microamp' out of range\n"); + return -EINVAL; + } + + if (chg->eoc_uamp == RT5033_CHARGER_EOC_MIN) + reg_data = 0x01; + else if (chg->eoc_uamp == RT5033_CHARGER_EOC_MAX) + reg_data = 0x07; + else { + val = chg->eoc_uamp; + if (val < RT5033_CHARGER_EOC_REF) { + val -= RT5033_CHARGER_EOC_MIN; + val /= RT5033_CHARGER_EOC_STEP_NUM1; + reg_data = 0x01 + val; + } else if (val > RT5033_CHARGER_EOC_REF) { + val -= RT5033_CHARGER_EOC_REF; + val /= RT5033_CHARGER_EOC_STEP_NUM2; + reg_data = 0x04 + val; + } else { + reg_data = 0x04; + } + } + + ret = regmap_update_bits(charger->regmap, RT5033_REG_CHG_CTRL4, + RT5033_CHGCTRL4_EOC_MASK, reg_data); + if (ret) { + dev_err(charger->dev, "Failed regmap update\n"); + return -EINVAL; + } + + return 0; +} + +static inline int rt5033_init_fast_charge(struct rt5033_charger *charger) +{ + struct rt5033_charger_data *chg = charger->chg; + int ret; + unsigned int val; + u8 reg_data; + + /* Set limit input current */ + ret = regmap_update_bits(charger->regmap, RT5033_REG_CHG_CTRL1, + RT5033_CHGCTRL1_IAICR_MASK, RT5033_AICR_2000_MODE); + if (ret) { + dev_err(charger->dev, "Failed regmap update\n"); + return -EINVAL; + } + + /* Set fast-charge mode charging current */ + if (chg->fast_uamp < RT5033_CHARGER_FAST_CURRENT_MIN || + chg->fast_uamp > RT5033_CHARGER_FAST_CURRENT_MAX) { + dev_err(charger->dev, + "Value 'constant-charge-current-max-microamp' out of range\n"); + return -EINVAL; + } + + if (chg->fast_uamp == RT5033_CHARGER_FAST_CURRENT_MIN) + reg_data = 0x00; + else if (chg->fast_uamp == RT5033_CHARGER_FAST_CURRENT_MAX) + reg_data = RT5033_CHG_MAX_CURRENT; + else { + val = chg->fast_uamp; + val -= RT5033_CHARGER_FAST_CURRENT_MIN; + val /= RT5033_CHARGER_FAST_CURRENT_STEP_NUM; + reg_data = val; + } + + ret = regmap_update_bits(charger->regmap, RT5033_REG_CHG_CTRL5, + RT5033_CHGCTRL5_ICHG_MASK, + reg_data << RT5033_CHGCTRL5_ICHG_SHIFT); + if (ret) { + dev_err(charger->dev, "Failed regmap update\n"); + return -EINVAL; + } + + return 0; +} + +static inline int rt5033_init_pre_charge(struct rt5033_charger *charger) +{ + struct rt5033_charger_data *chg = charger->chg; + int ret; + unsigned int val; + u8 reg_data; + + /* Set pre-charge threshold voltage */ + if (chg->pre_uvolt < RT5033_CHARGER_PRE_THRESHOLD_LIMIT_MIN || + chg->pre_uvolt > RT5033_CHARGER_PRE_THRESHOLD_LIMIT_MAX) { + dev_err(charger->dev, + "Value 'precharge-upper-limit-microvolt' out of range\n"); + return -EINVAL; + } + + if (chg->pre_uvolt == RT5033_CHARGER_PRE_THRESHOLD_LIMIT_MIN) + reg_data = 0x00; + else if (chg->pre_uvolt == RT5033_CHARGER_PRE_THRESHOLD_LIMIT_MAX) + reg_data = 0x0f; + else { + val = chg->pre_uvolt; + val -= RT5033_CHARGER_PRE_THRESHOLD_LIMIT_MIN; + val /= RT5033_CHARGER_PRE_THRESHOLD_STEP_NUM; + reg_data = val; + } + + ret = regmap_update_bits(charger->regmap, RT5033_REG_CHG_CTRL5, + RT5033_CHGCTRL5_VPREC_MASK, reg_data); + if (ret) { + dev_err(charger->dev, "Failed regmap update\n"); + return -EINVAL; + } + + /* Set pre-charge mode charging current */ + if (chg->pre_uamp < RT5033_CHARGER_PRE_CURRENT_LIMIT_MIN || + chg->pre_uamp > RT5033_CHARGER_PRE_CURRENT_LIMIT_MAX) { + dev_err(charger->dev, + "Value 'precharge-current-microamp' out of range\n"); + return -EINVAL; + } + + if (chg->pre_uamp == RT5033_CHARGER_PRE_CURRENT_LIMIT_MIN) + reg_data = 0x00; + else if (chg->pre_uamp == RT5033_CHARGER_PRE_CURRENT_LIMIT_MAX) + reg_data = RT5033_CHG_MAX_PRE_CURRENT; + else { + val = chg->pre_uamp; + val -= RT5033_CHARGER_PRE_CURRENT_LIMIT_MIN; + val /= RT5033_CHARGER_PRE_CURRENT_STEP_NUM; + reg_data = val; + } + + ret = regmap_update_bits(charger->regmap, RT5033_REG_CHG_CTRL4, + RT5033_CHGCTRL4_IPREC_MASK, + reg_data << RT5033_CHGCTRL4_IPREC_SHIFT); + if (ret) { + dev_err(charger->dev, "Failed regmap update\n"); + return -EINVAL; + } + + return 0; +} + +static int rt5033_charger_reg_init(struct rt5033_charger *charger) +{ + int ret = 0; + + /* Enable charging termination */ + ret = regmap_update_bits(charger->regmap, RT5033_REG_CHG_CTRL1, + RT5033_CHGCTRL1_TE_EN_MASK, RT5033_TE_ENABLE); + if (ret) { + dev_err(charger->dev, "Failed to enable charging termination.\n"); + return -EINVAL; + } + + /* + * Disable minimum input voltage regulation (MIVR), this improves + * the charging performance. + */ + ret = regmap_update_bits(charger->regmap, RT5033_REG_CHG_CTRL4, + RT5033_CHGCTRL4_MIVR_MASK, RT5033_CHARGER_MIVR_DISABLE); + if (ret) { + dev_err(charger->dev, "Failed to disable MIVR.\n"); + return -EINVAL; + } + + ret = rt5033_init_pre_charge(charger); + if (ret) + return ret; + + ret = rt5033_init_fast_charge(charger); + if (ret) + return ret; + + ret = rt5033_init_const_charge(charger); + if (ret) + return ret; + + return 0; +} + +static enum power_supply_property rt5033_charger_props[] = { + POWER_SUPPLY_PROP_STATUS, + POWER_SUPPLY_PROP_CHARGE_TYPE, + POWER_SUPPLY_PROP_CURRENT_MAX, + POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE, + POWER_SUPPLY_PROP_MODEL_NAME, + POWER_SUPPLY_PROP_MANUFACTURER, + POWER_SUPPLY_PROP_ONLINE, +}; + +static int rt5033_charger_get_property(struct power_supply *psy, + enum power_supply_property psp, + union power_supply_propval *val) +{ + struct rt5033_charger *charger = power_supply_get_drvdata(psy); + + switch (psp) { + case POWER_SUPPLY_PROP_STATUS: + val->intval = rt5033_get_charger_state(charger); + break; + case POWER_SUPPLY_PROP_CHARGE_TYPE: + val->intval = rt5033_get_charger_type(charger); + break; + case POWER_SUPPLY_PROP_CURRENT_MAX: + val->intval = rt5033_get_charger_current_limit(charger); + break; + case POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE: + val->intval = rt5033_get_charger_const_voltage(charger); + break; + case POWER_SUPPLY_PROP_MODEL_NAME: + val->strval = RT5033_CHARGER_MODEL; + break; + case POWER_SUPPLY_PROP_MANUFACTURER: + val->strval = RT5033_MANUFACTURER; + break; + case POWER_SUPPLY_PROP_ONLINE: + val->intval = (rt5033_get_charger_state(charger) == + POWER_SUPPLY_STATUS_CHARGING); + break; + default: + return -EINVAL; + } + + return 0; +} + +static struct rt5033_charger_data *rt5033_charger_dt_init( + struct rt5033_charger *charger) +{ + struct rt5033_charger_data *chg; + struct power_supply_battery_info *info; + int ret; + + chg = devm_kzalloc(charger->dev, sizeof(*chg), GFP_KERNEL); + if (!chg) + return ERR_PTR(-ENOMEM); + + ret = power_supply_get_battery_info(charger->psy, &info); + if (ret) + return ERR_PTR(dev_err_probe(charger->dev, -EINVAL, + "missing battery info\n")); + + /* Assign data. Validity will be checked in the init functions. */ + chg->pre_uamp = info->precharge_current_ua; + chg->fast_uamp = info->constant_charge_current_max_ua; + chg->eoc_uamp = info->charge_term_current_ua; + chg->pre_uvolt = info->precharge_voltage_max_uv; + chg->const_uvolt = info->constant_charge_voltage_max_uv; + + return chg; +} + +static const struct power_supply_desc rt5033_charger_desc = { + .name = "rt5033-charger", + .type = POWER_SUPPLY_TYPE_USB, + .properties = rt5033_charger_props, + .num_properties = ARRAY_SIZE(rt5033_charger_props), + .get_property = rt5033_charger_get_property, +}; + +static int rt5033_charger_probe(struct platform_device *pdev) +{ + struct rt5033_charger *charger; + struct power_supply_config psy_cfg = {}; + int ret; + + charger = devm_kzalloc(&pdev->dev, sizeof(*charger), GFP_KERNEL); + if (!charger) + return -ENOMEM; + + platform_set_drvdata(pdev, charger); + charger->dev = &pdev->dev; + charger->regmap = dev_get_regmap(pdev->dev.parent, NULL); + + psy_cfg.of_node = pdev->dev.of_node; + psy_cfg.drv_data = charger; + + charger->psy = devm_power_supply_register(&pdev->dev, + &rt5033_charger_desc, + &psy_cfg); + if (IS_ERR(charger->psy)) + return dev_err_probe(&pdev->dev, PTR_ERR(charger->psy), + "Failed to register power supply\n"); + + charger->chg = rt5033_charger_dt_init(charger); + if (IS_ERR_OR_NULL(charger->chg)) + return -ENODEV; + + ret = rt5033_charger_reg_init(charger); + if (ret) + return ret; + + return 0; +} + +static const struct platform_device_id rt5033_charger_id[] = { + { "rt5033-charger", }, + { } +}; +MODULE_DEVICE_TABLE(platform, rt5033_charger_id); + +static const struct of_device_id rt5033_charger_of_match[] = { + { .compatible = "richtek,rt5033-charger", }, + { } +}; +MODULE_DEVICE_TABLE(of, rt5033_charger_of_match); + +static struct platform_driver rt5033_charger_driver = { + .driver = { + .name = "rt5033-charger", + .of_match_table = rt5033_charger_of_match, + }, + .probe = rt5033_charger_probe, + .id_table = rt5033_charger_id, +}; +module_platform_driver(rt5033_charger_driver); + +MODULE_DESCRIPTION("Richtek RT5033 charger driver"); +MODULE_AUTHOR("Beomho Seo "); +MODULE_LICENSE("GPL v2"); diff --git a/include/linux/mfd/rt5033.h b/include/linux/mfd/rt5033.h index e99e2ab0c1c1..3992fb2ef0a8 100644 --- a/include/linux/mfd/rt5033.h +++ b/include/linux/mfd/rt5033.h @@ -39,20 +39,4 @@ struct rt5033_battery { struct power_supply *psy; }; -/* RT5033 charger platform data */ -struct rt5033_charger_data { - unsigned int pre_uamp; - unsigned int pre_uvolt; - unsigned int const_uvolt; - unsigned int eoc_uamp; - unsigned int fast_uamp; -}; - -struct rt5033_charger { - struct device *dev; - struct rt5033_dev *rt5033; - struct power_supply *psy; - struct rt5033_charger_data *chg; -}; - #endif /* __RT5033_H__ */ From patchwork Sun May 14 12:31:27 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jakob Hauser X-Patchwork-Id: 681877 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id A9074C7EE26 for ; Sun, 14 May 2023 12:37:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236252AbjENMha (ORCPT ); Sun, 14 May 2023 08:37:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35188 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233748AbjENMh3 (ORCPT ); Sun, 14 May 2023 08:37:29 -0400 Received: from sonic314-19.consmr.mail.ir2.yahoo.com (sonic314-19.consmr.mail.ir2.yahoo.com [77.238.177.145]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8BE79199A for ; Sun, 14 May 2023 05:37:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rocketmail.com; s=s2048; t=1684067845; bh=VqIx9LSfStGIwADHV2nx489yoOzekt9YBpjG8dE8w6w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From:Subject:Reply-To; b=qvDNkQPO9K0t6noCETiE2k3jPvB2018MeCDFv5vhHr1B/30OMrcsZHHgzi26lkjifU55eitVjXhZfl0vSwjwytq7+15IZFB7UrzterCBNpmTmihAqil2bO2EnwgB28aml9tVDu5wBfdGYeWURqBR0RzYZHPXuibwqt20QcSYvjT0FEr3l3s/qSTmnnwYdPj/in/DodkLGzl7b6ATuAUR81VCmwKkyl7Kacb1QKe6R/0CthUC4a+uQPkEVTqt9UZ7z34SPreexH7zjJkYY6Ia+1iZn55jOxCegrqknhfav6AWilYgTwk8qqTcG3fQLJHJOjQr0iJm8r/0rZdhqdB/Qw== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1684067845; bh=Awwi1q9aHXuKCeEYu1dy1W4ZCJJwkzQEbd2LjgXvC8r=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=Q7WjNySFufjsKv9sB0B+4rA5l+BWUL5ebe7IUDU+YF1RxqBswIjeKGs4/P3KVtmV28zYP91fxVEq8cMJg4O1I8fgkIQAIq9XKgvD2kh1oOyEN7ZhhGS76W8tSpXvOyRaS7KWbhciwhv6ccIyAoDRR0YmRMfhQRrBNsKWCjQAY9RVZtg8xMSreya0oiI6pmHYq3KJ5BeOgkL12dEH2JeOUpShvaVAZRPzInYW+XGmiKd/vPxuEvL87++GYiiSaqKnzYkB+YELOZ0q8kZfPI6E9TPT++9PfUi3z5r0aL9HKy/XmZwGN43rYvCSLGvShOsb5AHGv4zMCap9JybsUpcD4w== X-YMail-OSG: cuHQmTwVM1k4SQHQNYFgZMrSScidaSR_5IEb2Eow3z_uX3iC2o31iS_fLM3feES 43vClyWqqziJCkL6rSGX1T0_LjMqaZKQ2GICmjSfijvB2.kyF.F3Iv8C9c5iwET_swr5dwvho94. pVc.N3xNdq_6zLllgVDsqtj8.7kJJBrsKrGRfMC_OoN1y.J2xdDTJkvkCjgT09bo_zD0a2_egiS. FIc.q6TvvgDDC7T9e1koLbKdJt54ANGSUncbw8_a6JDjoCAKQfM.Efge_CeTLDLQzvfPnYSnaIIW xHTx1fClbgCaJqWfwl6UmKCeJEV1I4hwau7yw7Wwbk.RoZg4bosG0fTPDpOzSr67pvFYmi7A0_xI wy0yvEd9ZBFsmQ.KBh0.Qdt1QOgy6hzLc1UlLHYLH4RxBYM62qXnTsimaCP4ObjWbTJyrHGeKxzl U_lxBdpjsUspmo5o.nqWegpfAnaL3j_X0rWPAtLz0Ig1OpRQmgVdhK_n3kfqDtr6V7J1C75vstMO wM4HwoDBTqfMVu60EHjqGW.bMQ5heWj6kZ.DvPWtas4vgT2yg9Ey8lgOm5fXkx4NjEn5GSfqz4EN V34FXCaCF.NsDGfNdF1gzJ0GkdO955bZGepnGT5tY7kStKVnbzUOfwgM_fPwRtljW5gZueugi84L oeCbjfPxIAF.MwLOSlMoBFesOGG0n0nUJlJt3UWIxLREOsGhfM.BaUP8pT7cI6EggTFV84VXzL41 aPm4ICVbkErKz7HGLO.v4.WtESgxGQmGyaX1JxKoT5O8go2LJoOF6q.j7eQEgX4XuTklQQUjudG. V1y5slezl4Nd4DuNFfKU81SRvejJ1mU080bUjyrKEVsNUBj.t9NC9EUmBUWKuyayIhzO4bHQQ2hk n4kgArukKExB7zE9Aj4QRmN_EAhcnqXoDZTwTam8FHcUUQ93vzDYVg.swGwQ7mDP54WbJT94ofPl xUMiH6otj.hEfSuMjW.c3eEdizp1rKeJwWo6VYhcE.OgtKuVKD2GqluxhKRgSl9dUZOAv.TNY18S oaa8b4_1aWWkoYpIrd_F_n2CVllMpO5vTY_2IsYHPNZ4KhFwGIFH0yHDQEJsO_DSAtqW6LafvD.H Hy1HbWcAmnLCCUR224pZPgWv4vkQ45R9HrXVbWnVM6Wj44VeLYtKECBMAk4BMrp2dbRoDMSBs09_ SsQwJ9p84VgmTYUv.Z_EatV2vR0WnHiw3u3BUSjjg.UYAu1IMMj6Z4O5LoZLucXzQ4Ad51P6cKlc aXlFmhAHa65AK1k0rbP.H2tFFrcAfemVn7R7ciuETLGjHBmIh_yO3XAQMvvqU6Vk35ib7DAutzJJ W9BFeuYP8.68mL_.ykJbA9kY6lhkPX3YFyuQlWA1MH_49VUyy9kfvZeMYWpPPLL2GpxQv6ebov.W pnCcA6LJMJVhfymWWXyP0a_QE0YhKB_YMEk4GH7zRRg1gFSpJacUwOHt4TG2NuqV2VUpfvfRWvtE U2a7k92vEQdFScySYEtBw2TztZslUKFBA9zop0pBsn8XCrwxmMjp0IvBfrmvRhAIBgtp9vYU4QBX s3ZA7qDqb9LhiUDbhOY6YaSbPlfHvEKjpHhZEZDApSusY4g_vnVcxAl5LJV0trkLuihqD3wZhLDl D0TcipUYvoqSBogBDYXPhMaZ8SZx7qMOIrkCR8PRGOLBkhldSi5H3NBL.aKbZMa8gi0UU7xlYUX9 xkoLADQY75aHdWFYzzwGyisWp4BJER_YJY9LguNSgiMU79MHioyHpzc8oR7jl1bcB9zYuh3jLjqd OFFQIgjPjqDD_A8vseq5ixqCRIqh8.wBzrzGMbpuKF5iw3u5ZOJnnYnQ1UGdgnVpdg77tFUAKC52 .7E0Z1jZXWWIcj2AGJOsHsR47khFsHJATD26749hgiIFb3Ys08NzwjOtaZx_fY7RDqOPvC5ZUFxS DVRQc.VurLQjzRT.mWyzZReZv3sG9NYsqzsBJk2McQFHvYEaDPdYKN8qPqnZD6wlYgH6S393dAl0 iJObruMFUdtH3J63JVoyPtJvejo6F4dDijWgNWqAESZssabT5AaZdaFd3mKZRPh.jJdNR39DExbn faNMFCy_qmCNYGr_Pfkkq4R6hhU5GtGF2waq2qrI_7D8RqLqr6L1.Z4SSpI4AOno0cxk4Mb2Z_Pt 2800_of4NpIMQ.gufzEPokN2VLBvardPsEteY24xFT1RDGcMi1EikVGUWnRY8piUIK_StMPJcttw 3LHINN0krFtHDdjYRTMxwO6CWoiKshekO8VQ_Nqz68LAcS9rtqo9WcV8O9g06VoZE.DNHzzujpkj hSFjuNmt8_3qWCRzJFbaIzwSEmE17HQ-- X-Sonic-MF: X-Sonic-ID: 3aacc60e-eb6d-4247-8021-2b47a8d10bff Received: from sonic.gate.mail.ne1.yahoo.com by sonic314.consmr.mail.ir2.yahoo.com with HTTP; Sun, 14 May 2023 12:37:25 +0000 Received: by hermes--production-ir2-7867f454fc-tvsct (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID ec262f708c8ca7d1990bed607fb68ca2; Sun, 14 May 2023 12:37:20 +0000 (UTC) From: Jakob Hauser To: Sebastian Reichel , Lee Jones , Liam Girdwood , Mark Brown , Rob Herring , Krzysztof Kozlowski Cc: Beomho Seo , Chanwoo Choi , Stephan Gerhold , Raymond Hackley , Pavel Machek , Axel Lin , ChiYuan Huang , Linus Walleij , Henrik Grimler , linux-pm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, phone-devel@vger.kernel.org, ~postmarketos/upstreaming@lists.sr.ht, Jakob Hauser Subject: [PATCH v5 07/10] power: supply: rt5033_battery: Move struct rt5033_battery to battery driver Date: Sun, 14 May 2023 14:31:27 +0200 Message-Id: <20230514123130.41172-8-jahau@rocketmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230514123130.41172-1-jahau@rocketmail.com> References: <20230514123130.41172-1-jahau@rocketmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Move struct rt5033_battery from the mfd header into the battery driver because it's not used by others. Within struct rt5033_battery, remove the line "struct rt5033_dev *rt5033;" because it doesn't get used. In rt5033.h, remove #include , it's not necessary anymore. In rt5033_battery.c, remove #include , it's not necessary anymore either. Instead add #include and Signed-off-by: Jakob Hauser --- drivers/power/supply/rt5033_battery.c | 9 ++++++++- include/linux/mfd/rt5033.h | 8 -------- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/drivers/power/supply/rt5033_battery.c b/drivers/power/supply/rt5033_battery.c index 5c04cf305219..91e1efd81f69 100644 --- a/drivers/power/supply/rt5033_battery.c +++ b/drivers/power/supply/rt5033_battery.c @@ -6,11 +6,18 @@ * Author: Beomho Seo */ +#include #include #include #include +#include #include -#include + +struct rt5033_battery { + struct i2c_client *client; + struct regmap *regmap; + struct power_supply *psy; +}; static int rt5033_battery_get_capacity(struct i2c_client *client) { diff --git a/include/linux/mfd/rt5033.h b/include/linux/mfd/rt5033.h index 3992fb2ef0a8..bb3d18945d21 100644 --- a/include/linux/mfd/rt5033.h +++ b/include/linux/mfd/rt5033.h @@ -12,7 +12,6 @@ #include #include #include -#include /* RT5033 regulator IDs */ enum rt5033_regulators { @@ -32,11 +31,4 @@ struct rt5033_dev { bool wakeup; }; -struct rt5033_battery { - struct i2c_client *client; - struct rt5033_dev *rt5033; - struct regmap *regmap; - struct power_supply *psy; -}; - #endif /* __RT5033_H__ */ From patchwork Sun May 14 12:31:29 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jakob Hauser X-Patchwork-Id: 681876 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 38B50C77B7D for ; Sun, 14 May 2023 12:37:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236982AbjENMhf (ORCPT ); Sun, 14 May 2023 08:37:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35238 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233748AbjENMhc (ORCPT ); Sun, 14 May 2023 08:37:32 -0400 Received: from sonic311-30.consmr.mail.ir2.yahoo.com (sonic311-30.consmr.mail.ir2.yahoo.com [77.238.176.162]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C37321995 for ; Sun, 14 May 2023 05:37:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rocketmail.com; s=s2048; t=1684067849; bh=ABeDo2NB0iraRjL4IKIY6NTLT84fW2XDtRNA6OdZxuM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From:Subject:Reply-To; b=OG9u4u10QhHTqLZL3Z/c590W+5uvwb/7PNYCmdUC3Q5wFNk35lu2uGXkceV23V/lhMhOl6lhaZFhjfUbmqI/gF/tHUa8YbGyZGFS6KhOtWyo0vA8Xbq89TnF2CQUpd6PcG+wUqdEPUBQw9jTdHFCy4T4GKD5dmEir6mMlhRoBM/llSFn1d8h2aXbhWDAbe8s5iSUxV2WAs5uKVoF8LyqMu92GycFYHcHjjo8hQh07Xa6O0gwggOZTbnB63Ra1cItHyr5sP6H/6pH3ldymVYTB+PPyQoqvl1odiVgYcnqElIJqFqXeUElLBCxAk2SO+KxyIMUPxuDuGPhhm6Lr++sgA== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1684067849; bh=bOgMST9Qz9+ZA5gsFOQZ4NduBtPmyUrODYeOAg4u6dD=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=BrH18X5QbvZlTBi14RxLBH8OEifz+1jN4lSp0klb8BDsE4COVXfvwjEYiFf0Eui0uOnOKJkiqJYvcRqanDVyK8D6NYaDF1qyo7GrEAGZfdZtFza3bJisIk+kaUHDfgnu4HAxDiajgv/dJpOGkCaTGtZ1yA2NSE4QGjUSdh7VJEnfmrVgzMN2D3uQP57XqoRpXPxZUmDUvc3S3H7AgcOPUh4pOVV3F0T/oBUvkpXrinaFRNIfKoaUD+Xv4QOaaMacJzCdopkQj+MpqIcLz3RtBTJPpvJ61BAtrYL0Mn2BXaxwICn8jeYdjesy003HJ2Q/zFmugk+oVh59/iYFvQvwyQ== X-YMail-OSG: 6Wf8Fn4VM1ny1TUfhejUZUUATuctGmhdxD8fycA_qD5azT1n4PnyNWlCTOqbAtg IZb6agVqNT79m7DN8a8wyxA_6NuZd7WWwrldfdskOtDpZPW88MRGS5ZGjEmaBGaqg2pnKRBIiXWJ XbqG0GQmWNFGiwYsHFwRrFTOZM8UJU78ImxIwCPtjpSZHSFrsGGo.ZRcL0SgtW9BC814GrqbV9P_ rXLdoofe_5_nar8Q8unKWB6ENJYdy4x_cPHsQv4dAZpfj8Q0bFdo8ybK9pnOSXtRDparW3xHZVtI FoZOOw7jG.nXhqCl7a0e6mIfOjxa457fRUwEvbJH6tKtRCYXhJ_ctY1CMI.OZZ13n2eHfuu92aYV PR8ewn7n1GR.yPBgRMS13PFyY0l4.tac3qb.SM7OTOGikMm3XgPkoWg4spCufqaGqjyUjYp9.tIR 5R14JdXlD_eMKqu3aP1WDdy7ieK8FODQK4jL2MSdOOjqQJf5IrrRqscro5Xmw3OfZLtI6wxMhM95 eNPOBVk45FVz6c_YGkFGT7awh3LaG5Mj9ozXx_bOjNVAiVGrZ.kgQySdS2wq.YalmuGqkVxILbLf UNTfuyDErQnb7JsUm3T9eAETTTW1vJSxXIhsAedXSXZYqFpEDyyxKlFG6lix7QaSnK3hmCKMsZJZ tUKtEn8fz.csDVfBYiJkiXDgu8OM7D6HKaS2v0t_m9lvxG2W3yxwNkqD3wkwx3yFA2WaLiMPKZrL eZSz_0pv3nR9tSns3IU0bdzU9MSwowhy9QRVAb6bR4ZC0saxPu0JZrxmq7FYif0RF.FFdmcHsSTS UKbRAfJbgnYV9XfGBr02pAgwz0x85xfP4DJ5W8_UAqG3c3vttLJSdaoetBQswl9wcpxGWsUFx7.z IT0V6JHMm34_a7fTaTCyHQ8Ev1f9AUmnOPO32DpxwPnDX0v16v.8e4vBb41EWihqoURTpuNQQcgk 8zh_L.iF7Wmj8NBMTWsrzKuCnW2RqoKGoZw_kyqGf.DIY_7.sEbkStRObeGYRYX3Cioc1KrTyye_ n5VVr42FPwfKRRsbkAJ0TGdFUx2SUQZvg62TiKjHrZC1_DXQrqxIIPv1hWBJ22ADJRP.u17kTumB opJ1VXHlekJdV9lWf0hQjRf8lAXRMCeWilyYLhYUGdo7D09jufTQiiU3bPc5STOfLb6L23JkvEH8 O9BxrLolPxQOnV5FdxaztWyZGr4K8bC_Oo2T0Efp.n8AAXKSZVS.FILamSR8.fDtK7L_VOekPHbX pusiPyYLVsKhOWHFt9vluBWZFbdAIPQfhN9LWcZIEZYIS8HrFQnfK1kU4qq7ry7_EJpBcT8E7kao rjvA4YPdV3Ynq1dpMoG200MZTAEKw_pr51NLy7Ijx1vDovw6abwvK_Lmkync2BsjNwIrtpXDxMgh pvAT97rmHafhLjzmJBhWLqKQ_400SHSVE0tMqnqHdnXsuaONBnOV0OLkUtbhXg3Z_bExtKvE7G8d d6hc_Q.ds.Y3mrTyixr0dPF_WKlU6c_Et9X1DzN6QtP_BpVIqfWS4gax.9N63Ui1KRZKuiO5NBNX 9hrUZRhuztBfepfAg8IqhE9_OrkdrU_ag83apfQM7aVZ1i29kpomOhYK9GrBhPITXwmSXF3pt4x0 lrUp8BYLp8y_TjAU9Jrg5qvMv6YNckkSPIrdvDZJ35VD7npBr4D7AP47G_7mKJfU_BB9jLElyqYg 6zfmLQCGhl7ztz2KYCSnqUNvKDkhSb_nvb2JxRUQz6jDT3oqdnZ9cp3q2ptt_CXelDvZ_6.2OWND HjhSdsTlvdLxGhjA3OwEokqNBjEI0twwK_inxl3aofqLhkeSv7QKJ_dyCGZBLVBF7UXdSShojt40 2U9lomEzYuBADy29_XM5FwzbGk5FkN5Yu9X6to5XabJSiTLFGn3Dl1vifa4m5rIIfnz8s6ABUeyj bN6_Vku9_TL9rV7FryUtwqbvCn66HOnI36mwNFoiNpQtSH4o8IozduCoR1nw8xeZUpMBSe8LxwwS 9mBcM01Ep4nkUtAdYMsxeuXMHYcdR0SPpsfE8rgGwjihU_vnGeE5wmzAE8osUJbYkDcWfr6OotV5 nPUuaso._N9UhtHgOxOHo0lkCrcQMu89rnmSyU0WLsT_VdL97zd5EukELiGS6cC_yuDRp8WKJ3Rh Rxk2gdnCJzp9RnKey.dC6oF7mFEFz.fo5w7Zb4j6H47Tp_9rimHPfrTssA97kpuh3Jv4gBlpM9Au ghwyMKe.9.Jm.dQDEp.EAHQ7LOU8pkrMKIj3CKe1K1Rt.VZLb8G73tBcQ_0AaDm8.Iirwys6VI5p vvgcIzvbje5KAMgAdYtzzYP9nwuRj X-Sonic-MF: X-Sonic-ID: 613d2af4-0dd7-4765-892d-9e43d36e4134 Received: from sonic.gate.mail.ne1.yahoo.com by sonic311.consmr.mail.ir2.yahoo.com with HTTP; Sun, 14 May 2023 12:37:29 +0000 Received: by hermes--production-ir2-7867f454fc-tvsct (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID ec262f708c8ca7d1990bed607fb68ca2; Sun, 14 May 2023 12:37:24 +0000 (UTC) From: Jakob Hauser To: Sebastian Reichel , Lee Jones , Liam Girdwood , Mark Brown , Rob Herring , Krzysztof Kozlowski Cc: Beomho Seo , Chanwoo Choi , Stephan Gerhold , Raymond Hackley , Pavel Machek , Axel Lin , ChiYuan Huang , Linus Walleij , Henrik Grimler , linux-pm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, phone-devel@vger.kernel.org, ~postmarketos/upstreaming@lists.sr.ht, Jakob Hauser Subject: [PATCH v5 09/10] dt-bindings: power: supply: rt5033-battery: Add power-supplies as a property Date: Sun, 14 May 2023 14:31:29 +0200 Message-Id: <20230514123130.41172-10-jahau@rocketmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230514123130.41172-1-jahau@rocketmail.com> References: <20230514123130.41172-1-jahau@rocketmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Additionally to the already available ref "power-supply.yaml", add "power-supplies" as a property. Otherwise, when referencing rt5033-battery in an example, message "'power-supplies' does not match any of the regexes: 'pinctrl-[0-9]+'" will be returned. Signed-off-by: Jakob Hauser --- .../bindings/power/supply/richtek,rt5033-battery.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/power/supply/richtek,rt5033-battery.yaml b/Documentation/devicetree/bindings/power/supply/richtek,rt5033-battery.yaml index 756c16d1727d..07e03418a909 100644 --- a/Documentation/devicetree/bindings/power/supply/richtek,rt5033-battery.yaml +++ b/Documentation/devicetree/bindings/power/supply/richtek,rt5033-battery.yaml @@ -22,6 +22,8 @@ properties: interrupts: maxItems: 1 + power-supplies: true + required: - compatible - reg