コード例 #1
0
ファイル: c1-wimax.c プロジェクト: ClustyROM/Galaxy_Note
void wimax_on_pin_conf(int onoff)
{
	int gpio;
	if (onoff) {

		for (gpio = S5PV310_GPK3(0); gpio < S5PV310_GPK3(2); gpio++) {
			s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
			s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
		}

		for (gpio = S5PV310_GPK3(3); gpio <= S5PV310_GPK3(6); gpio++) {
			s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
			s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
		}

	} else {
		for (gpio = S5PV310_GPK3(0); gpio < S5PV310_GPK3(2); gpio++) {
			s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(0));
			s3c_gpio_setpull(gpio, S3C_GPIO_PULL_DOWN);
		}
		for (gpio = S5PV310_GPK3(3); gpio <= S5PV310_GPK3(6); gpio++) {
			s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(0));
			s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
		}

	}

}
コード例 #2
0
void s5pv310_setup_sdhci2_cfg_gpio(struct platform_device *dev, int width)
{
	unsigned int gpio;

	/* Set all the necessary GPK2[0:1] pins to special-function 2 */
	for (gpio = S5PV310_GPK2(0); gpio < S5PV310_GPK2(2); gpio++) {
		s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
		s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
	}

	switch (width) {
	case 8:
		/* Data pin GPK3[3:6] to special-function 3 */
		for (gpio = S5PV310_GPK3(3); gpio <= S5PV310_GPK3(6); gpio++) {
			s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(3));
			s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
		}
		__raw_writel(0x1555, GPK3DRV);
	case 4:
		/* Data pin GPK2[3:6] to special-function 2 */
		for (gpio = S5PV310_GPK2(3); gpio <= S5PV310_GPK2(6); gpio++) {
			s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
			s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
		}
		__raw_writel(0x1555, GPK2DRV);
		break;
	case 1:
		/* Data pin GPK2[3] to special-function 2 */
		for (gpio = S5PV310_GPK2(3); gpio < S5PV310_GPK2(4); gpio++) {
			s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
			s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
		}
		__raw_writel(0x55, GPK2DRV);
	default:

		break;
	}
}
コード例 #3
0
		},
	}, {
		.chip	= {
			.base	= S5PV310_GPK1(0),
			.ngpio	= S5PV310_GPIO_K1_NR,
			.label	= "GPK1",
		},
	}, {
		.chip	= {
			.base	= S5PV310_GPK2(0),
			.ngpio	= S5PV310_GPIO_K2_NR,
			.label	= "GPK2",
		},
	}, {
		.chip	= {
			.base	= S5PV310_GPK3(0),
			.ngpio	= S5PV310_GPIO_K3_NR,
			.label	= "GPK3",
		},
	}, {
		.chip	= {
			.base	= S5PV310_GPL0(0),
			.ngpio	= S5PV310_GPIO_L0_NR,
			.label	= "GPL0",
		},
	}, {
		.chip	= {
			.base	= S5PV310_GPL1(0),
			.ngpio	= S5PV310_GPIO_L1_NR,
			.label	= "GPL1",
		},
コード例 #4
0
void s5pv310_setup_sdhci3_cfg_gpio(struct platform_device *dev, int width)
{
	unsigned int gpio;

#if defined(CONFIG_WIMAX_CMC) && defined(CONFIG_TARGET_LOCALE_NA)

if(gpio_get_value(GPIO_WIMAX_EN))
{
	/* Set all the necessary GPK1[0:1] pins to special-function 2 */
	for (gpio = S5PV310_GPK3(0); gpio < S5PV310_GPK3(2); gpio++) {
		s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
		s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
	}

	/* Data pin GPK1[3:6] to special-function 2 */
	for (gpio = S5PV310_GPK3(3); gpio <= S5PV310_GPK3(6); gpio++) {
		s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
		s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
	}
	//__raw_writel(0x3FFF, GPK3DRV);
	__raw_writel(0x2AAA, GPK3DRV); // for sdio noise

	for (gpio = S5PV310_GPK3(0); gpio < S5PV310_GPK3(2); gpio++) {

		s3c_gpio_slp_cfgpin(gpio,S3C_GPIO_SLP_INPUT );
                s3c_gpio_slp_setpull_updown(gpio,S3C_GPIO_PULL_NONE );

	}

	for (gpio = S5PV310_GPK3(3); gpio < S5PV310_GPK3(6); gpio++) {

                s3c_gpio_slp_cfgpin(gpio,S3C_GPIO_SLP_INPUT );
                s3c_gpio_slp_setpull_updown(gpio,S3C_GPIO_PULL_NONE );

        }


}
else
{
	  /* Set all the necessary GPK1[0:1] to Input pull down for power saving */
        for (gpio = S5PV310_GPK3(0); gpio < S5PV310_GPK3(2); gpio++) {
                s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(0));
                s3c_gpio_setpull(gpio, S3C_GPIO_PULL_DOWN);
        }

        /* Data pin GPK1[3:6] to Input pull down for power saving */
        for (gpio = S5PV310_GPK3(3); gpio <= S5PV310_GPK3(6); gpio++) {
                s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(0));
                s3c_gpio_setpull(gpio, S3C_GPIO_PULL_DOWN);
        }


	for (gpio = S5PV310_GPK3(0); gpio < S5PV310_GPK3(2); gpio++) {

                s3c_gpio_slp_cfgpin(gpio,S3C_GPIO_SLP_INPUT );
                s3c_gpio_slp_setpull_updown(gpio,S3C_GPIO_PULL_DOWN );

        }

        for (gpio = S5PV310_GPK3(3); gpio < S5PV310_GPK3(6); gpio++) {

                s3c_gpio_slp_cfgpin(gpio,S3C_GPIO_SLP_INPUT );
                s3c_gpio_slp_setpull_updown(gpio,S3C_GPIO_PULL_DOWN );

        }




}

#else

	/* Set all the necessary GPK1[0:1] pins to special-function 2 */
	for (gpio = S5PV310_GPK3(0); gpio < S5PV310_GPK3(2); gpio++) {
		s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
		s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
	}

	/* Data pin GPK1[3:6] to special-function 2 */
	for (gpio = S5PV310_GPK3(3); gpio <= S5PV310_GPK3(6); gpio++) {
		s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
		s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
	}
	//__raw_writel(0x3FFF, GPK3DRV);
	__raw_writel(0x2AAA, GPK3DRV); // for sdio noise

#endif

}