1 /* SPDX-License-Identifier: GPL-2.0-only */
3 #include <acpi/acpigen.h>
5 static int acpigen_soc_gpio_op(const char *op
, unsigned int gpio_num
)
8 acpigen_emit_namestring(op
);
9 acpigen_write_integer(gpio_num
);
13 static int acpigen_soc_get_gpio_state(const char *op
, unsigned int gpio_num
)
15 /* Store (op (gpio_num), Local0) */
16 acpigen_write_store();
17 acpigen_soc_gpio_op(op
, gpio_num
);
18 acpigen_emit_byte(LOCAL0_OP
);
22 int acpigen_soc_read_rx_gpio(unsigned int gpio_num
)
24 return acpigen_soc_get_gpio_state("\\_SB.PCI0.GRXS", gpio_num
);
27 int acpigen_soc_get_tx_gpio(unsigned int gpio_num
)
29 return acpigen_soc_get_gpio_state("\\_SB.PCI0.GTXS", gpio_num
);
32 int acpigen_soc_set_tx_gpio(unsigned int gpio_num
)
34 return acpigen_soc_gpio_op("\\_SB.PCI0.STXS", gpio_num
);
37 int acpigen_soc_clear_tx_gpio(unsigned int gpio_num
)
39 return acpigen_soc_gpio_op("\\_SB.PCI0.CTXS", gpio_num
);