diff options
Diffstat (limited to 'drivers/reset/reset-socfpga.c')
-rw-r--r-- | drivers/reset/reset-socfpga.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/drivers/reset/reset-socfpga.c b/drivers/reset/reset-socfpga.c index c60904ff40b8..3907bbc9c6cf 100644 --- a/drivers/reset/reset-socfpga.c +++ b/drivers/reset/reset-socfpga.c | |||
@@ -40,8 +40,9 @@ static int socfpga_reset_assert(struct reset_controller_dev *rcdev, | |||
40 | struct socfpga_reset_data *data = container_of(rcdev, | 40 | struct socfpga_reset_data *data = container_of(rcdev, |
41 | struct socfpga_reset_data, | 41 | struct socfpga_reset_data, |
42 | rcdev); | 42 | rcdev); |
43 | int bank = id / BITS_PER_LONG; | 43 | int reg_width = sizeof(u32); |
44 | int offset = id % BITS_PER_LONG; | 44 | int bank = id / (reg_width * BITS_PER_BYTE); |
45 | int offset = id % (reg_width * BITS_PER_BYTE); | ||
45 | unsigned long flags; | 46 | unsigned long flags; |
46 | u32 reg; | 47 | u32 reg; |
47 | 48 | ||
@@ -61,8 +62,9 @@ static int socfpga_reset_deassert(struct reset_controller_dev *rcdev, | |||
61 | struct socfpga_reset_data, | 62 | struct socfpga_reset_data, |
62 | rcdev); | 63 | rcdev); |
63 | 64 | ||
64 | int bank = id / BITS_PER_LONG; | 65 | int reg_width = sizeof(u32); |
65 | int offset = id % BITS_PER_LONG; | 66 | int bank = id / (reg_width * BITS_PER_BYTE); |
67 | int offset = id % (reg_width * BITS_PER_BYTE); | ||
66 | unsigned long flags; | 68 | unsigned long flags; |
67 | u32 reg; | 69 | u32 reg; |
68 | 70 | ||
@@ -81,8 +83,9 @@ static int socfpga_reset_status(struct reset_controller_dev *rcdev, | |||
81 | { | 83 | { |
82 | struct socfpga_reset_data *data = container_of(rcdev, | 84 | struct socfpga_reset_data *data = container_of(rcdev, |
83 | struct socfpga_reset_data, rcdev); | 85 | struct socfpga_reset_data, rcdev); |
84 | int bank = id / BITS_PER_LONG; | 86 | int reg_width = sizeof(u32); |
85 | int offset = id % BITS_PER_LONG; | 87 | int bank = id / (reg_width * BITS_PER_BYTE); |
88 | int offset = id % (reg_width * BITS_PER_BYTE); | ||
86 | u32 reg; | 89 | u32 reg; |
87 | 90 | ||
88 | reg = readl(data->membase + (bank * BANK_INCREMENT)); | 91 | reg = readl(data->membase + (bank * BANK_INCREMENT)); |
@@ -132,7 +135,7 @@ static int socfpga_reset_probe(struct platform_device *pdev) | |||
132 | spin_lock_init(&data->lock); | 135 | spin_lock_init(&data->lock); |
133 | 136 | ||
134 | data->rcdev.owner = THIS_MODULE; | 137 | data->rcdev.owner = THIS_MODULE; |
135 | data->rcdev.nr_resets = NR_BANKS * BITS_PER_LONG; | 138 | data->rcdev.nr_resets = NR_BANKS * (sizeof(u32) * BITS_PER_BYTE); |
136 | data->rcdev.ops = &socfpga_reset_ops; | 139 | data->rcdev.ops = &socfpga_reset_ops; |
137 | data->rcdev.of_node = pdev->dev.of_node; | 140 | data->rcdev.of_node = pdev->dev.of_node; |
138 | 141 | ||