From patchwork Tue Dec 11 05:02:39 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anson Huang X-Patchwork-Id: 10723045 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 229E36C5 for ; Tue, 11 Dec 2018 05:02:58 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 119762A512 for ; Tue, 11 Dec 2018 05:02:58 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 046B72A567; Tue, 11 Dec 2018 05:02:58 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 917E22A512 for ; Tue, 11 Dec 2018 05:02:57 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728375AbeLKFCo (ORCPT ); Tue, 11 Dec 2018 00:02:44 -0500 Received: from mail-eopbgr150082.outbound.protection.outlook.com ([40.107.15.82]:35275 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1728682AbeLKFCo (ORCPT ); Tue, 11 Dec 2018 00:02:44 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9yDivyE66yUSnoP18I4GD4cCh3mIxjSnbPK9Jr4UMF8=; b=DT3qOYktioO9RcgkBrTVqGvgCyhk745uvhiInj7BribPdTDznHveizeUTOFpkCSQSHbdCUZV6pz8ofkxAtdyI8TNwgX7+pO/hj3RIGoM0tW7AmO+2pyDhaPVGphxEfKNWcMKP3noH44QtLZkmN0LluT+3kc8xHugh7a55PAHjao= Received: from DB3PR0402MB3916.eurprd04.prod.outlook.com (52.134.72.18) by DB3PR0402MB3898.eurprd04.prod.outlook.com (52.134.65.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1425.18; Tue, 11 Dec 2018 05:02:39 +0000 Received: from DB3PR0402MB3916.eurprd04.prod.outlook.com ([fe80::adf8:f49d:deb4:58fd]) by DB3PR0402MB3916.eurprd04.prod.outlook.com ([fe80::adf8:f49d:deb4:58fd%3]) with mapi id 15.20.1404.026; Tue, 11 Dec 2018 05:02:39 +0000 From: Anson Huang To: "jic23@kernel.org" , "knaack.h@gmx.de" , "lars@metafoo.de" , "pmeerw@pmeerw.net" , "robh+dt@kernel.org" , "mark.rutland@arm.com" , "linux-iio@vger.kernel.org" , "devicetree@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "festevam@gmail.com" , "preid@electromag.com.au" CC: dl-linux-imx Subject: [PATCH V5 1/2] dt-bindings: iio: light: isl29018: update power supply name Thread-Topic: [PATCH V5 1/2] dt-bindings: iio: light: isl29018: update power supply name Thread-Index: AQHUkQ69KKDx96mQQkC4bI4uHvTkMQ== Date: Tue, 11 Dec 2018 05:02:39 +0000 Message-ID: <1544504196-30277-1-git-send-email-Anson.Huang@nxp.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.7.4 x-clientproxiedby: HK0PR03CA0028.apcprd03.prod.outlook.com (2603:1096:203:2f::16) To DB3PR0402MB3916.eurprd04.prod.outlook.com (2603:10a6:8:10::18) authentication-results: spf=none (sender IP is ) smtp.mailfrom=anson.huang@nxp.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [119.31.174.66] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;DB3PR0402MB3898;6:T5La6ulW0fimKd+HIozqU54o27QxvjEx1PJtY0rJQ0HHpfjjmnXaFn2RO52cUbGzodu4pOGGz+fZ5y+ycP8wO3g93w+mWXtTI96CUcIUeYiLlos+EVVIi3ecNRDWGfDHxERP5Hp1AALV1GunGon25XuxCLUOJrZep6y2GCyvLxdHnSyHSbJW79Rdza3GTT9HNTothPDCdzei6+IjYXX9lBgeHkiJdziH43Mm9SHmE7706gm6ZCNnN/5L47pMvnP7j8wnecMCnAo+5RGbTWysPRGPXSVE6qhc08MFTZalbYHnbvgQZ3viuLryf/B9C1568OylsKyb1pY/OC6tIUe9w9avZbZ4/QIeW6ldYIanM/0ZmqMY/+dsKv0ybVO0opexZbqq1M1Hs2SvqwNfZJh4cbhPaeTaDF6vT259T8aeuYq+cbypUKGRAA2877GGBotonr2DjapNVV/C1SXSCQiAgA==;5:ADeZ7TiGn0rPYqhi2kU1kv94TU79d81wBiPyktjCF5RBbVMclWbDy3QQ+fUaZk+vNUzUpQ3pqM6ypP2vTkOZt6ruIir3QLYbQbO4gW2kL7dNQuW4wmVrpGVagFcxAeKQ/Nr8KAAiG1dyaSF9lNY9x2x21W4ZF+nAwhHJTXvgHLw=;7:45t/zANubVuA2mMYFJC9XWyAClCyQFF0L4cviiG4b39pmAT0HGazuJ2MUDcjhvohP7fihwabE4X2B3yBM/PLsXXWf94qssB8jL/6Q9Mi0g32dFBUVZFCMNr4hgRNl5mz1iLpcqf+vnthdyMBJtG06A== x-ms-office365-filtering-correlation-id: d822bb29-515a-43db-c0d9-08d65f25df9b x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390098)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020);SRVR:DB3PR0402MB3898; x-ms-traffictypediagnostic: DB3PR0402MB3898: x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(8211001083)(3230017)(999002)(6040522)(2401047)(8121501046)(5005006)(93006095)(93001095)(3231472)(944501520)(52105112)(3002001)(10201501046)(6055026)(148016)(149066)(150057)(6041310)(20161123560045)(20161123558120)(20161123562045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(201708071742011)(7699051)(76991095);SRVR:DB3PR0402MB3898;BCL:0;PCL:0;RULEID:;SRVR:DB3PR0402MB3898; x-forefront-prvs: 08831F51DC x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(366004)(136003)(39860400002)(396003)(346002)(376002)(189003)(199004)(54534003)(6486002)(71190400001)(186003)(36756003)(6436002)(68736007)(3846002)(7736002)(26005)(15650500001)(66066001)(99286004)(4326008)(50226002)(25786009)(105586002)(71200400001)(256004)(14444005)(478600001)(106356001)(7416002)(6512007)(476003)(110136005)(6506007)(386003)(2906002)(2616005)(14454004)(486006)(97736004)(316002)(102836004)(2501003)(39060400002)(81156014)(86362001)(8936002)(305945005)(5660300001)(2201001)(81166006)(53936002)(8676002)(6116002)(52116002)(921003)(1121003);DIR:OUT;SFP:1101;SCL:1;SRVR:DB3PR0402MB3898;H:DB3PR0402MB3916.eurprd04.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: oBxfucTTtPcTpZQW2VrgbTk+Pw7KmZDyMPbzAzyry8nnR4beLrVVtvXaRyA4uhAUF6DhV6uBLkIGte0VBp5Y3sEJpZOWX+vBjXoEnQv6KBkpprSi1spqVB5f7vVXDeu/dsN6n+yiNF3FMvunI3o7JqttYn//STbmggpGx+e29QqllTjtsEAzSRFaKhYwAWJ8ZgT8ZCezPdM1r/kTw1Np608ikz9lGqAcWCo2ZoYC3UBLb0cBUpGeZOdFNEQwOcYQYGYrlCh3cbJfAXIl2oid8dZOR9A7f7oLvIe0mb5RjFcWuAYWoWeQIzzUJvcnGpSL spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: d822bb29-515a-43db-c0d9-08d65f25df9b X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Dec 2018 05:02:39.8055 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR0402MB3898 Sender: linux-iio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-iio@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP According to datasheet, the isl29018 has "vddd/vdda" power supply, the "vdda" and "vddd" MUST be shorted externally, and isl29023/isl29035 ONLY has "vdd" power supply, so just one regulator is needed for the driver, update the power supply name with "vdd" according to datasheet to avoid confusion. Signed-off-by: Anson Huang --- ChangeLog since V4: Since ONLY isl29018 has two power supplies and they are MUST shorted externally, so they can be treated as one power supply as well, remove "vdda" power supply and ONLY update the "vcc" with "vdd" according to datasheet. --- Documentation/devicetree/bindings/iio/light/isl29018.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/iio/light/isl29018.txt b/Documentation/devicetree/bindings/iio/light/isl29018.txt index b9bbde3..c4c4e9e 100644 --- a/Documentation/devicetree/bindings/iio/light/isl29018.txt +++ b/Documentation/devicetree/bindings/iio/light/isl29018.txt @@ -15,7 +15,7 @@ Optional properties: Refer to interrupt-controller/interrupts.txt for generic interrupt client node bindings. - - vcc-supply: phandle to the regulator that provides power to the sensor. + - vdd-supply: phandle to the regulator that provides power to the sensor. Example: From patchwork Tue Dec 11 05:02:44 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anson Huang X-Patchwork-Id: 10723043 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B7FAD6C5 for ; Tue, 11 Dec 2018 05:02:55 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A7FA82A512 for ; Tue, 11 Dec 2018 05:02:55 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9936B2A567; Tue, 11 Dec 2018 05:02:55 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 17CF82A512 for ; Tue, 11 Dec 2018 05:02:54 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730188AbeLKFCt (ORCPT ); Tue, 11 Dec 2018 00:02:49 -0500 Received: from mail-eopbgr150080.outbound.protection.outlook.com ([40.107.15.80]:26304 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1728682AbeLKFCs (ORCPT ); Tue, 11 Dec 2018 00:02:48 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=82DdLk1LJ+2WELvya2RVosHJGZsjHZ0Bi6ZL+Sf9Rdg=; b=kD/dqX270ZabeMSB3z1JRh9t+dB7uUs6mMcrESqNDPwwQgQTFpT7vqNICuqMtuUUjBNiBsvHkp0h6N8LYQ9aULgRs0L4y8QToNfjFamLyf+FVwqgHa3aORvPip7O6FXjlfn/mcfu7qdfiVatTQ3Hs5+k1M3Uja1bWFWvVDhzVm8= Received: from DB3PR0402MB3916.eurprd04.prod.outlook.com (52.134.72.18) by DB3PR0402MB3898.eurprd04.prod.outlook.com (52.134.65.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1425.18; Tue, 11 Dec 2018 05:02:44 +0000 Received: from DB3PR0402MB3916.eurprd04.prod.outlook.com ([fe80::adf8:f49d:deb4:58fd]) by DB3PR0402MB3916.eurprd04.prod.outlook.com ([fe80::adf8:f49d:deb4:58fd%3]) with mapi id 15.20.1404.026; Tue, 11 Dec 2018 05:02:44 +0000 From: Anson Huang To: "jic23@kernel.org" , "knaack.h@gmx.de" , "lars@metafoo.de" , "pmeerw@pmeerw.net" , "robh+dt@kernel.org" , "mark.rutland@arm.com" , "linux-iio@vger.kernel.org" , "devicetree@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "festevam@gmail.com" , "preid@electromag.com.au" CC: dl-linux-imx Subject: [PATCH V5 2/2] iio: light: isl29018: add optional vdd regulator operation support Thread-Topic: [PATCH V5 2/2] iio: light: isl29018: add optional vdd regulator operation support Thread-Index: AQHUkQ7AM002daa87UyyPcNub4GqeA== Date: Tue, 11 Dec 2018 05:02:44 +0000 Message-ID: <1544504196-30277-2-git-send-email-Anson.Huang@nxp.com> References: <1544504196-30277-1-git-send-email-Anson.Huang@nxp.com> In-Reply-To: <1544504196-30277-1-git-send-email-Anson.Huang@nxp.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.7.4 x-clientproxiedby: HK0PR03CA0028.apcprd03.prod.outlook.com (2603:1096:203:2f::16) To DB3PR0402MB3916.eurprd04.prod.outlook.com (2603:10a6:8:10::18) authentication-results: spf=none (sender IP is ) smtp.mailfrom=anson.huang@nxp.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [119.31.174.66] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;DB3PR0402MB3898;6:bIIzNZckBJwcM5spFveccsGZJTSQj86pd+5WR7QdClF8Jhw/VaLmwE2elK5U9tk30NuYP7P79ZhoMW1wx27lddx64u1OQsBtcIYVEH5I22bmPEct8/gzHm4PS6dZ0hPNNPZkZR3U892uZRv2j+bv6r61uNRJn8ySkS/k8lac1O8aCxch8yfXcwjrajoolhbXLq1nb+NpVkoMo2WQ5Ub/rJ55ypFgn9j5X8DdoxHDnIgOGSNr3j6C2C5mHjRKB5XrAu0J5islgwlPeP4nHfaZ1VoD6IUJCenoPRjIlFvjP6yIStB0Gs5+5TwMGkKkF/n6LD9AevT0NXznAl+GTmRFWfH8cxmEvtToXQ5lhK6QDRU+VMTHFPPAn23SjajEqdN3upaQO6FYnJdolPdRO/KBnevE9fKtI45wvSHbE5lOokMpZDcV1WlHw3iy1bnzxiEZ0nWwTNFJEWP4HFzq3CoUTw==;5:2tFxBuH1p9BEQ9juRW0V/UKp8zMZttzA3KmjWqYLSfis4g+z9dZTJL18PLp9M6JRGTD6dXVXwcF7lnthHpfMjVbZ2TJ8qGRocWbmf847eSBAh0LwBCuixmUixDz62Gj0Y/s8w5ObGJsx5dfi66m5QymuUktYTovkig48b0zHlCw=;7:OrDlv4RkV3qbk/agTezzzAImcuMP9jSqSe8uS9aQ/5DLlaleIC2Y0VKcnYHfBhL/DUXehCZ6sk8HnnJPioMb6x6MDbEK9ZyFf66eYGp5HJH9Y1QO2fiQR3hOaBulCKI1lcc9w2/tal+tjoE+b6Vjvw== x-ms-office365-filtering-correlation-id: 9058c7a0-4f6b-4c48-25f1-08d65f25e2cd x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390098)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020);SRVR:DB3PR0402MB3898; x-ms-traffictypediagnostic: DB3PR0402MB3898: x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(8211001083)(3230017)(999002)(6040522)(2401047)(8121501046)(5005006)(93006095)(93001095)(3231472)(944501520)(52105112)(3002001)(10201501046)(6055026)(148016)(149066)(150057)(6041310)(20161123560045)(20161123558120)(20161123562045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(201708071742011)(7699051)(76991095);SRVR:DB3PR0402MB3898;BCL:0;PCL:0;RULEID:;SRVR:DB3PR0402MB3898; x-forefront-prvs: 08831F51DC x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(366004)(136003)(39860400002)(396003)(346002)(376002)(189003)(199004)(54534003)(6486002)(71190400001)(186003)(36756003)(6436002)(68736007)(3846002)(7736002)(26005)(66066001)(99286004)(4326008)(50226002)(25786009)(105586002)(71200400001)(256004)(14444005)(478600001)(106356001)(7416002)(6512007)(476003)(110136005)(6506007)(386003)(2906002)(2616005)(14454004)(486006)(97736004)(316002)(102836004)(11346002)(2501003)(39060400002)(446003)(81156014)(76176011)(86362001)(8936002)(305945005)(5660300001)(2201001)(81166006)(53936002)(8676002)(6116002)(52116002)(921003)(1121003);DIR:OUT;SFP:1101;SCL:1;SRVR:DB3PR0402MB3898;H:DB3PR0402MB3916.eurprd04.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: NWR5atwYLOZCmmtjixo4NALyLWF7rY5gaTx2+7vtAWnPOcDs3Ss4vJYTN9YQmUxX7egEVIi4jjOIKM23jg3rXrSvAKHA+B8975B3EPZ8sCcCmHSzWNvkY4J9iXp24j6aDmCihEnXPdYgQn3zb/2qs8mVpWBRa5/LYoru+ZUsscJKmdLhtbldWU9sHQdy4y6n9eGZLYKZ0Bbs9heo3Wd0QelYeMvm7B0UT1+p9QwtubYiKhpeUiIKgZsVnFImsytyvKlCbPGDg0YvzJj/WA/o7EotAaSLt74D+23gPSOW8o/qllLde5hEqEN3LXGkEEPr spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9058c7a0-4f6b-4c48-25f1-08d65f25e2cd X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Dec 2018 05:02:44.5239 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR0402MB3898 Sender: linux-iio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-iio@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP The light sensor's power supply could be controlled by regulator on some platforms, such as i.MX6Q-SABRESD board, the light sensor isl29023's power supply is controlled by a GPIO fixed regulator, need to make sure the regulator is enabled before any operation of sensor, this patch adds optional vdd regulator operation support. Signed-off-by: Anson Huang --- ChangeLog since V4: Since ONLY isl29018 has two power supplies and they are MUST shorted externally, so they can be treated as one power supply as well, using one regulator for driver. --- drivers/iio/light/isl29018.c | 47 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 44 insertions(+), 3 deletions(-) diff --git a/drivers/iio/light/isl29018.c b/drivers/iio/light/isl29018.c index b45400f..5e3d1c1 100644 --- a/drivers/iio/light/isl29018.c +++ b/drivers/iio/light/isl29018.c @@ -23,6 +23,7 @@ #include #include #include +#include #include #include #include @@ -95,6 +96,7 @@ struct isl29018_chip { struct isl29018_scale scale; int prox_scheme; bool suspended; + struct regulator *vdd_reg; }; static int isl29018_set_integration_time(struct isl29018_chip *chip, @@ -735,6 +737,19 @@ static int isl29018_probe(struct i2c_client *client, mutex_init(&chip->lock); + chip->vdd_reg = devm_regulator_get_optional(&client->dev, "vdd"); + if (!IS_ERR(chip->vdd_reg)) { + err = regulator_enable(chip->vdd_reg); + if (err) { + dev_err(&client->dev, "failed to enable VDD regulator\n"); + return err; + } + } else { + err = PTR_ERR(chip->vdd_reg); + if (err != -ENODEV) + return err; + } + chip->type = dev_id; chip->calibscale = 1; chip->ucalibscale = 0; @@ -747,12 +762,12 @@ static int isl29018_probe(struct i2c_client *client, if (IS_ERR(chip->regmap)) { err = PTR_ERR(chip->regmap); dev_err(&client->dev, "regmap initialization fails: %d\n", err); - return err; + goto disable_regulator; } err = isl29018_chip_init(chip); if (err) - return err; + goto disable_regulator; indio_dev->info = isl29018_chip_info_tbl[dev_id].indio_info; indio_dev->channels = isl29018_chip_info_tbl[dev_id].channels; @@ -761,13 +776,22 @@ static int isl29018_probe(struct i2c_client *client, indio_dev->dev.parent = &client->dev; indio_dev->modes = INDIO_DIRECT_MODE; - return devm_iio_device_register(&client->dev, indio_dev); + err = devm_iio_device_register(&client->dev, indio_dev); + if (!err) + return 0; + +disable_regulator: + if (!IS_ERR(chip->vdd_reg)) + regulator_disable(chip->vdd_reg); + + return err; } #ifdef CONFIG_PM_SLEEP static int isl29018_suspend(struct device *dev) { struct isl29018_chip *chip = iio_priv(dev_get_drvdata(dev)); + int ret; mutex_lock(&chip->lock); @@ -777,6 +801,14 @@ static int isl29018_suspend(struct device *dev) * So we do not have much to do here. */ chip->suspended = true; + if (!IS_ERR(chip->vdd_reg)) { + ret = regulator_disable(chip->vdd_reg); + if (ret) { + dev_err(dev, "failed to disable VDD regulator\n"); + mutex_unlock(&chip->lock); + return ret; + } + } mutex_unlock(&chip->lock); @@ -790,6 +822,15 @@ static int isl29018_resume(struct device *dev) mutex_lock(&chip->lock); + if (!IS_ERR(chip->vdd_reg)) { + err = regulator_enable(chip->vdd_reg); + if (err) { + dev_err(dev, "failed to enable VDD regulator\n"); + mutex_unlock(&chip->lock); + return err; + } + } + err = isl29018_chip_init(chip); if (!err) chip->suspended = false;