From mboxrd@z Thu Jan 1 00:00:00 1970 From: rmallon@gmail.com (Ryan Mallon) Date: Tue, 02 Apr 2013 16:34:07 +1100 Subject: [PATCH 2/6] rtc: rtc-m48t86: add hooks to support driver side memory mapping In-Reply-To: <1364858565-17192-3-git-send-email-alex@digriz.org.uk> References: <1364858565-17192-1-git-send-email-alex@digriz.org.uk> <1364858565-17192-3-git-send-email-alex@digriz.org.uk> Message-ID: <515A6DCF.1080902@gmail.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On 02/04/13 10:22, Alexander Clouter wrote: > If platform_data is not defined (as before), then named memory io > ranges need to be defined ("rtc_index" and "rtc_data"). The driver > then maps those regions and uses them as the RTC index and data > addresses. > > Does compile with the following warnings, I cannot see the codepath > affected myself: > ---- > drivers/rtc/rtc-m48t86.c: In function ?m48t86_rtc_probe?: > drivers/rtc/rtc-m48t86.c:180: warning: ?res_index? may be used uninitialized in this function > drivers/rtc/rtc-m48t86.c:180: warning: ?res_data? may be used uninitialized in this function > ---- > > Signed-off-by: Alexander Clouter > --- > drivers/rtc/rtc-m48t86.c | 230 ++++++++++++++++++++++++++++++++++------------ > 1 file changed, 173 insertions(+), 57 deletions(-) > > diff --git a/drivers/rtc/rtc-m48t86.c b/drivers/rtc/rtc-m48t86.c > index 25e0116..6f99e64 100644 > --- a/drivers/rtc/rtc-m48t86.c > +++ b/drivers/rtc/rtc-m48t86.c > @@ -18,6 +18,8 @@ > #include > #include > #include > +#include > +#include > > #define M48T86_REG_SEC 0x00 > #define M48T86_REG_SECALRM 0x01 > @@ -41,40 +43,71 @@ > > #define DRV_VERSION "0.1" > > +struct m48t86_rtc_private_data { > + void __iomem *io_index; > + void __iomem *io_data; > + > + struct rtc_device *rtc; > + struct m48t86_ops *ops; > +}; > + > +static void m48t86_rtc_writebyte(struct device *dev, > + unsigned char value, unsigned long addr) > +{ > + struct m48t86_rtc_private_data *priv = dev_get_drvdata(dev); > + > + if (priv->ops) { > + priv->ops->writebyte(value, addr); > + return; > + } > + > + writeb(addr, priv->io_index); > + writeb(value, priv->io_data); > +} > + > +static unsigned char m48t86_rtc_readbyte(struct device *dev, > + unsigned long addr) The read/writebyte functions should return a u8 and take a u8 for the address (since you are using readb/writeb). For the temporary step which still has the ops structure, you can explicitly cast addr to unsigned long if you want to make it obvious that the old api was silly. ~Ryan From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ryan Mallon Subject: Re: [PATCH 2/6] rtc: rtc-m48t86: add hooks to support driver side memory mapping Date: Tue, 02 Apr 2013 16:34:07 +1100 Message-ID: <515A6DCF.1080902@gmail.com> References: <1364858565-17192-1-git-send-email-alex@digriz.org.uk> <1364858565-17192-3-git-send-email-alex@digriz.org.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1364858565-17192-3-git-send-email-alex-L4GPcECwBoDe9xe1eoZjHA@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: devicetree-discuss-bounces+gldd-devicetree-discuss=m.gmane.org-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org Sender: "devicetree-discuss" To: Alexander Clouter Cc: Alessandro Zummo , Jason Cooper , rtc-linux-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org, Andrew Lunn , devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org, Rob Herring , Hartley Sweeten , linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org List-Id: devicetree@vger.kernel.org T24gMDIvMDQvMTMgMTA6MjIsIEFsZXhhbmRlciBDbG91dGVyIHdyb3RlOgo+IElmIHBsYXRmb3Jt X2RhdGEgaXMgbm90IGRlZmluZWQgKGFzIGJlZm9yZSksIHRoZW4gbmFtZWQgbWVtb3J5IGlvCj4g cmFuZ2VzIG5lZWQgdG8gYmUgZGVmaW5lZCAoInJ0Y19pbmRleCIgYW5kICJydGNfZGF0YSIpLiAg VGhlIGRyaXZlcgo+IHRoZW4gbWFwcyB0aG9zZSByZWdpb25zIGFuZCB1c2VzIHRoZW0gYXMgdGhl IFJUQyBpbmRleCBhbmQgZGF0YQo+IGFkZHJlc3Nlcy4KPiAKPiBEb2VzIGNvbXBpbGUgd2l0aCB0 aGUgZm9sbG93aW5nIHdhcm5pbmdzLCBJIGNhbm5vdCBzZWUgdGhlIGNvZGVwYXRoCj4gYWZmZWN0 ZWQgbXlzZWxmOgo+IC0tLS0KPiBkcml2ZXJzL3J0Yy9ydGMtbTQ4dDg2LmM6IEluIGZ1bmN0aW9u IOKAmG00OHQ4Nl9ydGNfcHJvYmXigJk6Cj4gZHJpdmVycy9ydGMvcnRjLW00OHQ4Ni5jOjE4MDog d2FybmluZzog4oCYcmVzX2luZGV44oCZIG1heSBiZSB1c2VkIHVuaW5pdGlhbGl6ZWQgaW4gdGhp cyBmdW5jdGlvbgo+IGRyaXZlcnMvcnRjL3J0Yy1tNDh0ODYuYzoxODA6IHdhcm5pbmc6IOKAmHJl c19kYXRh4oCZIG1heSBiZSB1c2VkIHVuaW5pdGlhbGl6ZWQgaW4gdGhpcyBmdW5jdGlvbgo+IC0t LS0KPiAKPiBTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kZXIgQ2xvdXRlciA8YWxleEBkaWdyaXoub3Jn LnVrPgo+IC0tLQo+ICBkcml2ZXJzL3J0Yy9ydGMtbTQ4dDg2LmMgfCAgMjMwICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0KPiAgMSBmaWxlIGNoYW5nZWQsIDE3 MyBpbnNlcnRpb25zKCspLCA1NyBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ydGMvcnRjLW00OHQ4Ni5jIGIvZHJpdmVycy9ydGMvcnRjLW00OHQ4Ni5jCj4gaW5kZXggMjVl MDExNi4uNmY5OWU2NCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3J0Yy9ydGMtbTQ4dDg2LmMKPiAr KysgYi9kcml2ZXJzL3J0Yy9ydGMtbTQ4dDg2LmMKPiBAQCAtMTgsNiArMTgsOCBAQAo+ICAjaW5j bHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+Cj4gICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9y bV9kYXRhL3J0Yy1tNDh0ODYuaD4KPiAgI2luY2x1ZGUgPGxpbnV4L2JjZC5oPgo+ICsjaW5jbHVk ZSA8bGludXgvc2xhYi5oPgo+ICsjaW5jbHVkZSA8bGludXgvaW8uaD4KPiAgCj4gICNkZWZpbmUg TTQ4VDg2X1JFR19TRUMJCTB4MDAKPiAgI2RlZmluZSBNNDhUODZfUkVHX1NFQ0FMUk0JMHgwMQo+ IEBAIC00MSw0MCArNDMsNzEgQEAKPiAgCj4gICNkZWZpbmUgRFJWX1ZFUlNJT04gIjAuMSIKPiAg Cj4gK3N0cnVjdCBtNDh0ODZfcnRjX3ByaXZhdGVfZGF0YSB7Cj4gKwl2b2lkIF9faW9tZW0JCSpp b19pbmRleDsKPiArCXZvaWQgX19pb21lbQkJKmlvX2RhdGE7Cj4gKwo+ICsJc3RydWN0IHJ0Y19k ZXZpY2UJKnJ0YzsKPiArCXN0cnVjdCBtNDh0ODZfb3BzCSpvcHM7Cj4gK307Cj4gKwo+ICtzdGF0 aWMgdm9pZCBtNDh0ODZfcnRjX3dyaXRlYnl0ZShzdHJ1Y3QgZGV2aWNlICpkZXYsCj4gKwkJCXVu c2lnbmVkIGNoYXIgdmFsdWUsIHVuc2lnbmVkIGxvbmcgYWRkcikKPiArewo+ICsJc3RydWN0IG00 OHQ4Nl9ydGNfcHJpdmF0ZV9kYXRhICpwcml2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7Cj4gKwo+ ICsJaWYgKHByaXYtPm9wcykgewo+ICsJCXByaXYtPm9wcy0+d3JpdGVieXRlKHZhbHVlLCBhZGRy KTsKPiArCQlyZXR1cm47Cj4gKwl9Cj4gKwo+ICsJd3JpdGViKGFkZHIsIHByaXYtPmlvX2luZGV4 KTsKPiArCXdyaXRlYih2YWx1ZSwgcHJpdi0+aW9fZGF0YSk7Cj4gK30KPiArCj4gK3N0YXRpYyB1 bnNpZ25lZCBjaGFyIG00OHQ4Nl9ydGNfcmVhZGJ5dGUoc3RydWN0IGRldmljZSAqZGV2LAo+ICsJ CQl1bnNpZ25lZCBsb25nIGFkZHIpCgpUaGUgcmVhZC93cml0ZWJ5dGUgZnVuY3Rpb25zIHNob3Vs ZCByZXR1cm4gYSB1OCBhbmQgdGFrZSBhIHU4IGZvciB0aGUKYWRkcmVzcyAoc2luY2UgeW91IGFy ZSB1c2luZyByZWFkYi93cml0ZWIpLiBGb3IgdGhlIHRlbXBvcmFyeSBzdGVwIHdoaWNoCnN0aWxs IGhhcyB0aGUgb3BzIHN0cnVjdHVyZSwgeW91IGNhbiBleHBsaWNpdGx5IGNhc3QgYWRkciB0byB1 bnNpZ25lZApsb25nIGlmIHlvdSB3YW50IHRvIG1ha2UgaXQgb2J2aW91cyB0aGF0IHRoZSBvbGQg YXBpIHdhcyBzaWxseS4KCn5SeWFuCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpkZXZpY2V0cmVlLWRpc2N1c3MgbWFpbGluZyBsaXN0CmRldmljZXRyZWUt ZGlzY3Vzc0BsaXN0cy5vemxhYnMub3JnCmh0dHBzOi8vbGlzdHMub3psYWJzLm9yZy9saXN0aW5m by9kZXZpY2V0cmVlLWRpc2N1c3MK