void board_save_misc_power(void) { int i; /* disable USB clock */ pmc_disable_upll_clock(); pmc_disable_upll_bias(); /* disable system clocks */ pmc_disable_system_clock(PMC_SYSTEM_CLOCK_DDR); pmc_disable_system_clock(PMC_SYSTEM_CLOCK_LCD); pmc_disable_system_clock(PMC_SYSTEM_CLOCK_SMD); pmc_disable_system_clock(PMC_SYSTEM_CLOCK_UHP); pmc_disable_system_clock(PMC_SYSTEM_CLOCK_UDP); pmc_disable_system_clock(PMC_SYSTEM_CLOCK_PCK0); pmc_disable_system_clock(PMC_SYSTEM_CLOCK_PCK1); pmc_disable_system_clock(PMC_SYSTEM_CLOCK_PCK2); pmc_disable_system_clock(PMC_SYSTEM_CLOCK_ISC); /* disable all peripheral clocks except PIOA for JTAG, serial debug port */ for (i = ID_PIT; i < ID_PERIPH_COUNT; i++) { if (i == ID_PIOA) continue; pmc_disable_peripheral(i); } }
static void at91_disable_smd_clock(void) { /* * set pin DIBP to pull-up and DIBN to pull-down * to save power on VDDIOP0 */ pmc_enable_system_clock(AT91C_PMC_SMDCK); pmc_set_smd_clock_divider(AT91C_PMC_SMDDIV); pmc_enable_periph_clock(AT91C_ID_SMD); writel(0xF, (0x0C + AT91C_BASE_SMD)); pmc_disable_periph_clock(AT91C_ID_SMD); pmc_disable_system_clock(AT91C_PMC_SMDCK); }