coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
lpc.c
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 
3 #include <device/device.h>
4 #include <device/pci.h>
5 #include <device/pci_ids.h>
6 #include <intelblocks/lpc_lib.h>
7 #include <soc/pm.h>
8 
9 #include "lpc_def.h"
10 
11 /* SoC overrides */
12 
13 /* Common weak definition, needs to be implemented in each soc LPC driver. */
14 __weak void lpc_soc_init(struct device *dev)
15 {
16  /* no-op */
17 }
18 
19 /* Fill up LPC IO resource structure inside SoC directory */
21 {
22  /* no-op */
23 }
24 
26  uintptr_t base, size_t size, unsigned long flags)
27 {
28  struct resource *res;
29  res = new_resource(dev, offset);
30  res->base = base;
31  res->size = size;
32  res->flags = flags;
33 }
34 
35 static void pch_lpc_add_io_resources(struct device *dev)
36 {
37  uint32_t gen_io_dec;
39 
40  /* Add the default claimed legacy IO range for the LPC device. */
41  pch_lpc_add_new_resource(dev, 0, 0, 0x1000, IORESOURCE_IO |
43 
44  /* LPC Generic IO Decode ranges */
45  for (size_t i = 0; i < LPC_NUM_GENERIC_IO_RANGES; i++) {
46  gen_io_dec = pci_read_config32(dev, LPC_GENERIC_IO_RANGE(i));
47  if (gen_io_dec & LPC_LGIR_EN) {
48  base = gen_io_dec & LPC_LGIR_ADDR_MASK;
49  size = (0x3 | ((gen_io_dec >> 16) & 0xfc)) + 1;
53  }
54  }
55 
56  /* SoC IO resource overrides */
58 }
59 
60 static void pch_lpc_add_mmio_resources(struct device *dev)
61 {
62  /* LPC Memory Decode */
64  if (lgmr & LPC_LGMR_EN) {
65  lgmr &= LPC_LGMR_ADDR_MASK;
69  }
70 }
71 
72 static void pch_lpc_read_resources(struct device *dev)
73 {
74  /* Get the PCI resources of this device. */
76 
77  /* Add IO resources to LPC. */
79 
80  /* Add non-standard MMIO resources. */
82 }
83 
84 static void pch_lpc_set_child_resources(struct device *dev);
85 
86 static void pch_lpc_loop_resources(struct device *dev)
87 {
88  struct resource *res;
89 
90  for (res = dev->resource_list; res; res = res->next) {
91  if (res->flags & IORESOURCE_IO)
92  lpc_open_pmio_window(res->base, res->size);
93  }
95 }
96 
97 /*
98  * Loop through all the child devices' resources, and open up windows to the
99  * LPC bus, as appropriate.
100  */
101 static void pch_lpc_set_child_resources(struct device *dev)
102 {
103  struct bus *link;
104  struct device *child;
105 
106  for (link = dev->link_list; link; link = link->next) {
107  for (child = link->children; child; child = child->sibling)
108  pch_lpc_loop_resources(child);
109  }
110 }
111 
112 static void pch_lpc_set_resources(struct device *dev)
113 {
115 
116  /* Now open up windows to devices which have declared resources. */
118 }
119 
120 #if CONFIG(HAVE_ACPI_TABLES)
121 static const char *lpc_acpi_name(const struct device *dev)
122 {
123  return "LPCB";
124 }
125 #endif
126 
127 static struct device_operations device_ops = {
129  .set_resources = pch_lpc_set_resources,
130  .enable_resources = pci_dev_enable_resources,
131 #if CONFIG(HAVE_ACPI_TABLES)
132  .write_acpi_tables = southbridge_write_acpi_tables,
133  .acpi_name = lpc_acpi_name,
134 #endif
135  .init = lpc_soc_init,
136  .scan_bus = scan_static_bus,
137  .ops_pci = &pci_dev_ops_pci,
138 };
139 
140 static const unsigned short pci_device_ids[] = {
387  0
388 };
389 
390 static const struct pci_driver pch_lpc __pci_driver = {
391  .ops = &device_ops,
392  .vendor = PCI_VID_INTEL,
393  .devices = pci_device_ids,
394 };
struct resource * new_resource(struct device *dev, unsigned int index)
See if a resource structure already exists for a given index and if not allocate one.
Definition: device_util.c:346
static size_t offset
Definition: flashconsole.c:16
static __always_inline u32 pci_read_config32(const struct device *dev, u16 reg)
Definition: pci_ops.h:58
#define LPC_LGIR_EN
Definition: lpc_def.h:20
#define LPC_LGIR_ADDR_MASK
Definition: lpc_def.h:19
#define LPC_LGMR_ADDR_MASK
Definition: lpc_def.h:23
#define LPC_LGMR_WINDOW_SIZE
Definition: lpc_def.h:25
#define LPC_LGMR_EN
Definition: lpc_def.h:24
#define LPC_GENERIC_IO_RANGE(n)
Definition: lpc_def.h:17
#define LPC_GENERIC_MEM_RANGE
Definition: lpc_def.h:22
#define LPC_NUM_GENERIC_IO_RANGES
Definition: lpc_lib.h:26
void lpc_open_pmio_window(uint16_t base, uint16_t size)
Definition: lpc_lib.c:71
void pci_dev_enable_resources(struct device *dev)
Definition: pci_device.c:721
void pci_dev_read_resources(struct device *dev)
Definition: pci_device.c:534
struct pci_operations pci_dev_ops_pci
Default device operation for PCI devices.
Definition: pci_device.c:911
void pci_dev_set_resources(struct device *dev)
Definition: pci_device.c:691
#define PCI_DID_INTEL_MCC_SUPER_ESPI
Definition: pci_ids.h:2974
#define PCI_DID_INTEL_UPT_LP_Y_PREMIUM
Definition: pci_ids.h:2892
#define PCI_DID_INTEL_ADP_S_ESPI_12
Definition: pci_ids.h:3025
#define PCI_DID_INTEL_ADP_S_ESPI_25
Definition: pci_ids.h:3038
#define PCI_DID_INTEL_ADP_S_ESPI_1
Definition: pci_ids.h:3014
#define PCI_DID_INTEL_ADP_S_ESPI_4
Definition: pci_ids.h:3017
#define PCI_DID_INTEL_ADP_S_ESPI_21
Definition: pci_ids.h:3034
#define PCI_DID_INTEL_ADP_M_N_ESPI_4
Definition: pci_ids.h:3049
#define PCI_DID_INTEL_ADP_M_N_ESPI_30
Definition: pci_ids.h:3075
#define PCI_DID_INTEL_ADP_S_ESPI_30
Definition: pci_ids.h:3043
#define PCI_DID_INTEL_ICL_BASE_Y_ESPI
Definition: pci_ids.h:2912
#define PCI_DID_INTEL_TGP_ESPI_10
Definition: pci_ids.h:2944
#define PCI_DID_INTEL_MCC_PREMIUM_ESPI
Definition: pci_ids.h:2973
#define PCI_DID_INTEL_TGP_ESPI_16
Definition: pci_ids.h:2950
#define PCI_DID_INTEL_ADP_P_ESPI_10
Definition: pci_ids.h:2989
#define PCI_DID_INTEL_ICL_SUPER_Y_ESPI
Definition: pci_ids.h:2915
#define PCI_DID_INTEL_CNP_H_LPC_H370
Definition: pci_ids.h:2900
#define PCI_DID_INTEL_ADP_S_ESPI_29
Definition: pci_ids.h:3042
#define PCI_DID_INTEL_ADP_M_N_ESPI_18
Definition: pci_ids.h:3063
#define PCI_DID_INTEL_TGP_ESPI_9
Definition: pci_ids.h:2943
#define PCI_DID_INTEL_ADP_P_ESPI_22
Definition: pci_ids.h:3001
#define PCI_DID_INTEL_ADP_M_N_ESPI_17
Definition: pci_ids.h:3062
#define PCI_DID_INTEL_CNL_U_PREMIUM_LPC
Definition: pci_ids.h:2897
#define PCI_DID_INTEL_ADP_P_ESPI_25
Definition: pci_ids.h:3004
#define PCI_DID_INTEL_ADP_S_ESPI_8
Definition: pci_ids.h:3021
#define PCI_DID_INTEL_ADP_S_ESPI_16
Definition: pci_ids.h:3029
#define PCI_DID_INTEL_TGP_ESPI_14
Definition: pci_ids.h:2948
#define PCI_DID_INTEL_CMP_SUPER_Y_LPC
Definition: pci_ids.h:2920
#define PCI_DID_INTEL_MTL_ESPI_7
Definition: pci_ids.h:3086
#define PCI_DID_INTEL_TGP_ESPI_17
Definition: pci_ids.h:2951
#define PCI_DID_INTEL_ADP_M_N_ESPI_0
Definition: pci_ids.h:3045
#define PCI_DID_INTEL_MCC_ESPI_1
Definition: pci_ids.h:2971
#define PCI_DID_INTEL_CNL_Y_PREMIUM_LPC
Definition: pci_ids.h:2898
#define PCI_DID_INTEL_UPT_LP_U_PREMIUM
Definition: pci_ids.h:2891
#define PCI_DID_INTEL_ICL_U_SUPER_U_ESPI_REV0
Definition: pci_ids.h:2910
#define PCI_DID_INTEL_ADP_M_N_ESPI_21
Definition: pci_ids.h:3066
#define PCI_DID_INTEL_APL_LPC
Definition: pci_ids.h:2893
#define PCI_DID_INTEL_LWB_C627A
Definition: pci_ids.h:2867
#define PCI_DID_INTEL_ADP_S_ESPI_13
Definition: pci_ids.h:3026
#define PCI_DID_INTEL_MTL_ESPI_2
Definition: pci_ids.h:3081
#define PCI_DID_INTEL_SPT_H_HM175
Definition: pci_ids.h:2855
#define PCI_DID_INTEL_TGP_ESPI_6
Definition: pci_ids.h:2940
#define PCI_DID_INTEL_ADP_M_N_ESPI_24
Definition: pci_ids.h:3069
#define PCI_DID_INTEL_ADP_M_N_ESPI_14
Definition: pci_ids.h:3059
#define PCI_DID_INTEL_ADP_M_N_ESPI_10
Definition: pci_ids.h:3055
#define PCI_DID_INTEL_TGP_SUPER_U_ESPI
Definition: pci_ids.h:2930
#define PCI_DID_INTEL_MCC_ESPI_0
Definition: pci_ids.h:2970
#define PCI_DID_INTEL_ADP_P_ESPI_9
Definition: pci_ids.h:2988
#define PCI_DID_INTEL_ADP_M_N_ESPI_26
Definition: pci_ids.h:3071
#define PCI_DID_INTEL_ADP_P_ESPI_11
Definition: pci_ids.h:2990
#define PCI_DID_INTEL_LWB_C627_SUPER_2
Definition: pci_ids.h:2872
#define PCI_DID_INTEL_SPT_H_B150
Definition: pci_ids.h:2849
#define PCI_DID_INTEL_ADP_P_ESPI_27
Definition: pci_ids.h:3006
#define PCI_DID_INTEL_ADP_M_ESPI_32
Definition: pci_ids.h:3077
#define PCI_DID_INTEL_LWB_C627A_SUPER
Definition: pci_ids.h:2875
#define PCI_DID_INTEL_ADP_P_ESPI_30
Definition: pci_ids.h:3009
#define PCI_DID_INTEL_ADP_S_ESPI_26
Definition: pci_ids.h:3039
#define PCI_DID_INTEL_UPT_H_H310C
Definition: pci_ids.h:2884
#define PCI_DID_INTEL_LWB_C629A_SUPER
Definition: pci_ids.h:2876
#define PCI_DID_INTEL_LWB_C626
Definition: pci_ids.h:2862
#define PCI_DID_INTEL_LWB_C628_SUPER
Definition: pci_ids.h:2873
#define PCI_DID_INTEL_UPT_H_Z270
Definition: pci_ids.h:2879
#define PCI_DID_INTEL_CMP_H_LPC_Z490
Definition: pci_ids.h:2926
#define PCI_DID_INTEL_TGP_ESPI_22
Definition: pci_ids.h:2956
#define PCI_DID_INTEL_ADP_S_ESPI_22
Definition: pci_ids.h:3035
#define PCI_DID_INTEL_TGP_H_ESPI_H570
Definition: pci_ids.h:2963
#define PCI_DID_INTEL_EMB_SUPER
Definition: pci_ids.h:2877
#define PCI_DID_INTEL_SPT_LP_U_PREMIUM_HDCP22
Definition: pci_ids.h:2887
#define PCI_DID_INTEL_TGP_ESPI_20
Definition: pci_ids.h:2954
#define PCI_DID_INTEL_CMP_H_LPC_HM470
Definition: pci_ids.h:2921
#define PCI_DID_INTEL_ADP_P_ESPI_32
Definition: pci_ids.h:3011
#define PCI_DID_INTEL_CMP_SUPER_U_LPC
Definition: pci_ids.h:2916
#define PCI_DID_INTEL_UPT_H_H270
Definition: pci_ids.h:2878
#define PCI_DID_INTEL_CNP_H_LPC_HM370
Definition: pci_ids.h:2907
#define PCI_DID_INTEL_CMP_H_LPC_W480
Definition: pci_ids.h:2924
#define PCI_DID_INTEL_TGP_ESPI_7
Definition: pci_ids.h:2941
#define PCI_DID_INTEL_TGP_ESPI_15
Definition: pci_ids.h:2949
#define PCI_DID_INTEL_SPT_H_Z170
Definition: pci_ids.h:2846
#define PCI_DID_INTEL_LWB_C621A_SUPER
Definition: pci_ids.h:2874
#define PCI_DID_INTEL_CMP_PREMIUM_Y_LPC
Definition: pci_ids.h:2917
#define PCI_DID_INTEL_ADP_M_N_ESPI_15
Definition: pci_ids.h:3060
#define PCI_DID_INTEL_ICL_BASE_U_ESPI
Definition: pci_ids.h:2913
#define PCI_DID_INTEL_MTL_ESPI_3
Definition: pci_ids.h:3082
#define PCI_DID_INTEL_ADP_P_ESPI_17
Definition: pci_ids.h:2996
#define PCI_DID_INTEL_SPT_H_C232
Definition: pci_ids.h:2851
#define PCI_DID_INTEL_ADP_S_ESPI_15
Definition: pci_ids.h:3028
#define PCI_DID_INTEL_ADP_P_ESPI_0
Definition: pci_ids.h:2979
#define PCI_DID_INTEL_TGP_H_ESPI_QM580
Definition: pci_ids.h:2968
#define PCI_DID_INTEL_TGP_ESPI_3
Definition: pci_ids.h:2937
#define PCI_DID_INTEL_TGP_ESPI_24
Definition: pci_ids.h:2958
#define PCI_DID_INTEL_CNP_H_LPC_C246
Definition: pci_ids.h:2904
#define PCI_DID_INTEL_ADP_P_ESPI_33
Definition: pci_ids.h:3012
#define PCI_DID_INTEL_ADP_M_N_ESPI_31
Definition: pci_ids.h:3076
#define PCI_DID_INTEL_SPT_H_C236
Definition: pci_ids.h:2850
#define PCI_DID_INTEL_CMP_H_LPC_Q470
Definition: pci_ids.h:2927
#define PCI_DID_INTEL_TGP_BASE_U_ESPI
Definition: pci_ids.h:2932
#define PCI_DID_INTEL_LWB_C624_SUPER
Definition: pci_ids.h:2869
#define PCI_DID_INTEL_CMP_H_LPC_H470
Definition: pci_ids.h:2925
#define PCI_DID_INTEL_MCC_ESPI_2
Definition: pci_ids.h:2975
#define PCI_DID_INTEL_LWB_C629
Definition: pci_ids.h:2865
#define PCI_DID_INTEL_ADP_S_ESPI_19
Definition: pci_ids.h:3032
#define PCI_DID_INTEL_TGP_H_ESPI_HM570
Definition: pci_ids.h:2967
#define PCI_DID_INTEL_LWB_C622
Definition: pci_ids.h:2859
#define PCI_DID_INTEL_MTL_ESPI_1
Definition: pci_ids.h:3080
#define PCI_DID_INTEL_MCC_ESPI_3
Definition: pci_ids.h:2976
#define PCI_DID_INTEL_ADP_M_N_ESPI_9
Definition: pci_ids.h:3054
#define PCI_DID_INTEL_ADP_S_ESPI_3
Definition: pci_ids.h:3016
#define PCI_DID_INTEL_CMP_H_LPC_WM490
Definition: pci_ids.h:2922
#define PCI_DID_INTEL_TGP_ESPI_26
Definition: pci_ids.h:2960
#define PCI_DID_INTEL_MCC_ESPI_4
Definition: pci_ids.h:2977
#define PCI_DID_INTEL_ADP_P_ESPI_8
Definition: pci_ids.h:2987
#define PCI_DID_INTEL_ADP_M_N_ESPI_27
Definition: pci_ids.h:3072
#define PCI_DID_INTEL_ADP_M_N_ESPI_23
Definition: pci_ids.h:3068
#define PCI_DID_INTEL_ADP_M_N_ESPI_12
Definition: pci_ids.h:3057
#define PCI_DID_INTEL_ADP_M_N_ESPI_2
Definition: pci_ids.h:3047
#define PCI_DID_INTEL_ADP_P_ESPI_16
Definition: pci_ids.h:2995
#define PCI_DID_INTEL_LWB_C625
Definition: pci_ids.h:2861
#define PCI_DID_INTEL_GLK_LPC
Definition: pci_ids.h:2894
#define PCI_DID_INTEL_TGP_ESPI_2
Definition: pci_ids.h:2934
#define PCI_DID_INTEL_ADP_P_ESPI_13
Definition: pci_ids.h:2992
#define PCI_DID_INTEL_ADP_P_ESPI_23
Definition: pci_ids.h:3002
#define PCI_DID_INTEL_ADP_M_N_ESPI_3
Definition: pci_ids.h:3048
#define PCI_DID_INTEL_ADP_M_N_ESPI_28
Definition: pci_ids.h:3073
#define PCI_DID_INTEL_TGP_H_ESPI_Z590
Definition: pci_ids.h:2966
#define PCI_DID_INTEL_ADP_P_ESPI_1
Definition: pci_ids.h:2980
#define PCI_DID_INTEL_ADP_P_ESPI_7
Definition: pci_ids.h:2986
#define PCI_DID_INTEL_UPT_LP_U_BASE
Definition: pci_ids.h:2890
#define PCI_DID_INTEL_ADP_P_ESPI_31
Definition: pci_ids.h:3010
#define PCI_DID_INTEL_SPT_LP_SAMPLE
Definition: pci_ids.h:2840
#define PCI_DID_INTEL_ADP_S_ESPI_6
Definition: pci_ids.h:3019
#define PCI_DID_INTEL_ADP_P_ESPI_28
Definition: pci_ids.h:3007
#define PCI_DID_INTEL_LWB_C628
Definition: pci_ids.h:2864
#define PCI_DID_INTEL_GLK_ESPI
Definition: pci_ids.h:2895
#define PCI_DID_INTEL_ADP_S_ESPI_18
Definition: pci_ids.h:3031
#define PCI_DID_INTEL_ADP_S_ESPI_7
Definition: pci_ids.h:3020
#define PCI_DID_INTEL_ADP_S_ESPI_9
Definition: pci_ids.h:3022
#define PCI_DID_INTEL_TGP_PREMIUM_Y_ESPI
Definition: pci_ids.h:2936
#define PCI_DID_INTEL_MCC_BASE_ESPI
Definition: pci_ids.h:2972
#define PCI_DID_INTEL_TGP_H_ESPI_Q570
Definition: pci_ids.h:2964
#define PCI_DID_INTEL_ADP_M_N_ESPI_25
Definition: pci_ids.h:3070
#define PCI_DID_INTEL_ICL_Y_PREMIUM_ESPI
Definition: pci_ids.h:2914
#define PCI_DID_INTEL_ADP_S_ESPI_10
Definition: pci_ids.h:3023
#define PCI_DID_INTEL_ADP_P_ESPI_6
Definition: pci_ids.h:2985
#define PCI_DID_INTEL_UPT_H_B365
Definition: pci_ids.h:2885
#define PCI_DID_INTEL_ADP_M_N_ESPI_1
Definition: pci_ids.h:3046
#define PCI_DID_INTEL_LWB_C621
Definition: pci_ids.h:2858
#define PCI_DID_INTEL_ADP_P_ESPI_18
Definition: pci_ids.h:2997
#define PCI_DID_INTEL_ADP_M_N_ESPI_8
Definition: pci_ids.h:3053
#define PCI_DID_INTEL_UPT_H_Z370
Definition: pci_ids.h:2883
#define PCI_DID_INTEL_SPT_H_CM238
Definition: pci_ids.h:2857
#define PCI_DID_INTEL_CMP_PREMIUM_U_LPC
Definition: pci_ids.h:2918
#define PCI_DID_INTEL_SPT_H_HM170
Definition: pci_ids.h:2853
#define PCI_DID_INTEL_ADP_P_ESPI_12
Definition: pci_ids.h:2991
#define PCI_DID_INTEL_ADP_P_ESPI_5
Definition: pci_ids.h:2984
#define PCI_DID_INTEL_CNP_H_LPC_B360
Definition: pci_ids.h:2903
#define PCI_DID_INTEL_MTL_ESPI_4
Definition: pci_ids.h:3083
#define PCI_DID_INTEL_TGP_H_ESPI_H510
Definition: pci_ids.h:2962
#define PCI_DID_INTEL_ADP_M_N_ESPI_5
Definition: pci_ids.h:3050
#define PCI_DID_INTEL_SPT_H_H170
Definition: pci_ids.h:2845
#define PCI_DID_INTEL_SPR_ESPI_1
Definition: pci_ids.h:3078
#define PCI_DID_INTEL_SPT_H_Q170
Definition: pci_ids.h:2847
#define PCI_DID_INTEL_UPT_H_Q250
Definition: pci_ids.h:2881
#define PCI_DID_INTEL_ADP_P_ESPI_21
Definition: pci_ids.h:3000
#define PCI_DID_INTEL_TGP_ESPI_8
Definition: pci_ids.h:2942
#define PCI_DID_INTEL_MTL_ESPI_0
Definition: pci_ids.h:3079
#define PCI_DID_INTEL_TGP_ESPI_25
Definition: pci_ids.h:2959
#define PCI_DID_INTEL_TGP_ESPI_11
Definition: pci_ids.h:2945
#define PCI_DID_INTEL_CNP_H_LPC_CM246
Definition: pci_ids.h:2908
#define PCI_DID_INTEL_ADP_P_ESPI_14
Definition: pci_ids.h:2993
#define PCI_DID_INTEL_TGP_PREMIUM_U_ESPI
Definition: pci_ids.h:2931
#define PCI_DID_INTEL_SPT_H_H110
Definition: pci_ids.h:2844
#define PCI_DID_INTEL_TGP_ESPI_0
Definition: pci_ids.h:2929
#define PCI_DID_INTEL_TGP_ESPI_12
Definition: pci_ids.h:2946
#define PCI_DID_INTEL_ADP_S_ESPI_0
Definition: pci_ids.h:3013
#define PCI_DID_INTEL_CNP_H_LPC_Q370
Definition: pci_ids.h:2902
#define PCI_DID_INTEL_ADP_S_ESPI_20
Definition: pci_ids.h:3033
#define PCI_DID_INTEL_JSP_SUPER_ESPI
Definition: pci_ids.h:2978
#define PCI_DID_INTEL_ADP_M_N_ESPI_7
Definition: pci_ids.h:3052
#define PCI_DID_INTEL_TGP_ESPI_18
Definition: pci_ids.h:2952
#define PCI_DID_INTEL_ADP_P_ESPI_20
Definition: pci_ids.h:2999
#define PCI_DID_INTEL_TGP_ESPI_13
Definition: pci_ids.h:2947
#define PCI_DID_INTEL_TGP_H_ESPI_WM590
Definition: pci_ids.h:2969
#define PCI_DID_INTEL_TGP_ESPI_4
Definition: pci_ids.h:2938
#define PCI_DID_INTEL_SPT_LP_U_BASE
Definition: pci_ids.h:2841
#define PCI_DID_INTEL_TGP_H_ESPI_B560
Definition: pci_ids.h:2961
#define PCI_DID_INTEL_LWB_C627_SUPER_1
Definition: pci_ids.h:2870
#define PCI_DID_INTEL_ADP_P_ESPI_2
Definition: pci_ids.h:2981
#define PCI_DID_INTEL_SPT_H_CM236
Definition: pci_ids.h:2854
#define PCI_DID_INTEL_CNP_H_LPC_Z390
Definition: pci_ids.h:2901
#define PCI_DID_INTEL_MTL_ESPI_6
Definition: pci_ids.h:3085
#define PCI_DID_INTEL_ADP_M_N_ESPI_16
Definition: pci_ids.h:3061
#define PCI_DID_INTEL_LWB_C621_SUPER
Definition: pci_ids.h:2871
#define PCI_DID_INTEL_ADP_P_ESPI_3
Definition: pci_ids.h:2982
#define PCI_VID_INTEL
Definition: pci_ids.h:2157
#define PCI_DID_INTEL_ADP_M_N_ESPI_20
Definition: pci_ids.h:3065
#define PCI_DID_INTEL_CNP_H_LPC_H310
Definition: pci_ids.h:2899
#define PCI_DID_INTEL_UPT_LP_SUPER_SKU
Definition: pci_ids.h:2889
#define PCI_DID_INTEL_ADP_P_ESPI_26
Definition: pci_ids.h:3005
#define PCI_DID_INTEL_SPT_H_QM175
Definition: pci_ids.h:2856
#define PCI_DID_INTEL_CMP_BASE_U_LPC
Definition: pci_ids.h:2919
#define PCI_DID_INTEL_LWB_C629A
Definition: pci_ids.h:2868
#define PCI_DID_INTEL_TGP_ESPI_19
Definition: pci_ids.h:2953
#define PCI_DID_INTEL_SPT_H_QM170
Definition: pci_ids.h:2852
#define PCI_DID_INTEL_ADP_M_N_ESPI_22
Definition: pci_ids.h:3067
#define PCI_DID_INTEL_ADP_S_ESPI_14
Definition: pci_ids.h:3027
#define PCI_DID_INTEL_ADP_M_N_ESPI_11
Definition: pci_ids.h:3056
#define PCI_DID_INTEL_LWB_C627
Definition: pci_ids.h:2863
#define PCI_DID_INTEL_CNL_BASE_U_LPC
Definition: pci_ids.h:2896
#define PCI_DID_INTEL_UPT_H_B250
Definition: pci_ids.h:2882
#define PCI_DID_INTEL_ADP_S_ESPI_24
Definition: pci_ids.h:3037
#define PCI_DID_INTEL_ADP_P_ESPI_24
Definition: pci_ids.h:3003
#define PCI_DID_INTEL_TGP_SUPER_Y_ESPI
Definition: pci_ids.h:2935
#define PCI_DID_INTEL_ADP_P_ESPI_15
Definition: pci_ids.h:2994
#define PCI_DID_INTEL_TGP_ESPI_21
Definition: pci_ids.h:2955
#define PCI_DID_INTEL_ICL_U_PREMIUM_ESPI
Definition: pci_ids.h:2911
#define PCI_DID_INTEL_ADP_P_ESPI_29
Definition: pci_ids.h:3008
#define PCI_DID_INTEL_ADP_S_ESPI_17
Definition: pci_ids.h:3030
#define PCI_DID_INTEL_LWB_C624
Definition: pci_ids.h:2860
#define PCI_DID_INTEL_ADP_S_ESPI_11
Definition: pci_ids.h:3024
#define PCI_DID_INTEL_TGP_H_ESPI_W580
Definition: pci_ids.h:2965
#define PCI_DID_INTEL_SPT_LP_U_BASE_HDCP22
Definition: pci_ids.h:2888
#define PCI_DID_INTEL_ICL_U_SUPER_U_ESPI
Definition: pci_ids.h:2909
#define PCI_DID_INTEL_ADP_S_ESPI_5
Definition: pci_ids.h:3018
#define PCI_DID_INTEL_ADP_P_ESPI_19
Definition: pci_ids.h:2998
#define PCI_DID_INTEL_UPT_H_Q270
Definition: pci_ids.h:2880
#define PCI_DID_INTEL_ADP_S_ESPI_2
Definition: pci_ids.h:3015
#define PCI_DID_INTEL_ADP_M_N_ESPI_19
Definition: pci_ids.h:3064
#define PCI_DID_INTEL_LWB_C621A
Definition: pci_ids.h:2866
#define PCI_DID_INTEL_ADP_S_ESPI_23
Definition: pci_ids.h:3036
#define PCI_DID_INTEL_MTL_ESPI_5
Definition: pci_ids.h:3084
#define PCI_DID_INTEL_SPT_LP_U_PREMIUM
Definition: pci_ids.h:2842
#define PCI_DID_INTEL_SPT_H_Q150
Definition: pci_ids.h:2848
#define PCI_DID_INTEL_ADP_S_ESPI_31
Definition: pci_ids.h:3044
#define PCI_DID_INTEL_ADP_M_N_ESPI_29
Definition: pci_ids.h:3074
#define PCI_DID_INTEL_ADP_S_ESPI_28
Definition: pci_ids.h:3041
#define PCI_DID_INTEL_ADP_P_ESPI_4
Definition: pci_ids.h:2983
#define PCI_DID_INTEL_SPT_LP_Y_PREMIUM
Definition: pci_ids.h:2843
#define PCI_DID_INTEL_CNP_H_LPC_C242
Definition: pci_ids.h:2905
#define PCI_DID_INTEL_ADP_S_ESPI_27
Definition: pci_ids.h:3040
#define PCI_DID_INTEL_CMP_H_LPC_QM480
Definition: pci_ids.h:2923
#define PCI_DID_INTEL_CNP_H_LPC_QM370
Definition: pci_ids.h:2906
#define PCI_DID_INTEL_ADP_M_N_ESPI_13
Definition: pci_ids.h:3058
#define PCI_DID_INTEL_SPT_LP_Y_PREMIUM_HDCP22
Definition: pci_ids.h:2886
#define PCI_DID_INTEL_TGP_ESPI_1
Definition: pci_ids.h:2933
#define PCI_DID_INTEL_TGP_ESPI_23
Definition: pci_ids.h:2957
#define PCI_DID_INTEL_TGP_ESPI_5
Definition: pci_ids.h:2939
#define IORESOURCE_RESERVE
Definition: resource.h:30
#define IORESOURCE_MEM
Definition: resource.h:10
#define IORESOURCE_ASSIGNED
Definition: resource.h:34
#define IORESOURCE_IO
Definition: resource.h:9
#define IORESOURCE_FIXED
Definition: resource.h:36
void scan_static_bus(struct device *bus)
Definition: root_device.c:89
const struct smm_save_state_ops *legacy_ops __weak
Definition: save_state.c:8
uintptr_t base
Definition: uart.c:17
void lpc_soc_init(struct device *dev)
Definition: lpc.c:10
static struct device_operations device_ops
Definition: lpc.c:127
static void pch_lpc_read_resources(struct device *dev)
Definition: lpc.c:72
__weak void pch_lpc_soc_fill_io_resources(struct device *dev)
Definition: lpc.c:20
static void pch_lpc_add_io_resources(struct device *dev)
Definition: lpc.c:35
static void pch_lpc_loop_resources(struct device *dev)
Definition: lpc.c:86
void pch_lpc_add_new_resource(struct device *dev, uint8_t offset, uintptr_t base, size_t size, unsigned long flags)
Definition: lpc.c:25
static const struct pci_driver pch_lpc __pci_driver
Definition: lpc.c:390
static const unsigned short pci_device_ids[]
Definition: lpc.c:140
static void pch_lpc_set_resources(struct device *dev)
Definition: lpc.c:112
static void pch_lpc_add_mmio_resources(struct device *dev)
Definition: lpc.c:60
static void pch_lpc_set_child_resources(struct device *dev)
Definition: lpc.c:101
static const char * lpc_acpi_name(const struct device *dev)
Definition: lpc.c:310
static unsigned long southbridge_write_acpi_tables(const struct device *device, unsigned long start, struct acpi_rsdp *rsdp)
Definition: lpc.c:761
unsigned short uint16_t
Definition: stdint.h:11
unsigned int uint32_t
Definition: stdint.h:14
unsigned long uintptr_t
Definition: stdint.h:21
unsigned char uint8_t
Definition: stdint.h:8
Definition: device.h:76
DEVTREE_CONST struct bus * next
Definition: device.h:80
DEVTREE_CONST struct device * children
Definition: device.h:79
void(* read_resources)(struct device *dev)
Definition: device.h:39
Definition: device.h:107
DEVTREE_CONST struct device * sibling
Definition: device.h:111
DEVTREE_CONST struct bus * link_list
Definition: device.h:139
DEVTREE_CONST struct resource * resource_list
Definition: device.h:134
unsigned long flags
Definition: resource.h:49
resource_t base
Definition: resource.h:45
resource_t size
Definition: resource.h:46
DEVTREE_CONST struct resource * next
Definition: resource.h:48