Lines Matching +full:hsic +full:- +full:state

1 // SPDX-License-Identifier: GPL-2.0-only
4 * Copyright (c) 2014-2015,2017,2022 Intel Corporation.
15 #include <linux/platform_data/x86/clk-pmc-atom.h>
17 #include <linux/platform_data/x86/simatic-ipc.h>
208 return readl(pmc->regmap + reg_offset); in pmc_reg_read()
213 writel(val, pmc->regmap + reg_offset); in pmc_reg_write()
220 if (!pmc->init) in pmc_atom_read()
221 return -ENODEV; in pmc_atom_read()
232 pr_info("Preparing to enter system sleep state S5\n"); in pmc_power_off()
248 * - LPC clock run in pmc_hw_reg_setup()
249 * - GPIO_SUS ored dedicated IRQs in pmc_hw_reg_setup()
250 * - GPIO_SCORE ored dedicated IRQs in pmc_hw_reg_setup()
251 * - GPIO_SUS shared IRQ in pmc_hw_reg_setup()
252 * - GPIO_SCORE shared IRQ in pmc_hw_reg_setup()
266 seq_printf(s, "Dev: %-2d - %-32s\tState: %s [%s]\n", in pmc_dev_state_print()
275 struct pmc_dev *pmc = s->private; in pmc_dev_state_show()
276 const struct pmc_reg_map *m = pmc->map; in pmc_dev_state_show()
286 pmc_dev_state_print(s, 0, d3_sts_0, m->d3_sts_0, func_dis, m->func_dis); in pmc_dev_state_show()
289 pmc_dev_state_print(s, 1, d3_sts_1, m->d3_sts_1, func_dis_2, m->func_dis_2); in pmc_dev_state_show()
298 struct pmc_dev *pmc = s->private; in pmc_pss_state_show()
299 const struct pmc_bit_map *map = pmc->map->pss; in pmc_pss_state_show()
304 seq_printf(s, "Island: %-2d - %-32s\tState: %s\n", in pmc_pss_state_show()
315 struct pmc_dev *pmc = s->private; in pmc_sleep_tmr_show()
340 pmc->dbgfs_dir = dir; in pmc_dbgfs_register()
359 pr_info("%s: PMC critical clocks quirk enabled\n", d->ident); in dmi_callback()
385 /* pmc_plt_clk0 is used for an external HSIC USB HUB */
398 * https://www.lex.com.tw/products/embedded-ipc-board/
407 /* pmc_plt_clk* - are used for ethernet controllers */
433 return -ENOMEM; in pmc_setup_clks()
435 clk_data->base = pmc_regmap; /* offset is added by client */ in pmc_setup_clks()
436 clk_data->clks = pmc_data->clks; in pmc_setup_clks()
438 clk_data->critical = pmc_clk_is_critical; in pmc_setup_clks()
440 clkdev = platform_device_register_data(&pdev->dev, "clk-pmc-atom", in pmc_setup_clks()
476 const struct pmc_reg_map *m = pmc->map; in pmc_s2idle_check()
488 * Some blocks are not used on lower-featured versions of the SoC and in pmc_s2idle_check()
491 if (m->d3_sts_1 == byt_d3_sts_1_map) { in pmc_s2idle_check()
503 pmc_dev_state_check(d3_sts_0, m->d3_sts_0, func_dis, m->func_dis, false_pos_sts_0); in pmc_s2idle_check()
504 pmc_dev_state_check(d3_sts_1, m->d3_sts_1, func_dis_2, m->func_dis_2, false_pos_sts_1); in pmc_s2idle_check()
506 /* Forced-on PMC clocks prevent S0i3 */ in pmc_s2idle_check()
532 const struct pmc_data *data = (struct pmc_data *)ent->driver_data; in pmc_setup_dev()
533 const struct pmc_reg_map *map = data->map; in pmc_setup_dev()
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()
549 dev_err(&pdev->dev, "error: ioremap failed\n"); in pmc_setup_dev()
550 return -ENOMEM; in pmc_setup_dev()
553 pmc->map = map; in pmc_setup_dev()
560 /* Register platform clocks - PMC_PLT_CLK [0..5] */ in pmc_setup_dev()
561 ret = pmc_setup_clks(pdev, pmc->regmap, data); in pmc_setup_dev()
563 dev_warn(&pdev->dev, "platform clocks register failed: %d\n", in pmc_setup_dev()
567 pmc->init = true; in pmc_setup_dev()
584 * We look for our device - PCU PMC. in pmc_atom_init()
598 return -ENODEV; in pmc_atom_init()