From mboxrd@z Thu Jan 1 00:00:00 1970 From: Luis Oliveira Subject: Re: [PATCH v5 6/7] i2c: designware: enable SLAVE in platform module Date: Wed, 28 Dec 2016 18:10:34 +0000 Message-ID: References: <1482939844.9552.165.camel@linux.intel.com> <20e47113-efd7-787c-b2f8-39e9fd8b83d2@synopsys.com> <1482942696.9552.172.camel@linux.intel.com> <1482945043.9552.174.camel@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1482945043.9552.174.camel-VuQAYsv1563Yd54FQh9/CA@public.gmane.org> Sender: devicetree-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: Andy Shevchenko , Luis Oliveira , wsa-z923LK4zBo2bacvFa/9K2g@public.gmane.org, robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org, mark.rutland-5wv7dgnIgG8@public.gmane.org, jarkko.nikula-VuQAYsv1563Yd54FQh9/CA@public.gmane.org, mika.westerberg-VuQAYsv1563Yd54FQh9/CA@public.gmane.org, linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: Ramiro.Oliveira-HKixBCOQz3hWk0Htik3J/w@public.gmane.org, Joao.Pinto-HKixBCOQz3hWk0Htik3J/w@public.gmane.org, CARLOS.PALMINHA-HKixBCOQz3hWk0Htik3J/w@public.gmane.org List-Id: linux-i2c@vger.kernel.org On 28-Dec-16 17:10, Andy Shevchenko wrote: > On Wed, 2016-12-28 at 16:41 +0000, Luis Oliveira wrote: >> On 28-Dec-16 16:31, Andy Shevchenko wrote: >>> On Wed, 2016-12-28 at 15:53 +0000, Luis Oliveira wrote: >>>> On 28-Dec-16 15:44, Andy Shevchenko wrote: >>>>> On Wed, 2016-12-28 at 14:43 +0000, Luis Oliveira wrote: >>>>>> - Slave mode selected in platform module (devicetree support >>>>>> only) >>>>>> - Check for ACPI - not supported in SLAVE mode: >>>>>> - Changed the ifndef style to the use of ACPI_HANDLE that >>>>>> returns >>>>>> NULL >>>>>> if the device was not enumerated from ACPI namespace. >>>>> >>>>> I'm not sure what is wrong with ACPI? >>>> >>>> I dont have a way to test it. Just that. >>> >>> Okay, can you provide an excerpt to see how it will look like in >>> DTS? >> >> Yes, it looks like this now: >> >> i2c@0x2000 { >> compatible = "snps,designware-i2c"; >> #address-cells = <1>; >> #size-cells = <0>; >> reg = <0x2000 0x100>; >> clock-frequency = <400000>; >> clocks = <&i2cclk>; >> interrupts = <0>; >> >> eeprom@64 { >> compatible = "linux,slave-24c02"; >> reg = <0x40000064>; >> }; >> }; > > +1 to Carlos' comment. Agree, I'm on it. > >>> >>>>>> - dev->functionality = I2C_FUNC_10BIT_ADDR | >>>>>> DW_IC_DEFAULT_FUNCTIONALITY; >>>>>> - >>>>>> - i2c_dw_configure_master(pdev); >>>>>> + if (ACPI_HANDLE(&pdev->dev) == NULL) { >>>>> >>>>> I don't think you need this at all. >>>> >>>> This is to avoid the use of the "ifdef" style I used before. >>> >>> My point is to drop it completely. >>> >>>>> >>>>>> + device_for_each_child_node(&pdev->dev, child) >>>>>> { >>>>> >>>>> This is resource agnostic. >>>>> >>>>>> + fwnode_property_read_u32(child, >>>>>> "reg", >>>>>> ®); >>>>> >>>>> This is as well. >>>> >>>> Are you suggesting I use of_ functions? >>> >>> Nope. See above. > > So, ACPI has a property to support slave mode for I2CSerialBus() macro. > > I would propose to create a helper function in i2c-core.c which will be > responsible for mode detection > > ... i2c_slave_mode_detect() > { > ... > if (IS_BUILTIN(CONFIG_OF) && dev->of_node) { > ... (use of_*() here) ... > } else if (IS_BUILTIN(CONFIG_ACPI) && ACPI_HANDLE(dev)) > dev_dbg(..., "ACPI slave is not supported yet\n"); > ... to master ... > } else { > ... default to master ... > } > } > EXPORT_...(); > > Make it as a separate patch. > Oh I see, yes it looks good. I will check it. Thanks -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html