Skip to content

Commit 4550bbe

Browse files
committed
T113S: gpio bank step is not 0x24 on T113S
1 parent b7bc750 commit 4550bbe

1 file changed

Lines changed: 7 additions & 5 deletions

File tree

fel-spiflash.c

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -122,17 +122,19 @@ void fel_writel(feldev_handle *dev, uint32_t addr, uint32_t val);
122122
#define CCM_SPI0_CLK_DIV_BY_6 (0x1002)
123123
#define CCM_SPI0_CLK_DIV_BY_32 (0x100f)
124124

125-
static uint32_t gpio_base(feldev_handle *dev)
125+
static uint32_t gpio_base(feldev_handle *dev, int port_num)
126126
{
127127
soc_info_t *soc_info = dev->soc_info;
128128
switch (soc_info->soc_id) {
129129
case 0x1816: /* V536 */
130130
case 0x1817: /* V831 */
131131
case 0x1728: /* H6 */
132132
case 0x1823: /* H616 */
133-
return 0x0300B000;
133+
return 0x0300B000 + port_num * 0x24;
134+
case 0x1859: /* D1/D1s/R528/T113-S3 */
135+
return 0x02000000 + port_num * 0x30;
134136
default:
135-
return 0x01C20800;
137+
return 0x01C20800 + port_num * 0x24;
136138
}
137139
}
138140

@@ -174,11 +176,11 @@ static uint32_t ccm_base(feldev_handle *dev)
174176
static void gpio_set_cfgpin(feldev_handle *dev, int port_num, int pin_num,
175177
int val)
176178
{
177-
uint32_t port_base = gpio_base(dev) + port_num * 0x24;
179+
uint32_t port_base = gpio_base(dev, port_num);
178180
uint32_t cfg_reg = port_base + 4 * (pin_num / 8);
179181
uint32_t pin_idx = pin_num % 8;
180182
uint32_t x = readl(cfg_reg);
181-
x &= ~(0x7 << (pin_idx * 4));
183+
x &= ~(0xf << (pin_idx * 4));
182184
x |= val << (pin_idx * 4);
183185
writel(x, cfg_reg);
184186
}

0 commit comments

Comments
 (0)