Lines Matching refs:pmc
211 static inline u32 pmc_reg_read(struct pmc_dev *pmc, int reg_offset) in pmc_reg_read() argument
213 return readl(pmc->regmap + reg_offset); in pmc_reg_read()
216 static inline void pmc_reg_write(struct pmc_dev *pmc, int reg_offset, u32 val) in pmc_reg_write() argument
218 writel(val, pmc->regmap + reg_offset); in pmc_reg_write()
223 struct pmc_dev *pmc = &pmc_device; in pmc_atom_read() local
225 if (!pmc->init) in pmc_atom_read()
228 *value = pmc_reg_read(pmc, offset); in pmc_atom_read()
235 struct pmc_dev *pmc = &pmc_device; in pmc_atom_write() local
237 if (!pmc->init) in pmc_atom_write()
240 pmc_reg_write(pmc, offset, value); in pmc_atom_write()
262 static void pmc_hw_reg_setup(struct pmc_dev *pmc) in pmc_hw_reg_setup() argument
272 pmc_reg_write(pmc, PMC_S0IX_WAKE_EN, (u32)PMC_WAKE_EN_SETTING); in pmc_hw_reg_setup()
293 struct pmc_dev *pmc = s->private; in pmc_dev_state_show() local
294 const struct pmc_reg_map *m = pmc->map; in pmc_dev_state_show()
298 func_dis = pmc_reg_read(pmc, PMC_FUNC_DIS); in pmc_dev_state_show()
299 func_dis_2 = pmc_reg_read(pmc, PMC_FUNC_DIS_2); in pmc_dev_state_show()
300 d3_sts_0 = pmc_reg_read(pmc, PMC_D3_STS_0); in pmc_dev_state_show()
301 d3_sts_1 = pmc_reg_read(pmc, PMC_D3_STS_1); in pmc_dev_state_show()
316 struct pmc_dev *pmc = s->private; in pmc_pss_state_show() local
317 const struct pmc_bit_map *map = pmc->map->pss; in pmc_pss_state_show()
318 u32 pss = pmc_reg_read(pmc, PMC_PSS); in pmc_pss_state_show()
333 struct pmc_dev *pmc = s->private; in pmc_sleep_tmr_show() local
336 s0ir_tmr = (u64)pmc_reg_read(pmc, PMC_S0IR_TMR) << PMC_TMR_SHIFT; in pmc_sleep_tmr_show()
337 s0i1_tmr = (u64)pmc_reg_read(pmc, PMC_S0I1_TMR) << PMC_TMR_SHIFT; in pmc_sleep_tmr_show()
338 s0i2_tmr = (u64)pmc_reg_read(pmc, PMC_S0I2_TMR) << PMC_TMR_SHIFT; in pmc_sleep_tmr_show()
339 s0i3_tmr = (u64)pmc_reg_read(pmc, PMC_S0I3_TMR) << PMC_TMR_SHIFT; in pmc_sleep_tmr_show()
340 s0_tmr = (u64)pmc_reg_read(pmc, PMC_S0_TMR) << PMC_TMR_SHIFT; in pmc_sleep_tmr_show()
352 static void pmc_dbgfs_unregister(struct pmc_dev *pmc) in pmc_dbgfs_unregister() argument
354 debugfs_remove_recursive(pmc->dbgfs_dir); in pmc_dbgfs_unregister()
357 static int pmc_dbgfs_register(struct pmc_dev *pmc) in pmc_dbgfs_register() argument
365 pmc->dbgfs_dir = dir; in pmc_dbgfs_register()
368 dir, pmc, &pmc_dev_state_fops); in pmc_dbgfs_register()
373 dir, pmc, &pmc_pss_state_fops); in pmc_dbgfs_register()
378 dir, pmc, &pmc_sleep_tmr_fops); in pmc_dbgfs_register()
384 pmc_dbgfs_unregister(pmc); in pmc_dbgfs_register()
388 static int pmc_dbgfs_register(struct pmc_dev *pmc) in pmc_dbgfs_register() argument
422 struct pmc_dev *pmc = &pmc_device; in pmc_setup_dev() local
435 pci_read_config_dword(pdev, PMC_BASE_ADDR_OFFSET, &pmc->base_addr); in pmc_setup_dev()
436 pmc->base_addr &= PMC_BASE_ADDR_MASK; in pmc_setup_dev()
438 pmc->regmap = ioremap_nocache(pmc->base_addr, PMC_MMIO_REG_LEN); in pmc_setup_dev()
439 if (!pmc->regmap) { in pmc_setup_dev()
444 pmc->map = map; in pmc_setup_dev()
447 pmc_hw_reg_setup(pmc); in pmc_setup_dev()
449 ret = pmc_dbgfs_register(pmc); in pmc_setup_dev()
454 ret = pmc_setup_clks(pdev, pmc->regmap, data); in pmc_setup_dev()
459 pmc->init = true; in pmc_setup_dev()