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;
}
Exemple #2
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;
}