From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jaewon Kim Subject: [PATCH v4 1/4] mfd: max77693: Initialize haptic register map Date: Thu, 11 Sep 2014 21:54:19 +0900 Message-ID: <1410440062-19963-2-git-send-email-jaewon02.kim@samsung.com> References: <1410440062-19963-1-git-send-email-jaewon02.kim@samsung.com> Return-path: Received: from mailout4.samsung.com ([203.254.224.34]:57473 "EHLO mailout4.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755096AbaIKMy2 (ORCPT ); Thu, 11 Sep 2014 08:54:28 -0400 In-reply-to: <1410440062-19963-1-git-send-email-jaewon02.kim@samsung.com> Sender: linux-input-owner@vger.kernel.org List-Id: linux-input@vger.kernel.org To: Dmitry Torokhov , Samuel Ortiz , Lee Jones Cc: Chanwoo Choi , linux-kernel@vger.kernel.org, linux-input@vger.kernel.org, Jaewon Kim This patch add regmap_haptic initialization to use haptic register map in haptic device driver. Signed-off-by: Jaewon Kim Acked-by: Chanwoo Choi Acked-by: Lee Jones --- drivers/mfd/max77693.c | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/drivers/mfd/max77693.c b/drivers/mfd/max77693.c index 249c139..fbfed56 100644 --- a/drivers/mfd/max77693.c +++ b/drivers/mfd/max77693.c @@ -144,6 +144,12 @@ static const struct regmap_irq_chip max77693_muic_irq_chip = { .num_irqs = ARRAY_SIZE(max77693_muic_irqs), }; +static const struct regmap_config max77693_regmap_haptic_config = { + .reg_bits = 8, + .val_bits = 8, + .max_register = MAX77693_HAPTIC_REG_END, +}; + static int max77693_i2c_probe(struct i2c_client *i2c, const struct i2c_device_id *id) { @@ -193,6 +199,15 @@ static int max77693_i2c_probe(struct i2c_client *i2c, } i2c_set_clientdata(max77693->haptic, max77693); + max77693->regmap_haptic = devm_regmap_init_i2c(max77693->haptic, + &max77693_regmap_haptic_config); + if (IS_ERR(max77693->regmap_haptic)) { + ret = PTR_ERR(max77693->regmap_haptic); + dev_err(max77693->dev, + "failed to initialize haptic register map: %d\n", ret); + goto err_regmap; + } + /* * Initialize register map for MUIC device because use regmap-muic * instance of MUIC device when irq of max77693 is initialized @@ -204,7 +219,7 @@ static int max77693_i2c_probe(struct i2c_client *i2c, ret = PTR_ERR(max77693->regmap_muic); dev_err(max77693->dev, "failed to allocate register map: %d\n", ret); - goto err_regmap_muic; + goto err_regmap; } ret = regmap_add_irq_chip(max77693->regmap, max77693->irq, @@ -214,7 +229,7 @@ static int max77693_i2c_probe(struct i2c_client *i2c, &max77693->irq_data_led); if (ret) { dev_err(max77693->dev, "failed to add irq chip: %d\n", ret); - goto err_regmap_muic; + goto err_regmap; } ret = regmap_add_irq_chip(max77693->regmap, max77693->irq, @@ -265,7 +280,7 @@ err_irq_charger: regmap_del_irq_chip(max77693->irq, max77693->irq_data_topsys); err_irq_topsys: regmap_del_irq_chip(max77693->irq, max77693->irq_data_led); -err_regmap_muic: +err_regmap: i2c_unregister_device(max77693->haptic); err_i2c_haptic: i2c_unregister_device(max77693->muic); -- 1.7.9.5