From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752936AbcA2LLU (ORCPT ); Fri, 29 Jan 2016 06:11:20 -0500 Received: from hqemgate14.nvidia.com ([216.228.121.143]:4154 "EHLO hqemgate14.nvidia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750831AbcA2LLR (ORCPT ); Fri, 29 Jan 2016 06:11:17 -0500 X-PGP-Universal: processed; by hqnvupgp08.nvidia.com on Fri, 29 Jan 2016 03:11:51 -0800 Message-ID: <56AB462A.8090307@nvidia.com> Date: Fri, 29 Jan 2016 16:29:54 +0530 From: Laxman Dewangan User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0 MIME-Version: 1.0 To: Lee Jones CC: , , , , , , , , , , , , , , , , , , Chaitanya Bandi , Mallikarjun Kasoju Subject: Re: [PATCH V6 2/8] mfd: max77620: add core driver for MAX77620/MAX20024 References: <1453988274-28052-1-git-send-email-ldewangan@nvidia.com> <1453988274-28052-3-git-send-email-ldewangan@nvidia.com> <20160129090632.GS3368@x1> In-Reply-To: <20160129090632.GS3368@x1> X-Originating-IP: [10.19.65.30] X-ClientProxiedBy: DRUKMAIL101.nvidia.com (10.25.59.19) To bgmail102.nvidia.com (10.25.59.11) Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Thanks Lee for review. I will take care of most of stuff on next version of patch. However, I have some query form your comment. On Friday 29 January 2016 02:36 PM, Lee Jones wrote: > On Thu, 28 Jan 2016, Laxman Dewangan wrote: > > >> + } >> + >> +#define MAX20024_SUB_MODULE_NO_RES(_name, _id) \ >> + [_id] = { \ >> + .name = "max20024-"#_name, \ >> + .id = _id, \ >> + } > I don't want people hand-rolling this stuff. If it's useful to you, > it's useful to others, so great a generic implementation that lives in > the kernel headers directory. yaah, generic implementation possible. I can put the new defines in the mfd/core.h. This will be similar to +/* Define mfd cells with name and resource */ +#define DEFINE_MFD_CELL_NAME_RESOURCE(_name, _res) \ + { \ + .name = (_name), \ + .num_resources = ARRAY_SIZE((res)), \ + .resources = (_res), \ + } + +/* Define mfd cells with name */ +#define DEFINE_MFD_CELL_NAME(_name) \ + { \ + .name = (_name), \ + } + This will be separate patch and should be applied before this series. Does it look fine? > >> +static const struct i2c_device_id max77620_id[] = { >> + {"max77620", MAX77620}, >> + {"max20024", MAX20024}, >> + {}, >> +}; >> +MODULE_DEVICE_TABLE(i2c, max77620_id); >> + >> +static const struct of_device_id max77620_of_match[] = { >> + { >> + .compatible = "maxim,max77620", >> + .data = &max77620_cells, >> + }, { >> + .compatible = "maxim,max20024", >> + .data = &max20024_cells, >> + }, { >> + }, >> +}; >> +MODULE_DEVICE_TABLE(of, max77620_of_match); > This is not acceptable. EITHER use DT OR MFD methods of registering > devices, do not mix the two. You mean I need to either provide the i2c_device_id table or the of_device_id table, not both? Do I need to protect it by CONFIG_OF? This only support the DT method of registration. So do I need to remove i2c_device_id?