/* SPDX-License-Identifier: GPL-2.0-or-later */ #ifndef SOUTHBRIDGE_INTEL_LYNXPOINT_HSIO_H #define SOUTHBRIDGE_INTEL_LYNXPOINT_HSIO_H #include #include struct hsio_table_row { uint32_t addr; uint32_t and; uint32_t or; }; static inline void hsio_update(const uint32_t addr, const uint32_t and, const uint32_t or) { pch_iobp_update(addr, and, or); } static inline void hsio_update_row(const struct hsio_table_row row) { hsio_update(row.addr, row.and, row.or); } void hsio_xhci_shared_update(const uint32_t addr, const uint32_t and, const uint32_t or); void hsio_sata_shared_update(const uint32_t addr, const uint32_t and, const uint32_t or); static inline void hsio_sata_shared_update_row(const struct hsio_table_row row) { hsio_sata_shared_update(row.addr, row.and, row.or); } static inline void hsio_xhci_shared_update_row(const struct hsio_table_row row) { hsio_xhci_shared_update(row.addr, row.and, row.or); } void program_hsio_sata_lpt_h_cx(const bool is_mobile); void program_hsio_xhci_lpt_h_cx(void); void program_hsio_igbe_lpt_h_cx(void); void program_hsio_sata_lpt_lp_bx(const bool is_mobile); void program_hsio_xhci_lpt_lp_bx(void); void program_hsio_igbe_lpt_lp_bx(void); #endif