Thread (40 messages) 40 messages, 9 authors, 2016-01-14

Re: [rtc-linux] [PATCH 5/6] rtc: max77620: add support for max77620/max20024 RTC driver

From: Krzysztof Kozlowski <hidden>
Date: 2016-01-12 03:52:07
Also in: linux-gpio, linux-rtc, lkml

On 12.01.2016 11:32, Laxman Dewangan wrote:
On Tuesday 12 January 2016 05:43 AM, Krzysztof Kozlowski wrote:
quoted
On 12.01.2016 02:07, Laxman Dewangan wrote:
quoted
quoted
quoted
The RTC driver parent is not the same parent for which i2c slave
address get
registered.
There is two slave address from max77620, 0x3C (for general) and 0x68
for
RTC.

In max77620 mfd driver, we make dummy i2c client for 0x68 and
initialize
regmap with this address.

Now on mfd_add_devices, we pass the device for 0x3c and hence the RTC
driver
treat the parent as the 0x3c device but actually it should be 0x68 to
get
the proper regmap.


Two approach:
1. If we add the option to pass parent_dev when adding cells form
mfd_add_devices and select the parent device based on this option
then it
can be easily handle.
      Add parent_dev structure in struct mfd_cell and then change the
parent
in mfd_add_device() if cells has parent device.

2. Register the RTC driver with different mfd_add_devices with
dummy i2c
client device.
So two times mfd_add_devices.
Lexman,

I don't quite get the problem. This looks exactly the same as for
max77686. What is the difference? I don't see any need to change the
mfd_cell for current drivers...
Here the change is only required to pass the regmap handle from mfd to
the rtc driver. There is no change for rest of rtc driver.

RTC i2c regmap registered with i2c dummy client device, not with actual
parent device and hence we need to register RTC with this dummy i2c
client device. This way we can get regmap handle by using the
dev_get_regmap(pdev->dev.parent).
It seems that both max77620 and max77686 use separate I2C addresses for
RTC block. The max77802 does not. This means that probably each child
driver should be responsible for its own regmap. The max77620 and
max77686 will create new I2C dummy devices and new regmaps. The max77802
will re-use references passed by parent (MFD).

Best regards,
Krzysztof
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help