/openbmc/qemu/hw/ppc/ |
H A D | pnv_lpc.c | 2 * QEMU PowerPC PowerNV LPC controller 52 /* LPC HC registers */ 105 const char compat[] = "ibm,power8-lpc\0ibm,lpc"; in pnv_lpc_dt_xscom() 131 const char lpc_compat[] = "ibm,power9-lpc\0ibm,lpc"; in pnv_dt_lpc() 205 * LPC Host Controller registers in pnv_dt_lpc() 207 name = g_strdup_printf("lpc-controller@%x", LPC_HC_REGS_OPB_ADDR); in pnv_dt_lpc() 216 "ibm,power9-lpc-controller"))); in pnv_dt_lpc() 218 name = g_strdup_printf("lpc@0"); in pnv_dt_lpc() 234 * with the P9 LPC Controller which uses direct MMIOs. 239 bool pnv_lpc_opb_read(PnvLpcController *lpc, uint32_t addr, in pnv_lpc_opb_read() argument [all …]
|
H A D | pnv_adu.c | 46 * LPC Address Map in Pervasive ADU Workbook in pnv_adu_xscom_read() 49 * XXX: implement as class property, or get from LPC? in pnv_adu_xscom_read() 120 qemu_log_mask(LOG_GUEST_ERROR, "ADU: Unsupported LPC access " in pnv_adu_xscom_write() 125 pnv_lpc_opb_read(adu->lpc, lpc_addr, (void *)&data, lpc_size); in pnv_adu_xscom_write() 145 qemu_log_mask(LOG_GUEST_ERROR, "ADU: Unsupported LPC access " in pnv_adu_xscom_write() 151 pnv_lpc_opb_write(adu->lpc, lpc_addr, (void *)&data, lpc_size); in pnv_adu_xscom_write() 180 assert(adu->lpc); in pnv_adu_realize() 189 DEFINE_PROP_LINK("lpc", PnvADU, lpc, TYPE_PNV_LPC, PnvLpcController *),
|
/openbmc/qemu/hw/isa/ |
H A D | lpc_ich9.c | 58 /* ICH9 LPC PCI to ISA bridge */ 74 static void ich9_cc_update(ICH9LPCState *lpc) in ich9_cc_update() argument 95 ich9_cc_update_ir(lpc->irr[slot], in ich9_cc_update() 96 pci_get_word(lpc->chip_config + *offset)); in ich9_cc_update() 106 lpc->irr[30][pci_intx] = pci_intx + 4; in ich9_cc_update() 110 static void ich9_cc_init(ICH9LPCState *lpc) in ich9_cc_init() argument 126 lpc->irr[slot][intx] = (slot + intx) % 4 + 4; in ich9_cc_init() 129 ich9_cc_update(lpc); in ich9_cc_init() 132 static void ich9_cc_reset(ICH9LPCState *lpc) in ich9_cc_reset() argument 134 uint8_t *c = lpc->chip_config; in ich9_cc_reset() [all …]
|
/openbmc/linux/Documentation/devicetree/bindings/mfd/ |
H A D | aspeed-lpc.yaml | 5 $id: http://devicetree.org/schemas/mfd/aspeed-lpc.yaml# 8 title: Aspeed Low Pin Count (LPC) Bus Controller 15 The LPC bus is a means to bridge a host CPU to a number of low-bandwidth 17 primary use case of the Aspeed LPC controller is as a slave on the bus 21 The LPC controller is represented as a multi-function device to account for the 26 * An LPC Host Interface Controller manages functions exposed to the host such 27 as LPC firmware hub cycles, configuration of the LPC-to-AHB mapping, UART 34 Additionally the state of the LPC controller influences the pinmux 42 - aspeed,ast2400-lpc-v2 43 - aspeed,ast2500-lpc-v2 [all …]
|
/openbmc/linux/drivers/phy/ |
H A D | phy-lpc18xx-usb-otg.c | 29 struct lpc18xx_usb_otg_phy *lpc = phy_get_drvdata(phy); in lpc18xx_usb_otg_phy_init() local 33 ret = clk_set_rate(lpc->clk, 480000000); in lpc18xx_usb_otg_phy_init() 37 return clk_prepare(lpc->clk); in lpc18xx_usb_otg_phy_init() 42 struct lpc18xx_usb_otg_phy *lpc = phy_get_drvdata(phy); in lpc18xx_usb_otg_phy_exit() local 44 clk_unprepare(lpc->clk); in lpc18xx_usb_otg_phy_exit() 51 struct lpc18xx_usb_otg_phy *lpc = phy_get_drvdata(phy); in lpc18xx_usb_otg_phy_power_on() local 54 ret = clk_enable(lpc->clk); in lpc18xx_usb_otg_phy_power_on() 59 ret = regmap_update_bits(lpc->reg, LPC18XX_CREG_CREG0, in lpc18xx_usb_otg_phy_power_on() 62 clk_disable(lpc->clk); in lpc18xx_usb_otg_phy_power_on() 71 struct lpc18xx_usb_otg_phy *lpc = phy_get_drvdata(phy); in lpc18xx_usb_otg_phy_power_off() local [all …]
|
/openbmc/linux/drivers/clocksource/ |
H A D | clksrc_st_lpc.c | 3 * Clocksource using the Low Power Timer found in the Low Power Controller (LPC) 18 #include <dt-bindings/mfd/st-lpc.h> 55 "clksrc-st-lpc", rate, 300, 32, in st_clksrc_init() 58 pr_err("clksrc-st-lpc: Failed to register clocksource\n"); in st_clksrc_init() 71 pr_err("clksrc-st-lpc: Failed to get LPC clock\n"); in st_clksrc_setup_clk() 76 pr_err("clksrc-st-lpc: Failed to enable LPC clock\n"); in st_clksrc_setup_clk() 81 pr_err("clksrc-st-lpc: Failed to get LPC clock rate\n"); in st_clksrc_setup_clk() 96 ret = of_property_read_u32(np, "st,lpc-mode", &mode); in st_clksrc_of_register() 98 pr_err("clksrc-st-lpc: An LPC mode must be provided\n"); in st_clksrc_of_register() 102 /* LPC can either run as a Clocksource or in RTC or WDT mode */ in st_clksrc_of_register() [all …]
|
/openbmc/linux/Documentation/devicetree/bindings/watchdog/ |
H A D | st_lpc_wdt.txt | 1 STMicroelectronics Low Power Controller (LPC) - Watchdog 4 LPC currently supports Watchdog OR Real Time Clock OR Clocksource 7 [See: ../rtc/rtc-st-lpc.txt for RTC options] 8 [See: ../timer/st,stih407-lpc for Clocksource options] 12 - compatible : Should be: "st,stih407-lpc" 13 - reg : LPC registers base address + size 14 - interrupts : LPC interrupt line number and associated flags 15 - clocks : Clock used by LPC device (See: ../clock/clock-bindings.txt) 16 - st,lpc-mode : The LPC can run either one of three modes: 33 lpc@fde05000 { [all …]
|
/openbmc/linux/Documentation/devicetree/bindings/rtc/ |
H A D | rtc-st-lpc.txt | 1 STMicroelectronics Low Power Controller (LPC) - RTC 4 LPC currently supports Watchdog OR Real Time Clock OR Clocksource 8 [See: ../timer/st,stih407-lpc for Clocksource options] 12 - compatible : Must be: "st,stih407-lpc" 13 - reg : LPC registers base address + size 14 - interrupts : LPC interrupt line number and associated flags 15 - clocks : Clock used by LPC device (See: ../clock/clock-bindings.txt) 16 - st,lpc-mode : The LPC can run either one of three modes: 23 lpc@fde05000 { 24 compatible = "st,stih407-lpc"; [all …]
|
/openbmc/linux/Documentation/devicetree/bindings/timer/ |
H A D | st,stih407-lpc | 1 STMicroelectronics Low Power Controller (LPC) - Clocksource 4 LPC currently supports Watchdog OR Real Time Clock OR Clocksource 8 [See: ../rtc/rtc-st-lpc.txt for RTC options] 12 - compatible : Must be: "st,stih407-lpc" 13 - reg : LPC registers base address + size 14 - interrupts : LPC interrupt line number and associated flags 15 - clocks : Clock used by LPC device (See: ../clock/clock-bindings.txt) 16 - st,lpc-mode : The LPC can run either one of three modes: 23 lpc@fde05000 { 24 compatible = "st,stih407-lpc"; [all …]
|
/openbmc/hiomapd/ |
H A D | lpc.c | 29 #include "lpc.h" 31 #include <linux/aspeed-lpc-ctrl.h> 33 #define LPC_CTRL_PATH "/dev/aspeed-lpc-ctrl" 47 /* Open LPC Device */ in __lpc_dev_init() 61 MSG_ERR("Couldn't get lpc control buffer size: %s\n", in __lpc_dev_init() 67 /* Map at the top of the 28-bit LPC firmware address space-0 */ in __lpc_dev_init() 96 * lpc_map_flash() - Point the lpc bus mapping to the actual flash device 108 * The mask is because the top nibble is the host LPC FW space, in lpc_map_flash() 117 return 0; /* LPC Bus already points to flash */ in lpc_map_flash() 121 MSG_ERR("Can't point lpc mapping to flash while suspended\n"); in lpc_map_flash() [all …]
|
/openbmc/phosphor-mboxd/ |
H A D | mboxd_lpc.c | 31 #include <linux/aspeed-lpc-ctrl.h> 33 #define LPC_CTRL_PATH "/dev/aspeed-lpc-ctrl" 47 /* Open LPC Device */ in __init_lpc_dev() 61 MSG_ERR("Couldn't get lpc control buffer size: %s\n", in __init_lpc_dev() 67 /* Map at the top of the 28-bit LPC firmware address space-0 */ in __init_lpc_dev() 96 * point_to_flash() - Point the lpc bus mapping to the actual flash device 108 * The mask is because the top nibble is the host LPC FW space, in point_to_flash() 117 return 0; /* LPC Bus already points to flash */ in point_to_flash() 121 MSG_ERR("Can't point lpc mapping to flash while suspended\n"); in point_to_flash() 125 MSG_INFO("Pointing HOST LPC bus at the flash\n"); in point_to_flash() [all …]
|
/openbmc/openbmc/meta-phosphor/recipes-phosphor/ipmi/ |
H A D | phosphor-ipmi-flash_git.bb | 26 # Only one type of p2a or lpc can be enabled. 27 PACKAGECONFIG[aspeed-p2a] = "-Dp2a-type=aspeed-p2a,,,,,aspeed-lpc nuvoton-lpc nuvoton-p2a-vga nuvot… 28 PACKAGECONFIG[aspeed-lpc] = "-Dlpc-type=aspeed-lpc,,,,,aspeed-p2a nuvoton-lpc nuvoton-p2a-vga nuvot… 29 PACKAGECONFIG[nuvoton-lpc] = "-Dlpc-type=nuvoton-lpc,,,,,aspeed-p2a aspeed-lpc nuvoton-p2a-vga nuvo… 30 PACKAGECONFIG[nuvoton-p2a-vga] = "-Dp2a-type=nuvoton-p2a-vga,,,,,aspeed-p2a aspeed-lpc nuvoton-lpc … 31 …voton-p2a-mbox] = "-Dp2a-type=nuvoton-p2a-mbox,,,,,aspeed-p2a aspeed-lpc nuvoton-lpc nuvoton-p2a-v…
|
/openbmc/linux/Documentation/devicetree/bindings/ipmi/ |
H A D | aspeed,ast2400-kcs-bmc.yaml | 14 interfaces on the LPC bus for in-band IPMI communication with their host. 43 aspeed,lpc-io-reg: 48 The host CPU LPC IO data and status addresses for the device. For most 52 aspeed,lpc-interrupts: 57 A 2-cell property expressing the LPC SerIRQ number and the interrupt 67 description: The LPC channel number in the controller 95 - aspeed,lpc-io-reg 103 aspeed,lpc-io-reg = <0xca2>; 104 aspeed,lpc-interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
|
/openbmc/libmctp/docs/bindings/ |
H A D | vendor-ibm-astlpc.md | 1 # Management Component Transport Protocol (MCTP) LPC Transport Binding Specification for ASPEED BMC… 6 host and BMC over the LPC bus on ASPEED BMC platforms. 17 2. Intel (R) Low Pin Count (LPC) Interface Specification 1.1, 52 ### LPC Bus: Low Pin Count Bus 57 ### LPC FW: LPC Firmware Cycles 59 LPC firmware cycles allow separate boot BIOS firmware memory cycles and 60 application memory cycles with respect to the LPC bus. The ASPEED BMCs allow 61 remapping of the LPC firmware cycles onto arbitrary regions of the BMC's 94 ## MCTP over LPC Transport 101 - A window of the LPC FW address space, where reads and writes are forwarded to [all …]
|
/openbmc/linux/drivers/soc/aspeed/ |
H A D | aspeed-lpc-ctrl.c | 17 #include <linux/aspeed-lpc-ctrl.h> 19 #define DEVICE_NAME "aspeed-lpc-ctrl" 110 * The bottom half of HICR7 is the MSB of the HOST LPC in aspeed_lpc_ctrl_ioctl() 167 * addr (host lpc address) is safe regardless of values. This in aspeed_lpc_ctrl_ioctl() 169 * side of the LPC bus. This cannot impact the hosts own in aspeed_lpc_ctrl_ioctl() 170 * memory space by surprise as LPC specific accessors are in aspeed_lpc_ctrl_ioctl() 205 * Enable LPC FHW cycles. This is required for the host to in aspeed_lpc_ctrl_ioctl() 285 if (!of_device_is_compatible(np, "aspeed,ast2400-lpc-v2") && in aspeed_lpc_ctrl_probe() 286 !of_device_is_compatible(np, "aspeed,ast2500-lpc-v2") && in aspeed_lpc_ctrl_probe() 287 !of_device_is_compatible(np, "aspeed,ast2600-lpc-v2")) { in aspeed_lpc_ctrl_probe() [all …]
|
H A D | Kconfig | 8 tristate "ASPEED LPC firmware cycle control" 13 Control LPC firmware cycle mappings through ioctl()s. The driver 15 host LPC read/write region can be buffered. 18 tristate "ASPEED LPC snoop support" 23 Provides a driver to control the LPC snoop interface which 25 the host to an arbitrary LPC I/O port.
|
/openbmc/hiomapd/Documentation/ |
H A D | mboxd.md | 29 lpc.c - Contains the functions for controlling the LPC bus mapping 44 currently suspended and the LPC bus maps the flash 47 currently suspended and the LPC bus maps the flash 50 currently suspended and the LPC bus maps the reserved 53 currently suspended and the LPC bus maps the reserved 90 it at the correct LPC offset for that windows location and the requested flash 97 this window and the host pointed at its location on the LPC bus. 131 After initilisation, the daemon points the LPC mapping to the actual flash 168 SIGHUP - Clear the window cache and point the LPC bus mapping back to 179 the active window has been closed, points the LPC bus mapping back to flash,
|
/openbmc/qemu/hw/acpi/ |
H A D | ich9.c | 470 ICH9LPCState *lpc = ICH9_LPC_DEVICE(hotplug_dev); in ich9_pm_device_pre_plug_cb() local 478 uint64_t negotiated = lpc->smi_negotiated_features; in ich9_pm_device_pre_plug_cb() 492 ICH9LPCState *lpc = ICH9_LPC_DEVICE(hotplug_dev); in ich9_pm_device_plug_cb() local 498 acpi_memory_plug_cb(hotplug_dev, &lpc->pm.acpi_memory_hotplug, in ich9_pm_device_plug_cb() 502 if (lpc->pm.cpu_hotplug_legacy) { in ich9_pm_device_plug_cb() 503 legacy_acpi_cpu_plug_cb(hotplug_dev, &lpc->pm.gpe_cpu, dev, errp); in ich9_pm_device_plug_cb() 505 acpi_cpu_plug_cb(hotplug_dev, &lpc->pm.cpuhp_state, dev, errp); in ich9_pm_device_plug_cb() 508 acpi_pcihp_device_plug_cb(hotplug_dev, &lpc->pm.acpi_pci_hotplug, in ich9_pm_device_plug_cb() 519 ICH9LPCState *lpc = ICH9_LPC_DEVICE(hotplug_dev); in ich9_pm_device_unplug_request_cb() local 523 &lpc->pm.acpi_memory_hotplug, dev, in ich9_pm_device_unplug_request_cb() [all …]
|
H A D | ich9_timer.c | 22 ICH9LPCState *lpc; in ich9_pm_update_swsmi_timer() local 25 lpc = container_of(pm, ICH9LPCState, pm); in ich9_pm_update_swsmi_timer() 27 (pci_get_word(lpc->d.config + ICH9_LPC_GEN_PMCON_3) & 0xc0) >> 6; in ich9_pm_update_swsmi_timer() 63 ICH9LPCState *lpc; in ich9_pm_update_periodic_timer() local 66 lpc = container_of(pm, ICH9LPCState, pm); in ich9_pm_update_periodic_timer() 67 per_smi_sel = pci_get_word(lpc->d.config + ICH9_LPC_GEN_PMCON_1) & 3; in ich9_pm_update_periodic_timer()
|
/openbmc/u-boot/arch/x86/include/asm/ |
H A D | lpc_common.h | 20 #define LPC_EN 0x82 /* LPC IF Enables Register */ 31 #define LPC_GEN1_DEC 0x84 /* LPC IF Generic Decode Range 1 */ 32 #define LPC_GEN2_DEC 0x88 /* LPC IF Generic Decode Range 2 */ 33 #define LPC_GEN3_DEC 0x8c /* LPC IF Generic Decode Range 3 */ 34 #define LPC_GEN4_DEC 0x90 /* LPC IF Generic Decode Range 4 */ 46 * lpc_common_early_init() - Set up common LPC init 51 * @dev: LPC device (a child of the PCH)
|
/openbmc/phosphor-mboxd/Documentation/ |
H A D | mboxd.md | 30 mboxd_lpc.c - Contains the functions for controlling the LPC bus mapping 45 currently suspended and the LPC bus maps the flash 48 currently suspended and the LPC bus maps the flash 51 currently suspended and the LPC bus maps the reserved 54 currently suspended and the LPC bus maps the reserved 91 it at the correct LPC offset for that windows location and the requested flash 98 this window and the host pointed at its location on the LPC bus. 132 After initilisation, the daemon points the LPC mapping to the actual flash 169 SIGHUP - Clear the window cache and point the LPC bus mapping back to 180 active window has been closed, points the LPC bus mapping back to flash, clears
|
/openbmc/linux/drivers/bus/ |
H A D | hisi_lpc.c | 22 #define DRV_NAME "hisi-lpc" 50 #define LPC_REG_OP_LEN 0x10 /* LPC cycles count per start */ 58 /* The minimal nanosecond interval for each query on LPC cycle status */ 66 * for extra 256 lpc clocks, so (256 + 13) * 30ns = 8 us. The maximum burst 92 * hisi_lpc_target_in - trigger a series of LPC cycles for read operation 93 * @lpcdev: pointer to hisi lpc device 94 * @para: some parameters used to control the lpc I/O operations 95 * @addr: the lpc I/O target port address 145 * hisi_lpc_target_out - trigger a series of LPC cycles for write operation 146 * @lpcdev: pointer to hisi lpc device [all …]
|
/openbmc/linux/drivers/watchdog/ |
H A D | st_lpc_wdt.c | 3 * ST's LPC Watchdog 23 #include <dt-bindings/mfd/st-lpc.h> 29 /* LPC as WDT */ 58 .compatible = "st,stih407-lpc", 129 .identity = "ST LPC WDT", 162 ret = of_property_read_u32(np, "st,lpc-mode", &mode); in st_wdog_probe() 164 dev_err(dev, "An LPC mode must be provided\n"); in st_wdog_probe() 168 /* LPC can either run as a Clocksource or in RTC or WDT mode */ in st_wdog_probe() 236 dev_info(dev, "LPC Watchdog driver registered, reset type is %s", in st_wdog_probe() 291 .name = "st-lpc-wdt", [all …]
|
/openbmc/qemu/include/hw/ppc/ |
H A D | pnv_lpc.h | 2 * QEMU PowerPC PowerNV LPC controller 28 #define TYPE_PNV_LPC "pnv-lpc" 77 /* LPC device IRQ state */ 80 /* LPC HC registers */ 112 bool pnv_lpc_opb_read(PnvLpcController *lpc, uint32_t addr, 114 bool pnv_lpc_opb_write(PnvLpcController *lpc, uint32_t addr, 117 ISABus *pnv_lpc_isa_create(PnvLpcController *lpc, bool use_cpld, Error **errp);
|
/openbmc/linux/arch/powerpc/platforms/powernv/ |
H A D | opal-lpc.c | 3 * PowerNV LPC bus handling. 187 struct lpc_debugfs_entry *lpc = filp->private_data; in lpc_debug_read() local 204 if (lpc->lpc_type == OPAL_LPC_FW) { in lpc_debug_read() 210 rc = opal_lpc_read(opal_lpc_chip_id, lpc->lpc_type, pos, in lpc_debug_read() 224 * respective positions (ie, LPC position). in lpc_debug_read() 229 * IE. If the LPC transaction has bytes B0, B1, B2 and B3 in that in lpc_debug_read() 278 struct lpc_debugfs_entry *lpc = filp->private_data; in lpc_debug_write() local 295 if (lpc->lpc_type == OPAL_LPC_FW) { in lpc_debug_write() 334 rc = opal_lpc_write(opal_lpc_chip_id, lpc->lpc_type, pos, in lpc_debug_write() 374 root = debugfs_create_dir("lpc", arch_debugfs_dir); in opal_lpc_init_debugfs() [all …]
|