aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/i2c/busses/i2c-pxa.c
diff options
context:
space:
mode:
authorEric Miao <eric.y.miao@gmail.com>2007-04-04 23:07:20 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2007-04-21 18:14:01 -0400
commit7053acbd78336abf5d4bc3d8a875a03624cfb83f (patch)
tree76dff22217a91d40c1d44292c0454d31cad55f15 /drivers/i2c/busses/i2c-pxa.c
parenta79220b7633b3926a9bd3527bdac3f04dbe6845c (diff)
[ARM] 4304/1: removes the unnecessary bit number from CKENnn_XXXX
This patch removes the unnecessary bit number from CKENnn_XXXX definitions for PXA, so that CKEN0_PWM0 --> CKEN_PWM0 CKEN1_PWM1 --> CKEN_PWM1 ... CKEN24_CAMERA --> CKEN_CAMERA The reasons for the change of these defitions are: 1. they do not scale - they are currently valid for pxa2xx, but definitely not valid for pxa3xx, e.g., pxa3xx has bit 3 for camera instead of bit 24 2. they are unnecessary - the peripheral name within the definition has already announced its usage, we don't need those bit numbers to know which peripheral we are going to enable/disable clock for 3. they are inconvenient - think about this: a driver programmer for pxa has to remember which bit in the CKEN register to turn on/off Another change in the patch is to make the definitions equal to its clock bit index, so that #define CKEN_CAMERA (24) instead of #define CKEN_CAMERA (1 << 24) this change, however, will add a run-time bit shift operation in pxa_set_cken(), but the benefit of this change is that it scales when bit index exceeds 32, e.g., pxa3xx has two registers CKENA and CKENB, totally 64 bit for this, suppose CAMERA clock enabling bit is CKENB:10, one can simply define CKEN_CAMERA to be (32 + 10) and so that pxa_set_cken() need minimum change to adapt to that. Signed-off-by: eric miao <eric.y.miao@gmail.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'drivers/i2c/busses/i2c-pxa.c')
-rw-r--r--drivers/i2c/busses/i2c-pxa.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/i2c/busses/i2c-pxa.c b/drivers/i2c/busses/i2c-pxa.c
index 11c7477a0ffa..4443d3bb3fbf 100644
--- a/drivers/i2c/busses/i2c-pxa.c
+++ b/drivers/i2c/busses/i2c-pxa.c
@@ -887,14 +887,14 @@ static int i2c_pxa_probe(struct platform_device *dev)
887 pxa_gpio_mode(GPIO117_I2CSCL_MD); 887 pxa_gpio_mode(GPIO117_I2CSCL_MD);
888 pxa_gpio_mode(GPIO118_I2CSDA_MD); 888 pxa_gpio_mode(GPIO118_I2CSDA_MD);
889#endif 889#endif
890 pxa_set_cken(CKEN14_I2C, 1); 890 pxa_set_cken(CKEN_I2C, 1);
891 break; 891 break;
892#ifdef CONFIG_PXA27x 892#ifdef CONFIG_PXA27x
893 case 1: 893 case 1:
894 local_irq_disable(); 894 local_irq_disable();
895 PCFR |= PCFR_PI2CEN; 895 PCFR |= PCFR_PI2CEN;
896 local_irq_enable(); 896 local_irq_enable();
897 pxa_set_cken(CKEN15_PWRI2C, 1); 897 pxa_set_cken(CKEN_PWRI2C, 1);
898#endif 898#endif
899 } 899 }
900 900
@@ -935,11 +935,11 @@ eadapt:
935ereqirq: 935ereqirq:
936 switch (dev->id) { 936 switch (dev->id) {
937 case 0: 937 case 0:
938 pxa_set_cken(CKEN14_I2C, 0); 938 pxa_set_cken(CKEN_I2C, 0);
939 break; 939 break;
940#ifdef CONFIG_PXA27x 940#ifdef CONFIG_PXA27x
941 case 1: 941 case 1:
942 pxa_set_cken(CKEN15_PWRI2C, 0); 942 pxa_set_cken(CKEN_PWRI2C, 0);
943 local_irq_disable(); 943 local_irq_disable();
944 PCFR &= ~PCFR_PI2CEN; 944 PCFR &= ~PCFR_PI2CEN;
945 local_irq_enable(); 945 local_irq_enable();
@@ -962,11 +962,11 @@ static int i2c_pxa_remove(struct platform_device *dev)
962 free_irq(i2c->irq, i2c); 962 free_irq(i2c->irq, i2c);
963 switch (dev->id) { 963 switch (dev->id) {
964 case 0: 964 case 0:
965 pxa_set_cken(CKEN14_I2C, 0); 965 pxa_set_cken(CKEN_I2C, 0);
966 break; 966 break;
967#ifdef CONFIG_PXA27x 967#ifdef CONFIG_PXA27x
968 case 1: 968 case 1:
969 pxa_set_cken(CKEN15_PWRI2C, 0); 969 pxa_set_cken(CKEN_PWRI2C, 0);
970 local_irq_disable(); 970 local_irq_disable();
971 PCFR &= ~PCFR_PI2CEN; 971 PCFR &= ~PCFR_PI2CEN;
972 local_irq_enable(); 972 local_irq_enable();