Lines Matching full:pmc

15 #include <linux/platform_data/x86/clk-pmc-atom.h>
206 static inline u32 pmc_reg_read(struct pmc_dev *pmc, int reg_offset) in pmc_reg_read() argument
208 return readl(pmc->regmap + reg_offset); in pmc_reg_read()
211 static inline void pmc_reg_write(struct pmc_dev *pmc, int reg_offset, u32 val) in pmc_reg_write() argument
213 writel(val, pmc->regmap + reg_offset); in pmc_reg_write()
218 struct pmc_dev *pmc = &pmc_device; in pmc_atom_read() local
220 if (!pmc->init) in pmc_atom_read()
223 *value = pmc_reg_read(pmc, offset); in pmc_atom_read()
244 static void pmc_hw_reg_setup(struct pmc_dev *pmc) in pmc_hw_reg_setup() argument
247 * Disable PMC S0IX_WAKE_EN events coming from: in pmc_hw_reg_setup()
254 pmc_reg_write(pmc, PMC_S0IX_WAKE_EN, (u32)PMC_WAKE_EN_SETTING); in pmc_hw_reg_setup()
275 struct pmc_dev *pmc = s->private; in pmc_dev_state_show() local
276 const struct pmc_reg_map *m = pmc->map; in pmc_dev_state_show()
280 func_dis = pmc_reg_read(pmc, PMC_FUNC_DIS); in pmc_dev_state_show()
281 func_dis_2 = pmc_reg_read(pmc, PMC_FUNC_DIS_2); in pmc_dev_state_show()
282 d3_sts_0 = pmc_reg_read(pmc, PMC_D3_STS_0); in pmc_dev_state_show()
283 d3_sts_1 = pmc_reg_read(pmc, PMC_D3_STS_1); in pmc_dev_state_show()
298 struct pmc_dev *pmc = s->private; in pmc_pss_state_show() local
299 const struct pmc_bit_map *map = pmc->map->pss; in pmc_pss_state_show()
300 u32 pss = pmc_reg_read(pmc, PMC_PSS); in pmc_pss_state_show()
315 struct pmc_dev *pmc = s->private; in pmc_sleep_tmr_show() local
318 s0ir_tmr = (u64)pmc_reg_read(pmc, PMC_S0IR_TMR) << PMC_TMR_SHIFT; in pmc_sleep_tmr_show()
319 s0i1_tmr = (u64)pmc_reg_read(pmc, PMC_S0I1_TMR) << PMC_TMR_SHIFT; in pmc_sleep_tmr_show()
320 s0i2_tmr = (u64)pmc_reg_read(pmc, PMC_S0I2_TMR) << PMC_TMR_SHIFT; in pmc_sleep_tmr_show()
321 s0i3_tmr = (u64)pmc_reg_read(pmc, PMC_S0I3_TMR) << PMC_TMR_SHIFT; in pmc_sleep_tmr_show()
322 s0_tmr = (u64)pmc_reg_read(pmc, PMC_S0_TMR) << PMC_TMR_SHIFT; in pmc_sleep_tmr_show()
334 static void pmc_dbgfs_register(struct pmc_dev *pmc) in pmc_dbgfs_register() argument
340 pmc->dbgfs_dir = dir; in pmc_dbgfs_register()
342 debugfs_create_file("dev_state", S_IFREG | S_IRUGO, dir, pmc, in pmc_dbgfs_register()
344 debugfs_create_file("pss_state", S_IFREG | S_IRUGO, dir, pmc, in pmc_dbgfs_register()
346 debugfs_create_file("sleep_state", S_IFREG | S_IRUGO, dir, pmc, in pmc_dbgfs_register()
350 static void pmc_dbgfs_register(struct pmc_dev *pmc) in pmc_dbgfs_register() argument
359 pr_info("%s: PMC critical clocks quirk enabled\n", d->ident); in dmi_callback()
440 clkdev = platform_device_register_data(&pdev->dev, "clk-pmc-atom", in pmc_setup_clks()
475 struct pmc_dev *pmc = &pmc_device; in pmc_s2idle_check() local
476 const struct pmc_reg_map *m = pmc->map; in pmc_s2idle_check()
482 func_dis = pmc_reg_read(pmc, PMC_FUNC_DIS); in pmc_s2idle_check()
483 func_dis_2 = pmc_reg_read(pmc, PMC_FUNC_DIS_2); in pmc_s2idle_check()
484 d3_sts_0 = pmc_reg_read(pmc, PMC_D3_STS_0); in pmc_s2idle_check()
485 d3_sts_1 = pmc_reg_read(pmc, PMC_D3_STS_1); in pmc_s2idle_check()
506 /* Forced-on PMC clocks prevent S0i3 */ in pmc_s2idle_check()
508 u32 ctl = pmc_reg_read(pmc, PMC_CLK_CTL_OFFSET + 4 * i); in pmc_s2idle_check()
531 struct pmc_dev *pmc = &pmc_device; in pmc_setup_dev() local
544 pci_read_config_dword(pdev, PMC_BASE_ADDR_OFFSET, &pmc->base_addr); in pmc_setup_dev()
545 pmc->base_addr &= PMC_BASE_ADDR_MASK; in pmc_setup_dev()
547 pmc->regmap = ioremap(pmc->base_addr, PMC_MMIO_REG_LEN); in pmc_setup_dev()
548 if (!pmc->regmap) { in pmc_setup_dev()
553 pmc->map = map; in pmc_setup_dev()
555 /* PMC hardware registers setup */ in pmc_setup_dev()
556 pmc_hw_reg_setup(pmc); in pmc_setup_dev()
558 pmc_dbgfs_register(pmc); in pmc_setup_dev()
561 ret = pmc_setup_clks(pdev, pmc->regmap, data); in pmc_setup_dev()
567 pmc->init = true; in pmc_setup_dev()
584 * We look for our device - PCU PMC. in pmc_atom_init()