static int __init s5p64x0_gpiolib_init(void) { s5p64x0_gpiolib_set_cfg(s5p64x0_gpio_cfgs, ARRAY_SIZE(s5p64x0_gpio_cfgs)); if (soc_is_s5p6450()) { samsung_gpiolib_add_2bit_chips(s5p6450_gpio_2bit, ARRAY_SIZE(s5p6450_gpio_2bit)); samsung_gpiolib_add_4bit_chips(s5p6450_gpio_4bit, ARRAY_SIZE(s5p6450_gpio_4bit)); samsung_gpiolib_add_4bit2_chips(s5p6450_gpio_4bit2, ARRAY_SIZE(s5p6450_gpio_4bit2)); s5p64x0_gpio_add_rbank_4bit2(s5p6450_gpio_rbank_4bit2, ARRAY_SIZE(s5p6450_gpio_rbank_4bit2)); } else { samsung_gpiolib_add_2bit_chips(s5p6440_gpio_2bit, ARRAY_SIZE(s5p6440_gpio_2bit)); samsung_gpiolib_add_4bit_chips(s5p6440_gpio_4bit, ARRAY_SIZE(s5p6440_gpio_4bit)); samsung_gpiolib_add_4bit2_chips(s5p6440_gpio_4bit2, ARRAY_SIZE(s5p6440_gpio_4bit2)); s5p64x0_gpio_add_rbank_4bit2(s5p6440_gpio_rbank_4bit2, ARRAY_SIZE(s5p6440_gpio_rbank_4bit2)); } return 0; }
static int __init s5p64x0_gpiolib_init(void) { unsigned int chipid; chipid = __raw_readl(S5P64X0_SYS_ID); s5p64x0_gpiolib_set_cfg(s5p64x0_gpio_cfgs, ARRAY_SIZE(s5p64x0_gpio_cfgs)); if ((chipid & 0xff000) == 0x50000) { samsung_gpiolib_add_2bit_chips(s5p6450_gpio_2bit, ARRAY_SIZE(s5p6450_gpio_2bit)); samsung_gpiolib_add_4bit_chips(s5p6450_gpio_4bit, ARRAY_SIZE(s5p6450_gpio_4bit)); samsung_gpiolib_add_4bit2_chips(s5p6450_gpio_4bit2, ARRAY_SIZE(s5p6450_gpio_4bit2)); s5p64x0_gpio_add_rbank_4bit2(s5p6450_gpio_rbank_4bit2, ARRAY_SIZE(s5p6450_gpio_rbank_4bit2)); } else { samsung_gpiolib_add_2bit_chips(s5p6440_gpio_2bit, ARRAY_SIZE(s5p6440_gpio_2bit)); samsung_gpiolib_add_4bit_chips(s5p6440_gpio_4bit, ARRAY_SIZE(s5p6440_gpio_4bit)); samsung_gpiolib_add_4bit2_chips(s5p6440_gpio_4bit2, ARRAY_SIZE(s5p6440_gpio_4bit2)); s5p64x0_gpio_add_rbank_4bit2(s5p6440_gpio_rbank_4bit2, ARRAY_SIZE(s5p6440_gpio_rbank_4bit2)); } return 0; }