On Fri, Aug 23, 2024 at 11:43:11AM +0800, Ye Zhang wrote: > The next version gpio controller on SoCs like rk3576 which support four > OS operation and four interrupts ... > #define GPIO_TYPE_V2 (0x01000C2B) /* GPIO Version ID 0x01000C2B */ > #define GPIO_TYPE_V2_1 (0x0101157C) /* GPIO Version ID 0x0101157C */ > +#define GPIO_TYPE_V2_2 (0x010219C8) /* GPIO Version ID 0x010219C8 */ These needs a bit of decoding. As far as I can decipher these it's something like 0x01 00 00 00 ??? 0x00 xx 00 00 // seems like a subversion, 2.xx 0x00 00 xx xx // seems like a release which is 3115 5500 6600 in decimal representation. But again, can you make the comments better explaining these cryptic 4-byte values? With that done it might be better approach to check the version of the IP. ... > + switch (id) { > + case GPIO_TYPE_V2: > + case GPIO_TYPE_V2_1: > bank->gpio_regs = &gpio_regs_v2; > bank->gpio_type = GPIO_TYPE_V2; > - } else { > + break; > + case GPIO_TYPE_V2_2: > + bank->gpio_regs = &gpio_regs_v2; > + bank->gpio_type = GPIO_TYPE_V2_2; > + break; > + default: > bank->gpio_regs = &gpio_regs_v1; > bank->gpio_type = GPIO_TYPE_V1; > + pr_info("Note: Use default GPIO_TYPE_V1!\n"); Missed break; > } -- With Best Regards, Andy Shevchenko