Felix Held | 3f3eca9 | 2020-01-23 17:12:32 +0100 | [diff] [blame] | 1 | /* SPDX-License-Identifier: GPL-2.0-or-later */ |
Stefan Reinauer | b0dd1d9 | 2012-03-30 15:04:07 -0700 | [diff] [blame] | 2 | |
Edward O'Callaghan | 1b3acb1 | 2014-06-01 18:04:05 +1000 | [diff] [blame] | 3 | #ifndef SUPERIO_ITE_IT8772F_H |
| 4 | #define SUPERIO_ITE_IT8772F_H |
Stefan Reinauer | b0dd1d9 | 2012-03-30 15:04:07 -0700 | [diff] [blame] | 5 | |
Stefan Reinauer | b0dd1d9 | 2012-03-30 15:04:07 -0700 | [diff] [blame] | 6 | #define IT8772F_FDC 0x00 /* Floppy disk controller */ |
| 7 | #define IT8772F_SP1 0x01 /* Com1 */ |
| 8 | #define IT8772F_EC 0x04 /* Environment controller */ |
| 9 | #define IT8772F_KBCK 0x05 /* Keyboard */ |
| 10 | #define IT8772F_KBCM 0x06 /* Mouse */ |
| 11 | #define IT8772F_GPIO 0x07 /* GPIO */ |
| 12 | #define IT8772F_IR 0x0a /* Consumer IR */ |
| 13 | |
Stefan Reinauer | b0dd1d9 | 2012-03-30 15:04:07 -0700 | [diff] [blame] | 14 | |
| 15 | /* GPIO interface */ |
| 16 | #define IT8772F_GPIO_LED_BLINK1_PINMAP 0xf8 |
david | 80ef7b7 | 2015-01-19 17:11:36 +0800 | [diff] [blame] | 17 | |
| 18 | #define SIO_GPIO_BLINK_GPIO10 0x08 |
Matt DeVillier | a5b528f | 2016-11-16 15:07:52 -0600 | [diff] [blame] | 19 | #define SIO_GPIO_BLINK_GPIO22 0x12 |
david | 80ef7b7 | 2015-01-19 17:11:36 +0800 | [diff] [blame] | 20 | #define SIO_GPIO_BLINK_GPIO45 0x25 |
| 21 | |
Stefan Reinauer | b0dd1d9 | 2012-03-30 15:04:07 -0700 | [diff] [blame] | 22 | #define IT8772F_GPIO_LED_BLINK1_CONTROL 0xf9 |
| 23 | |
david | 80ef7b7 | 2015-01-19 17:11:36 +0800 | [diff] [blame] | 24 | #define IT8772F_GPIO_BLINK_FREQUENCY_4_HZ (0<<1) |
| 25 | #define IT8772F_GPIO_BLINK_FREQUENCY_1_HZ (1<<1) |
| 26 | #define IT8772F_GPIO_BLINK_FREQUENCY_1_4_HZ (2<<1) |
| 27 | #define IT8772F_GPIO_BLINK_FREQUENCY_1_8_HZ (3<<1) |
| 28 | |
Stefan Reinauer | b0dd1d9 | 2012-03-30 15:04:07 -0700 | [diff] [blame] | 29 | #define GPIO_REG_SELECT(x) (0x25 + (x)) |
david | 80ef7b7 | 2015-01-19 17:11:36 +0800 | [diff] [blame] | 30 | |
| 31 | /* GPIO Polarity Select: 1: Inverting, 0: Non-inverting */ |
Stefan Reinauer | b0dd1d9 | 2012-03-30 15:04:07 -0700 | [diff] [blame] | 32 | #define GPIO_REG_POLARITY(x) (0xb0 + (x)) |
david | 80ef7b7 | 2015-01-19 17:11:36 +0800 | [diff] [blame] | 33 | |
Martin Roth | 26f97f9 | 2021-10-01 14:53:22 -0600 | [diff] [blame] | 34 | /* GPIO Internal Pull-up: 1: Enable, 0: Disable */ |
Stefan Reinauer | b0dd1d9 | 2012-03-30 15:04:07 -0700 | [diff] [blame] | 35 | #define GPIO_REG_PULLUP(x) (0xb8 + (x)) |
david | 80ef7b7 | 2015-01-19 17:11:36 +0800 | [diff] [blame] | 36 | |
Elyes HAOUAS | 6de6571 | 2018-08-07 12:12:58 +0200 | [diff] [blame] | 37 | /* GPIO Function Select: 1: Simple I/O, 0: Alternate function */ |
Stefan Reinauer | b0dd1d9 | 2012-03-30 15:04:07 -0700 | [diff] [blame] | 38 | #define GPIO_REG_ENABLE(x) (0xc0 + (x)) |
david | 80ef7b7 | 2015-01-19 17:11:36 +0800 | [diff] [blame] | 39 | |
| 40 | /* GPIO Mode: 0: input mode, 1: output mode */ |
Stefan Reinauer | b0dd1d9 | 2012-03-30 15:04:07 -0700 | [diff] [blame] | 41 | #define GPIO_REG_OUTPUT(x) (0xc8 + (x)) |
| 42 | |
Kyösti Mälkki | 3855c01 | 2019-03-03 08:45:19 +0200 | [diff] [blame] | 43 | #include <device/pnp_type.h> |
Edward O'Callaghan | 1f9653a | 2014-07-14 16:31:25 +1000 | [diff] [blame] | 44 | #include <stdint.h> |
| 45 | |
Edward O'Callaghan | 85836c2 | 2014-07-09 20:26:25 +1000 | [diff] [blame] | 46 | void it8772f_gpio_setup(pnp_devfn_t dev, int set, u8 select, u8 polarity, |
Edward O'Callaghan | 1f9653a | 2014-07-14 16:31:25 +1000 | [diff] [blame] | 47 | u8 pullup, u8 output, u8 enable); |
| 48 | |
david | 80ef7b7 | 2015-01-19 17:11:36 +0800 | [diff] [blame] | 49 | void it8772f_gpio_led(pnp_devfn_t dev, int set, u8 select, u8 polarity, u8 pullup, |
| 50 | u8 output, u8 enable, u8 led_pin_map, u8 led_freq); |
| 51 | |
Edward O'Callaghan | 1b3acb1 | 2014-06-01 18:04:05 +1000 | [diff] [blame] | 52 | #endif /* SUPERIO_ITE_IT8772F_H */ |