From: Kevin Hilman <khilman-1D3HCaltpLuhEniVeURVKkEOCMrvLtNR@public.gmane.org>
To: Ben Dooks <ben-linux-elnMNo+KYs3YtjvyW6yDsg@public.gmane.org>
Cc: linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
davinci-linux-open-source-VycZQUHpC/PFrsHnngEfi1aTQe2KTcn/@public.gmane.org,
Chaithrika U S <chaithrika-l0cyMroinI0@public.gmane.org>
Subject: Re: [PATCH 2/6] i2c: davinci: Remove MOD_REG_BIT and IO_ADDRESS usage
Date: Fri, 29 Jan 2010 11:46:11 -0800 [thread overview]
Message-ID: <87ockcpud8.fsf@deeprootsystems.com> (raw)
In-Reply-To: <20100127150518.GB6090-elnMNo+KYs3pIgCt6eIbzw@public.gmane.org> (Ben Dooks's message of "Wed\, 27 Jan 2010 15\:05\:18 +0000")
Ben Dooks <ben-linux-elnMNo+KYs3YtjvyW6yDsg@public.gmane.org> writes:
> On Tue, Jan 26, 2010 at 03:41:29PM -0800, Kevin Hilman wrote:
>> From: Chaithrika U S <chaithrika-l0cyMroinI0@public.gmane.org>
>>
>> Cleanup the DaVinci I2C driver. Remove MOD_REG_BIT macro.
>> Also use ioremap instead of IO_ADDRESS macro.
>
> would have been nicer to do each of these seperately.
ok, good to note for next time. Can this version go through
through as is.
Kevin
>> Signed-off-by: Chaithrika U S <chaithrika-l0cyMroinI0@public.gmane.org>
>> Acked-by: Kevin Hilman <khilman-1D3HCaltpLuhEniVeURVKkEOCMrvLtNR@public.gmane.org>
>> ---
>> drivers/i2c/busses/i2c-davinci.c | 77 +++++++++++++++++++-------------------
>> 1 files changed, 38 insertions(+), 39 deletions(-)
>>
>> diff --git a/drivers/i2c/busses/i2c-davinci.c b/drivers/i2c/busses/i2c-davinci.c
>> index 444a9f2..34a48d0 100644
>> --- a/drivers/i2c/busses/i2c-davinci.c
>> +++ b/drivers/i2c/busses/i2c-davinci.c
>> @@ -37,7 +37,6 @@
>> #include <linux/io.h>
>>
>> #include <mach/hardware.h>
>> -
>> #include <mach/i2c.h>
>>
>> /* ----- global defines ----------------------------------------------- */
>> @@ -71,37 +70,29 @@
>> #define DAVINCI_I2C_IVR_NACK 0x02
>> #define DAVINCI_I2C_IVR_AL 0x01
>>
>> -#define DAVINCI_I2C_STR_BB (1 << 12)
>> -#define DAVINCI_I2C_STR_RSFULL (1 << 11)
>> -#define DAVINCI_I2C_STR_SCD (1 << 5)
>> -#define DAVINCI_I2C_STR_ARDY (1 << 2)
>> -#define DAVINCI_I2C_STR_NACK (1 << 1)
>> -#define DAVINCI_I2C_STR_AL (1 << 0)
>> -
>> -#define DAVINCI_I2C_MDR_NACK (1 << 15)
>> -#define DAVINCI_I2C_MDR_STT (1 << 13)
>> -#define DAVINCI_I2C_MDR_STP (1 << 11)
>> -#define DAVINCI_I2C_MDR_MST (1 << 10)
>> -#define DAVINCI_I2C_MDR_TRX (1 << 9)
>> -#define DAVINCI_I2C_MDR_XA (1 << 8)
>> -#define DAVINCI_I2C_MDR_RM (1 << 7)
>> -#define DAVINCI_I2C_MDR_IRS (1 << 5)
>> -
>> -#define DAVINCI_I2C_IMR_AAS (1 << 6)
>> -#define DAVINCI_I2C_IMR_SCD (1 << 5)
>> -#define DAVINCI_I2C_IMR_XRDY (1 << 4)
>> -#define DAVINCI_I2C_IMR_RRDY (1 << 3)
>> -#define DAVINCI_I2C_IMR_ARDY (1 << 2)
>> -#define DAVINCI_I2C_IMR_NACK (1 << 1)
>> -#define DAVINCI_I2C_IMR_AL (1 << 0)
>> -
>> -#define MOD_REG_BIT(val, mask, set) do { \
>> - if (set) { \
>> - val |= mask; \
>> - } else { \
>> - val &= ~mask; \
>> - } \
>> -} while (0)
>> +#define DAVINCI_I2C_STR_BB BIT(12)
>> +#define DAVINCI_I2C_STR_RSFULL BIT(11)
>> +#define DAVINCI_I2C_STR_SCD BIT(5)
>> +#define DAVINCI_I2C_STR_ARDY BIT(2)
>> +#define DAVINCI_I2C_STR_NACK BIT(1)
>> +#define DAVINCI_I2C_STR_AL BIT(0)
>> +
>> +#define DAVINCI_I2C_MDR_NACK BIT(15)
>> +#define DAVINCI_I2C_MDR_STT BIT(13)
>> +#define DAVINCI_I2C_MDR_STP BIT(11)
>> +#define DAVINCI_I2C_MDR_MST BIT(10)
>> +#define DAVINCI_I2C_MDR_TRX BIT(9)
>> +#define DAVINCI_I2C_MDR_XA BIT(8)
>> +#define DAVINCI_I2C_MDR_RM BIT(7)
>> +#define DAVINCI_I2C_MDR_IRS BIT(5)
>> +
>> +#define DAVINCI_I2C_IMR_AAS BIT(6)
>> +#define DAVINCI_I2C_IMR_SCD BIT(5)
>> +#define DAVINCI_I2C_IMR_XRDY BIT(4)
>> +#define DAVINCI_I2C_IMR_RRDY BIT(3)
>> +#define DAVINCI_I2C_IMR_ARDY BIT(2)
>> +#define DAVINCI_I2C_IMR_NACK BIT(1)
>> +#define DAVINCI_I2C_IMR_AL BIT(0)
>
> surely 1 << x isn't too difficult to understand??
>
>> struct davinci_i2c_dev {
>> struct device *dev;
>> @@ -155,7 +146,7 @@ static int i2c_davinci_init(struct davinci_i2c_dev *dev)
>>
>> /* put I2C into reset */
>> w = davinci_i2c_read_reg(dev, DAVINCI_I2C_MDR_REG);
>> - MOD_REG_BIT(w, DAVINCI_I2C_MDR_IRS, 0);
>> + w &= ~DAVINCI_I2C_MDR_IRS;
>> davinci_i2c_write_reg(dev, DAVINCI_I2C_MDR_REG, w);
>>
>> /* NOTE: I2C Clock divider programming info
>> @@ -205,7 +196,7 @@ static int i2c_davinci_init(struct davinci_i2c_dev *dev)
>>
>> /* Take the I2C module out of reset: */
>> w = davinci_i2c_read_reg(dev, DAVINCI_I2C_MDR_REG);
>> - MOD_REG_BIT(w, DAVINCI_I2C_MDR_IRS, 1);
>> + w |= DAVINCI_I2C_MDR_IRS;
>> davinci_i2c_write_reg(dev, DAVINCI_I2C_MDR_REG, w);
>>
>> /* Enable interrupts */
>> @@ -287,9 +278,9 @@ i2c_davinci_xfer_msg(struct i2c_adapter *adap, struct i2c_msg *msg, int stop)
>> /* Enable receive or transmit interrupts */
>> w = davinci_i2c_read_reg(dev, DAVINCI_I2C_IMR_REG);
>> if (msg->flags & I2C_M_RD)
>> - MOD_REG_BIT(w, DAVINCI_I2C_IMR_RRDY, 1);
>> + w |= DAVINCI_I2C_IMR_RRDY;
>> else
>> - MOD_REG_BIT(w, DAVINCI_I2C_IMR_XRDY, 1);
>> + w |= DAVINCI_I2C_IMR_XRDY;
>> davinci_i2c_write_reg(dev, DAVINCI_I2C_IMR_REG, w);
>>
>> dev->terminate = 0;
>> @@ -346,7 +337,7 @@ i2c_davinci_xfer_msg(struct i2c_adapter *adap, struct i2c_msg *msg, int stop)
>> return msg->len;
>> if (stop) {
>> w = davinci_i2c_read_reg(dev, DAVINCI_I2C_MDR_REG);
>> - MOD_REG_BIT(w, DAVINCI_I2C_MDR_STP, 1);
>> + w |= DAVINCI_I2C_MDR_STP;
>> davinci_i2c_write_reg(dev, DAVINCI_I2C_MDR_REG, w);
>> }
>> return -EREMOTEIO;
>> @@ -482,7 +473,7 @@ static irqreturn_t i2c_davinci_isr(int this_irq, void *dev_id)
>>
>> w = davinci_i2c_read_reg(dev,
>> DAVINCI_I2C_IMR_REG);
>> - MOD_REG_BIT(w, DAVINCI_I2C_IMR_XRDY, 0);
>> + w &= ~DAVINCI_I2C_IMR_XRDY;
>> davinci_i2c_write_reg(dev,
>> DAVINCI_I2C_IMR_REG,
>> w);
>> @@ -561,7 +552,12 @@ static int davinci_i2c_probe(struct platform_device *pdev)
>> }
>> clk_enable(dev->clk);
>>
>> - dev->base = (void __iomem *)IO_ADDRESS(mem->start);
>> + dev->base = ioremap(mem->start, resource_size(mem));
>> + if (!dev->base) {
>> + r = -EBUSY;
>> + goto err_mem_ioremap;
>> + }
>> +
>
> this looks like you've got >1 change per patch?
>
>> i2c_davinci_init(dev);
>>
>> r = request_irq(dev->irq, i2c_davinci_isr, 0, pdev->name, dev);
>> @@ -591,6 +587,8 @@ static int davinci_i2c_probe(struct platform_device *pdev)
>> err_free_irq:
>> free_irq(dev->irq, dev);
>> err_unuse_clocks:
>> + iounmap(dev->base);
>> +err_mem_ioremap:
>> clk_disable(dev->clk);
>> clk_put(dev->clk);
>> dev->clk = NULL;
>> @@ -619,6 +617,7 @@ static int davinci_i2c_remove(struct platform_device *pdev)
>>
>> davinci_i2c_write_reg(dev, DAVINCI_I2C_MDR_REG, 0);
>> free_irq(IRQ_I2C, dev);
>> + iounmap(dev->base);
>> kfree(dev);
>>
>> mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
>> --
>> 1.6.6
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-i2c" in
>> the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
> --
> Ben (ben-elnMNo+KYs3YtjvyW6yDsg@public.gmane.org, http://www.fluff.org/)
>
> 'a smiley only costs 4 bytes'
next prev parent reply other threads:[~2010-01-29 19:46 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-01-26 23:41 [PATCH 0/6] davinci i2c updates for 2.6.34 Kevin Hilman
[not found] ` <1264549293-25556-1-git-send-email-khilman-1D3HCaltpLuhEniVeURVKkEOCMrvLtNR@public.gmane.org>
2010-01-26 23:41 ` [PATCH 1/6] i2c: davinci: Fix smbus Oops with AIC33 usage Kevin Hilman
[not found] ` <026601ca9f54$17a18110$46e48330$@raj@ti.com>
[not found] ` <026601ca9f54$17a18110$46e48330$@raj-l0cyMroinI0@public.gmane.org>
2010-01-27 14:50 ` Kevin Hilman
[not found] ` <87k4v3y53z.fsf-1D3HCaltpLuhEniVeURVKkEOCMrvLtNR@public.gmane.org>
2010-01-28 4:05 ` Sudhakar Rajashekhara
2010-01-28 8:46 ` Sudhakar Rajashekhara
[not found] ` <02ee01ca9ff6$53cf0d90$fb6d28b0$@raj@ti.com>
[not found] ` <02ee01ca9ff6$53cf0d90$fb6d28b0$@raj-l0cyMroinI0@public.gmane.org>
2010-01-28 14:45 ` Kevin Hilman
[not found] ` <1264549293-25556-2-git-send-email-khilman-1D3HCaltpLuhEniVeURVKkEOCMrvLtNR@public.gmane.org>
2010-01-27 13:24 ` Sudhakar Rajashekhara
2010-01-27 15:03 ` Ben Dooks
2010-01-26 23:41 ` [PATCH 2/6] i2c: davinci: Remove MOD_REG_BIT and IO_ADDRESS usage Kevin Hilman
[not found] ` <1264549293-25556-3-git-send-email-khilman-1D3HCaltpLuhEniVeURVKkEOCMrvLtNR@public.gmane.org>
2010-01-27 15:05 ` Ben Dooks
[not found] ` <20100127150518.GB6090-elnMNo+KYs3pIgCt6eIbzw@public.gmane.org>
2010-01-29 19:46 ` Kevin Hilman [this message]
2010-01-26 23:41 ` [PATCH 3/6] i2c: davinci: Add helper functions Kevin Hilman
2010-01-26 23:41 ` [PATCH 4/6] i2c: davinci: Add suspend/resume support Kevin Hilman
2010-01-26 23:41 ` [PATCH 5/6] i2c: davinci: Add cpufreq support Kevin Hilman
2010-01-26 23:41 ` [PATCH 6/6] i2c: davinci: bus recovery procedure to clear the bus Kevin Hilman
[not found] ` <1264549293-25556-7-git-send-email-khilman-1D3HCaltpLuhEniVeURVKkEOCMrvLtNR@public.gmane.org>
2010-02-01 5:57 ` Nori, Sekhar
[not found] ` <B85A65D85D7EB246BE421B3FB0FBB59301E235A3C2-/tLxBxkBPtCIQmiDNMet8wC/G2K4zDHf@public.gmane.org>
2010-02-01 19:40 ` Kevin Hilman
2010-02-05 13:53 ` Philby John
[not found] ` <225d086e1002050553tc1a696avce827cc115f56b1c-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-02-08 10:35 ` Nori, Sekhar
[not found] ` <B85A65D85D7EB246BE421B3FB0FBB59301E2639AD8-/tLxBxkBPtCIQmiDNMet8wC/G2K4zDHf@public.gmane.org>
2010-02-08 10:50 ` Philby John
2010-02-08 15:13 ` Philby John
[not found] ` <4B702A17.3070104-Igf4POYTYCDQT0dZR+AlfA@public.gmane.org>
2010-02-08 16:03 ` Nori, Sekhar
[not found] ` <B85A65D85D7EB246BE421B3FB0FBB59301E2639D67-/tLxBxkBPtCIQmiDNMet8wC/G2K4zDHf@public.gmane.org>
2010-02-09 10:15 ` Philby John
[not found] ` <4B7135B3.9080104-Igf4POYTYCDQT0dZR+AlfA@public.gmane.org>
2010-02-09 10:52 ` Nori, Sekhar
[not found] ` <B85A65D85D7EB246BE421B3FB0FBB59301E263A447-/tLxBxkBPtCIQmiDNMet8wC/G2K4zDHf@public.gmane.org>
2010-03-05 15:20 ` Griffis, Brad
[not found] ` <F8C55F6A02E92D48BDDFC6048552C6F14E6D9F3F-lTKHBJngVwKIQmiDNMet8wC/G2K4zDHf@public.gmane.org>
2010-03-08 13:37 ` Philby John
[not found] ` <4B94FD84.3060100-Igf4POYTYCDQT0dZR+AlfA@public.gmane.org>
2010-03-11 16:28 ` Griffis, Brad
2010-03-08 13:36 ` Philby John
[not found] ` <4B94FD6F.7050603-Igf4POYTYCDQT0dZR+AlfA@public.gmane.org>
2010-03-16 20:50 ` Kevin Hilman
[not found] ` <87d3z4xa7m.fsf-1D3HCaltpLuhEniVeURVKkEOCMrvLtNR@public.gmane.org>
2010-03-17 11:28 ` Philby John
[not found] ` <4BA0BCEC.8040209-Igf4POYTYCDQT0dZR+AlfA@public.gmane.org>
2010-03-17 13:18 ` Nori, Sekhar
[not found] ` <B85A65D85D7EB246BE421B3FB0FBB59301E6328944-/tLxBxkBPtCIQmiDNMet8wC/G2K4zDHf@public.gmane.org>
2010-03-17 13:46 ` Philby John
2010-09-13 14:23 ` Pablo Bitton
[not found] ` <AANLkTimqT=xgoxycjFAwEr6LPTeK21-FB1F-7kP5baPE-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-09-27 12:40 ` Philby John
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87ockcpud8.fsf@deeprootsystems.com \
--to=khilman-1d3hcaltpluheniveurvkkeocmrvltnr@public.gmane.org \
--cc=ben-linux-elnMNo+KYs3YtjvyW6yDsg@public.gmane.org \
--cc=chaithrika-l0cyMroinI0@public.gmane.org \
--cc=davinci-linux-open-source-VycZQUHpC/PFrsHnngEfi1aTQe2KTcn/@public.gmane.org \
--cc=linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.