/* SPDX-License-Identifier: GPL-2.0-or-later */ #ifndef SUPERIO_ITE_IT8772F_H #define SUPERIO_ITE_IT8772F_H #define IT8772F_FDC 0x00 /* Floppy disk controller */ #define IT8772F_SP1 0x01 /* Com1 */ #define IT8772F_EC 0x04 /* Environment controller */ #define IT8772F_KBCK 0x05 /* Keyboard */ #define IT8772F_KBCM 0x06 /* Mouse */ #define IT8772F_GPIO 0x07 /* GPIO */ #define IT8772F_IR 0x0a /* Consumer IR */ /* GPIO interface */ #define IT8772F_GPIO_LED_BLINK1_PINMAP 0xf8 #define SIO_GPIO_BLINK_GPIO10 0x08 #define SIO_GPIO_BLINK_GPIO22 0x12 #define SIO_GPIO_BLINK_GPIO45 0x25 #define IT8772F_GPIO_LED_BLINK1_CONTROL 0xf9 #define IT8772F_GPIO_BLINK_FREQUENCY_4_HZ (0<<1) #define IT8772F_GPIO_BLINK_FREQUENCY_1_HZ (1<<1) #define IT8772F_GPIO_BLINK_FREQUENCY_1_4_HZ (2<<1) #define IT8772F_GPIO_BLINK_FREQUENCY_1_8_HZ (3<<1) #define GPIO_REG_SELECT(x) (0x25 + (x)) /* GPIO Polarity Select: 1: Inverting, 0: Non-inverting */ #define GPIO_REG_POLARITY(x) (0xb0 + (x)) /* GPIO Internal Pull-up: 1: Enable, 0: Disable */ #define GPIO_REG_PULLUP(x) (0xb8 + (x)) /* GPIO Function Select: 1: Simple I/O, 0: Alternate function */ #define GPIO_REG_ENABLE(x) (0xc0 + (x)) /* GPIO Mode: 0: input mode, 1: output mode */ #define GPIO_REG_OUTPUT(x) (0xc8 + (x)) #include #include void it8772f_gpio_setup(pnp_devfn_t dev, int set, u8 select, u8 polarity, u8 pullup, u8 output, u8 enable); void it8772f_gpio_led(pnp_devfn_t dev, int set, u8 select, u8 polarity, u8 pullup, u8 output, u8 enable, u8 led_pin_map, u8 led_freq); #endif /* SUPERIO_ITE_IT8772F_H */