static void tegra_pinmux_resume(void)
{
	unsigned int i;
	u32 *ctx = pinmux_reg;

	for (i = 0; i < TEGRA_MAX_PINGROUP; i++)
		pg_writel(*ctx++, tegra_soc_pingroups[i].mux_reg);

	for (i = 0; i < ARRAY_SIZE(tegra_soc_drive_pingroups); i ++)
		pg_writel(*ctx++, tegra_soc_drive_pingroups[i].reg);
}
예제 #2
0
void tegra_pinmux_resume(void)
{
	unsigned int i;
	u32 *ctx = pinmux_reg;

	for (i = 0; i < PIN_MUX_CTL_REG_NUM; i++)
		pg_writel(*ctx++, PIN_MUX_CTL_REG_A + i*4);

	for (i = 0; i < PULLUPDOWN_REG_NUM; i++)
		pg_writel(*ctx++, PULLUPDOWN_REG_A + i*4);

	for (i = 0; i < TRISTATE_REG_NUM; i++)
		pg_writel(*ctx++, TRISTATE_REG_A + i*4);
}
예제 #3
0
void tegra_pinmux_resume(void)
{
	unsigned int i;
	u32 *ctx = pinmux_reg;

	for (i = 0; i < PIN_MUX_CTL_REG_NUM; i++)
		pg_writel(*ctx++, PIN_MUX_CTL_REG_A + i*4);

	for (i = 0; i < PULLUPDOWN_REG_NUM; i++)
		pg_writel(*ctx++, PULLUPDOWN_REG_A + i*4);

	for (i = 0; i < TRISTATE_REG_NUM; i++)
		pg_writel(*ctx++, TRISTATE_REG_A + i*4);

	for (i = 0; i < ARRAY_SIZE(tegra_soc_drive_pingroups); i++)
		pg_writel(*ctx++, tegra_soc_drive_pingroups[i].reg);
}
예제 #4
0
/* Call back function, invoked by driver */
static void ltemp_dependent_reg_update(int curr_ltemp)
{
	int i, j;
	for (i = 0; lc_temp_reg_data[i].reg_addr != INVALID_ADDR; i++) {
		for (j = 0; ((j < MAX_NUM_TEMPERAT) &&
			(lc_temp_reg_data[i].temperat[j] != INT_MAX)); j++) {
			if (curr_ltemp <= lc_temp_reg_data[i].temperat[j]) {
				if (lc_temp_reg_data[i].previous_val !=
						lc_temp_reg_data[i].value[j]) {
					pg_writel(lc_temp_reg_data[i].value[j],
						lc_temp_reg_data[i].reg_addr);
					lc_temp_reg_data[i].previous_val =
						lc_temp_reg_data[i].value[j];
				}
				break;
			}
		}
	}
}