Use BIT macro
Mostly done with the cocci script. macro.h was then added manually.
This commit is contained in:
		
				
					committed by
					
						 Jeremy Soller
						Jeremy Soller
					
				
			
			
				
	
			
			
			
						parent
						
							9a3ecba010
						
					
				
				
					commit
					720af4b2b0
				
			| @@ -6,6 +6,7 @@ | ||||
|  | ||||
| #include <board/cpu.h> | ||||
| #include <common/i2c.h> | ||||
| #include <common/macro.h> | ||||
|  | ||||
| #define TIMEOUT (F_CPU/1000) | ||||
|  | ||||
| @@ -15,10 +16,10 @@ int i2c_start(struct I2C * i2c, uint8_t addr, bool read) { | ||||
| 	// reset TWI control register | ||||
| 	TWCR = 0; | ||||
| 	// transmit START condition | ||||
| 	TWCR = (1<<TWINT) | (1<<TWSTA) | (1<<TWEN); | ||||
| 	TWCR = BIT(TWINT) | BIT(TWSTA) | BIT(TWEN); | ||||
| 	// wait for end of transmission | ||||
| 	count = TIMEOUT; | ||||
| 	while(!(TWCR & (1<<TWINT)) && count > 0) count -= 1; | ||||
| 	while(!(TWCR & BIT(TWINT)) && count > 0) count -= 1; | ||||
| 	if (count == 0) return -1; | ||||
|  | ||||
| 	// check if the start condition was successfully transmitted | ||||
| @@ -27,10 +28,10 @@ int i2c_start(struct I2C * i2c, uint8_t addr, bool read) { | ||||
| 	// load slave addr into data register | ||||
| 	TWDR = ((addr << 1) | read); | ||||
| 	// start transmission of addr | ||||
| 	TWCR = (1<<TWINT) | (1<<TWEN); | ||||
| 	TWCR = BIT(TWINT) | BIT(TWEN); | ||||
| 	// wait for end of transmission | ||||
| 	count = TIMEOUT; | ||||
| 	while(!(TWCR & (1<<TWINT)) && count > 0) count -= 1; | ||||
| 	while(!(TWCR & BIT(TWINT)) && count > 0) count -= 1; | ||||
| 	if (count == 0) return -1; | ||||
|  | ||||
| 	// check if the device has acknowledged the READ / WRITE mode | ||||
| @@ -42,7 +43,7 @@ int i2c_start(struct I2C * i2c, uint8_t addr, bool read) { | ||||
|  | ||||
| void i2c_stop(struct I2C * i2c) { | ||||
| 	// transmit STOP condition | ||||
| 	TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWSTO); | ||||
| 	TWCR = BIT(TWINT) | BIT(TWEN) | BIT(TWSTO); | ||||
| } | ||||
|  | ||||
| int i2c_write(struct I2C * i2c, uint8_t * data, int length) { | ||||
| @@ -51,10 +52,10 @@ int i2c_write(struct I2C * i2c, uint8_t * data, int length) { | ||||
| 		// load data into data register | ||||
| 		TWDR = data[i]; | ||||
| 		// start transmission of data | ||||
| 		TWCR = (1<<TWINT) | (1<<TWEN); | ||||
| 		TWCR = BIT(TWINT) | BIT(TWEN); | ||||
| 		// wait for end of transmission | ||||
| 		uint32_t count = TIMEOUT; | ||||
| 		while(!(TWCR & (1<<TWINT)) && count > 0) count -= 1; | ||||
| 		while(!(TWCR & BIT(TWINT)) && count > 0) count -= 1; | ||||
| 		// timed out | ||||
| 		if (count == 0) return -1; | ||||
| 		// failed to receive ack | ||||
| @@ -69,14 +70,14 @@ int i2c_read(struct I2C * i2c, uint8_t * data, int length) { | ||||
| 	for (i = 0; i < length; i++) { | ||||
| 	    if ((i + 1) < length) { | ||||
| 	    	// start TWI module and acknowledge data after reception | ||||
| 	    	TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWEA); | ||||
| 	    	TWCR = BIT(TWINT) | BIT(TWEN) | BIT(TWEA); | ||||
| 	    } else { | ||||
| 	        // start receiving without acknowledging reception | ||||
| 	    	TWCR = (1<<TWINT) | (1<<TWEN); | ||||
| 	    	TWCR = BIT(TWINT) | BIT(TWEN); | ||||
| 	    } | ||||
| 		// wait for end of transmission | ||||
| 		uint32_t count = TIMEOUT; | ||||
| 		while(!(TWCR & (1<<TWINT)) && count > 0) count -= 1; | ||||
| 		while(!(TWCR & BIT(TWINT)) && count > 0) count -= 1; | ||||
| 		if (count == 0) return -1; | ||||
| 		// return received data from TWDR | ||||
| 		data[i] = TWDR; | ||||
|   | ||||
| @@ -9,6 +9,7 @@ | ||||
|  | ||||
| #include <board/cpu.h> | ||||
| #include <arch/i2c_slave.h> | ||||
| #include <common/macro.h> | ||||
|  | ||||
| static void (* volatile i2c_slave_new_cb)() = NULL; | ||||
| static void (* volatile i2c_slave_recv_cb)(uint8_t) = NULL; | ||||
| @@ -28,7 +29,7 @@ void i2c_slave_init(uint8_t address, void (*new_cb)(), void (*recv_cb)(uint8_t), | ||||
| 	// load address into TWI address register | ||||
| 	TWAR = (address << 1); | ||||
| 	// set the TWCR to enable address matching and enable TWI, clear TWINT, enable TWI interrupt | ||||
| 	TWCR = (1<<TWIE) | (1<<TWEA) | (1<<TWINT) | (1<<TWEN); | ||||
| 	TWCR = BIT(TWIE) | BIT(TWEA) | BIT(TWINT) | BIT(TWEN); | ||||
|  | ||||
| 	// set interrupts | ||||
| 	sei(); | ||||
| @@ -39,7 +40,7 @@ void i2c_slave_stop(){ | ||||
| 	cli(); | ||||
|  | ||||
| 	// clear acknowledge and enable bits | ||||
| 	TWCR &= ~((1<<TWEA) | (1<<TWEN)); | ||||
| 	TWCR &= ~(BIT(TWEA) | BIT(TWEN)); | ||||
| 	// clear address | ||||
| 	TWAR = 0; | ||||
| 	// remove callbacks | ||||
| @@ -59,14 +60,14 @@ ISR(TWI_vect) { | ||||
| 		if (i2c_slave_new_cb != NULL) { | ||||
| 			i2c_slave_new_cb(); | ||||
| 		} | ||||
| 		TWCR = (1<<TWIE) | (1<<TWINT) | (1<<TWEA) | (1<<TWEN); | ||||
| 		TWCR = BIT(TWIE) | BIT(TWINT) | BIT(TWEA) | BIT(TWEN); | ||||
| 		break; | ||||
| 	case TW_SR_DATA_ACK: | ||||
| 		// received data from master, call the receive callback | ||||
| 		if(i2c_slave_send_cb != NULL){ | ||||
| 			i2c_slave_recv_cb(TWDR); | ||||
| 		} | ||||
| 		TWCR = (1<<TWIE) | (1<<TWINT) | (1<<TWEA) | (1<<TWEN); | ||||
| 		TWCR = BIT(TWIE) | BIT(TWINT) | BIT(TWEA) | BIT(TWEN); | ||||
| 		break; | ||||
| 	case TW_ST_SLA_ACK: | ||||
| 	case TW_ST_DATA_ACK: | ||||
| @@ -74,16 +75,16 @@ ISR(TWI_vect) { | ||||
| 		if(i2c_slave_recv_cb != NULL) { | ||||
| 			TWDR = i2c_slave_send_cb(); | ||||
| 		} | ||||
| 		TWCR = (1<<TWIE) | (1<<TWINT) | (1<<TWEA) | (1<<TWEN); | ||||
| 		TWCR = BIT(TWIE) | BIT(TWINT) | BIT(TWEA) | BIT(TWEN); | ||||
| 		break; | ||||
| 	case TW_BUS_ERROR: | ||||
| 		// some sort of erroneous state, prepare TWI to be readdressed | ||||
| 		printf("TWI_vect bus error\n"); | ||||
| 		TWCR = 0; | ||||
| 		TWCR = (1<<TWIE) | (1<<TWINT) | (1<<TWEA) | (1<<TWEN); | ||||
| 		TWCR = BIT(TWIE) | BIT(TWINT) | BIT(TWEA) | BIT(TWEN); | ||||
| 		break; | ||||
| 	default: | ||||
| 		TWCR = (1<<TWIE) | (1<<TWINT) | (1<<TWEA) | (1<<TWEN); | ||||
| 		TWCR = BIT(TWIE) | BIT(TWINT) | BIT(TWEA) | BIT(TWEN); | ||||
| 		break; | ||||
| 	} | ||||
| } | ||||
|   | ||||
| @@ -3,6 +3,8 @@ | ||||
| #ifndef _ARCH_GPIO_H | ||||
| #define _ARCH_GPIO_H | ||||
|  | ||||
| #include <common/macro.h> | ||||
|  | ||||
| #include <avr/io.h> | ||||
| #include <stdbool.h> | ||||
| #include <stdint.h> | ||||
| @@ -18,7 +20,7 @@ struct Gpio { | ||||
|     .pin = &PIN ## BLOCK, \ | ||||
|     .ddr = &DDR ## BLOCK, \ | ||||
|     .port = &PORT ## BLOCK, \ | ||||
|     .value = (1 << NUMBER), \ | ||||
|     .value = BIT(NUMBER), \ | ||||
| } | ||||
|  | ||||
| bool gpio_get(struct Gpio * gpio); | ||||
|   | ||||
| @@ -46,20 +46,20 @@ void gpio_init() { | ||||
|  | ||||
|     // Set GPIO data | ||||
|     // SYS_FAN | ||||
|     GPDRA = (1 << 3); | ||||
|     GPDRA = BIT(3); | ||||
|     GPDRB = 0x00; | ||||
|     GPDRC = 0x00; | ||||
|     // PWR_BTN#, SCI#, SMI# | ||||
|     GPDRD = (1 << 5) | (1 << 4) | (1 << 3); | ||||
|     GPDRD = BIT(5) | BIT(4) | BIT(3); | ||||
|     GPDRE = 0x00; | ||||
|     // H_PECI | ||||
|     GPDRF = (1 << 6); | ||||
|     GPDRF = BIT(6); | ||||
|     // AIRPLAN_LED# | ||||
|     GPDRG = (1 << 6); | ||||
|     GPDRG = BIT(6); | ||||
|     GPDRH = 0x00; | ||||
|     GPDRI = 0x00; | ||||
|     // LED_CAP#, LED_NUM#, LED_SCROLL#, KBC_MUTE# | ||||
|     GPDRJ = (1 << 5) | (1 << 4) | (1 << 3) | (1 << 1); | ||||
|     GPDRJ = BIT(5) | BIT(4) | BIT(3) | BIT(1); | ||||
|  | ||||
|     // Set GPIO control | ||||
|     // EC_PWM_LEDKB_P | ||||
|   | ||||
| @@ -42,28 +42,28 @@ void gpio_init() { | ||||
|     // Enable LPC reset on GPD2 | ||||
|     GCR = 0x04; | ||||
|     // Enable SMBus channel 4 | ||||
|     GCR15 = (1 << 4); | ||||
|     GCR15 = BIT(4); | ||||
|     // Set GPF2 and GPF3 to 3.3V | ||||
|     GCR20 = 0; | ||||
|  | ||||
|     // Set GPIO data | ||||
|     GPDRA = 0x00; | ||||
|     // XLP_OUT, PWR_SW# | ||||
|     GPDRB = (1 << 4) | (1 << 3); | ||||
|     GPDRB = BIT(4) | BIT(3); | ||||
|     GPDRC = 0x00; | ||||
|     // PWR_BTN#, SCI#, SMI# | ||||
|     GPDRD = (1 << 5) | (1 << 4) | (1 << 3); | ||||
|     GPDRD = BIT(5) | BIT(4) | BIT(3); | ||||
|     // PLVDD_RST_EC | ||||
|     GPDRE = (1 << 6); | ||||
|     GPDRE = BIT(6); | ||||
|     // EC_PECI | ||||
|     GPDRF = (1 << 6); | ||||
|     GPDRF = BIT(6); | ||||
|     // H_PROCHOT#_EC, LED_NUM# | ||||
|     GPDRG = (1 << 6) | (1 << 0); | ||||
|     GPDRG = BIT(6) | BIT(0); | ||||
|     // AIRPLAN_LED# | ||||
|     GPDRH = 0x80; // (1 << 7) | ||||
|     GPDRH = BIT(7); | ||||
|     GPDRI = 0x00; | ||||
|     // LED_SCROLL#, LED_CAP# | ||||
|     GPDRJ = (1 << 3) | (1 << 2); | ||||
|     GPDRJ = BIT(3) | BIT(2); | ||||
|  | ||||
|     // Set GPIO control | ||||
|     // EC_PWM_LEDKB_P | ||||
|   | ||||
| @@ -43,7 +43,7 @@ void gpio_init() { | ||||
|     // Enable LPC reset on GPD2 | ||||
|     GCR = 0x04; | ||||
|     // Enable SMBus channel 4 | ||||
|     GCR15 = (1 << 4); | ||||
|     GCR15 = BIT(4); | ||||
|     // Set GPF2 and GPF3 to 3.3V | ||||
|     GCR20 = 0; | ||||
|  | ||||
|   | ||||
| @@ -7,6 +7,7 @@ | ||||
| #include <board/kbled.h> | ||||
| #include <board/lid.h> | ||||
| #include <board/peci.h> | ||||
| #include <common/macro.h> | ||||
| #include <common/debug.h> | ||||
| #include <ec/pwm.h> | ||||
|  | ||||
| @@ -86,10 +87,10 @@ uint8_t acpi_read(uint8_t addr) { | ||||
|         case 0x03: | ||||
|             if (gpio_get(&LID_SW_N)) { | ||||
|                 // Lid is open | ||||
|                 data |= 1 << 0; | ||||
|                 data |= BIT(0); | ||||
|             } | ||||
|             if (lid_wake) { | ||||
|                 data |= 1 << 2; | ||||
|                 data |= BIT(2); | ||||
|             } | ||||
|             break; | ||||
|  | ||||
| @@ -99,11 +100,11 @@ uint8_t acpi_read(uint8_t addr) { | ||||
|         case 0x10: | ||||
|             if (!gpio_get(&ACIN_N)) { | ||||
|                 // AC adapter connected | ||||
|                 data |= 1 << 0; | ||||
|                 data |= BIT(0); | ||||
|             } | ||||
|             if (battery_status & BATTERY_INITIALIZED) { | ||||
|                 // BAT0 connected | ||||
|                 data |= 1 << 2; | ||||
|                 data |= BIT(2); | ||||
|             } | ||||
|             break; | ||||
|  | ||||
| @@ -117,7 +118,7 @@ uint8_t acpi_read(uint8_t addr) { | ||||
|                 // And battery is not fully charged | ||||
|                 if (battery_current != 0) { | ||||
|                     // Battery is charging | ||||
|                     data |= 1 << 1; | ||||
|                     data |= BIT(1); | ||||
|                 } | ||||
|             } | ||||
|             break; | ||||
| @@ -152,7 +153,7 @@ uint8_t acpi_read(uint8_t addr) { | ||||
|         // Airplane mode LED | ||||
|         case 0xD9: | ||||
|             if (!gpio_get(&LED_AIRPLANE_N)) { | ||||
|                 data |= (1 << 6); | ||||
|                 data |= BIT(6); | ||||
|             } | ||||
|             break; | ||||
| #endif // HAVE_LED_AIRPLANE_N | ||||
| @@ -178,7 +179,7 @@ void acpi_write(uint8_t addr, uint8_t data) { | ||||
|     switch (addr) { | ||||
|         // Lid state and other flags | ||||
|         case 0x03: | ||||
|             lid_wake = (bool)(data & (1 << 2)); | ||||
|             lid_wake = (bool)(data & BIT(2)); | ||||
|             break; | ||||
|  | ||||
|         case 0x68: | ||||
| @@ -196,7 +197,7 @@ void acpi_write(uint8_t addr, uint8_t data) { | ||||
| #if HAVE_LED_AIRPLANE_N | ||||
|         // Airplane mode LED | ||||
|         case 0xD9: | ||||
|             gpio_set(&LED_AIRPLANE_N, !(bool)(data & (1 << 6))); | ||||
|             gpio_set(&LED_AIRPLANE_N, !(bool)(data & BIT(6))); | ||||
|             break; | ||||
| #endif | ||||
|  | ||||
|   | ||||
| @@ -5,17 +5,18 @@ | ||||
|  | ||||
| #include <board/battery.h> | ||||
| #include <board/smbus.h> | ||||
| #include <common/macro.h> | ||||
| #include <common/debug.h> | ||||
|  | ||||
| // ChargeOption0 flags | ||||
| // Low Power Mode Enable | ||||
| #define SBC_EN_LWPWR        ((uint16_t)(1 << 15)) | ||||
| #define SBC_EN_LWPWR        ((uint16_t)(BIT(15))) | ||||
| // Watchdog Timer Adjust | ||||
| #define SBC_WDTMR_ADJ_175S  ((uint16_t)(0b11 << 13)) | ||||
| // Switching Frequency | ||||
| #define SBC_PWM_FREQ_800KHZ ((uint16_t)(0b01 << 8)) | ||||
| // IDCHG Amplifier Gain | ||||
| #define SBC_IDCHC_GAIN      ((uint16_t)(1 << 3)) | ||||
| #define SBC_IDCHC_GAIN      ((uint16_t)(BIT(3))) | ||||
|  | ||||
| // XXX: Assumption: ac_last is initialized high. | ||||
| static bool charger_enabled = false; | ||||
|   | ||||
| @@ -1,12 +1,13 @@ | ||||
| // SPDX-License-Identifier: GPL-3.0-only | ||||
|  | ||||
| #include <board/ecpm.h> | ||||
| #include <common/macro.h> | ||||
|  | ||||
| void ecpm_init(void) { | ||||
|     // Clock gate EGPC, CIR, and SWUC | ||||
|     CGCTRL2 |= (1 << 6) | (1 << 5) | (1 << 4); | ||||
|     CGCTRL2 |= BIT(6) | BIT(5) | BIT(4); | ||||
|     // Clock gate UART, SSPI, and DBGR | ||||
|     CGCTRL3 |= (1 << 2) | (1 << 1) | (1 << 0); | ||||
|     CGCTRL3 |= BIT(2) | BIT(1) | BIT(0); | ||||
|     // Clock gate CEC | ||||
|     CGCTRL4 |= (1 << 0); | ||||
|     CGCTRL4 |= BIT(0); | ||||
| } | ||||
|   | ||||
| @@ -3,6 +3,8 @@ | ||||
| #ifndef _BOARD_BATTERY_H | ||||
| #define _BOARD_BATTERY_H | ||||
|  | ||||
| #include <common/macro.h> | ||||
|  | ||||
| #include <stdbool.h> | ||||
| #include <stdint.h> | ||||
|  | ||||
| @@ -14,7 +16,7 @@ | ||||
|     #define CHARGER_ADDRESS 0x09 | ||||
| #endif | ||||
|  | ||||
| #define BATTERY_INITIALIZED (1U << 7) | ||||
| #define BATTERY_INITIALIZED BIT(7) | ||||
|  | ||||
| extern uint16_t battery_temp; | ||||
| extern uint16_t battery_voltage; | ||||
|   | ||||
| @@ -11,6 +11,7 @@ | ||||
| #include <board/lid.h> | ||||
| #include <board/pmc.h> | ||||
| #include <board/power.h> | ||||
| #include <common/macro.h> | ||||
| #include <common/debug.h> | ||||
|  | ||||
| // Default to not n-key rollover | ||||
| @@ -67,7 +68,7 @@ static uint8_t kbscan_get_row(int i) { | ||||
|  | ||||
|     // Set current line as output | ||||
|     if (i < 8) { | ||||
|         KSOLGOEN = 1 << i; | ||||
|         KSOLGOEN = BIT(i); | ||||
|         KSOHGOEN = 0; | ||||
| #if KM_OUT >= 17 | ||||
|         GPCRC3 = GPIO_IN; | ||||
| @@ -77,7 +78,7 @@ static uint8_t kbscan_get_row(int i) { | ||||
| #endif | ||||
|     } else if (i < 16) { | ||||
|         KSOLGOEN = 0; | ||||
|         KSOHGOEN = 1 << (i - 8); | ||||
|         KSOHGOEN = BIT((i - 8)); | ||||
| #if KM_OUT >= 17 | ||||
|         GPCRC3 = GPIO_IN; | ||||
| #endif | ||||
| @@ -104,10 +105,10 @@ static uint8_t kbscan_get_row(int i) { | ||||
| #endif | ||||
|     } | ||||
| #if KM_OUT >= 17 | ||||
|     GPDRC &= ~(1 << 3); | ||||
|     GPDRC &= ~BIT(3); | ||||
| #endif | ||||
| #if KM_OUT >= 18 | ||||
|     GPDRC &= ~(1 << 5); | ||||
|     GPDRC &= ~BIT(5); | ||||
| #endif | ||||
|  | ||||
|     // TODO: figure out optimal delay | ||||
| @@ -134,8 +135,8 @@ static uint8_t kbscan_get_real_keys(int row, uint8_t rowdata) { | ||||
|     for (uint8_t col = 0; col < KM_IN; col++) { | ||||
|         // This tests the default keymap intentionally, to avoid blanks in the | ||||
|         // dynamic keymap | ||||
|         if (KEYMAP[0][row][col] && (rowdata & (1 << col))) { | ||||
|             realdata |=  1 << col; | ||||
|         if (KEYMAP[0][row][col] && (rowdata & BIT(col))) { | ||||
|             realdata |=  BIT(col); | ||||
|         } | ||||
|     } | ||||
|  | ||||
| @@ -332,8 +333,8 @@ void kbscan_event(void) { | ||||
|             // A key was pressed or released | ||||
|             int j; | ||||
|             for (j = 0; j < KM_IN; j++) { | ||||
|                 bool new_b = new & (1 << j); | ||||
|                 bool last_b = last & (1 << j); | ||||
|                 bool new_b = new & BIT(j); | ||||
|                 bool last_b = last & BIT(j); | ||||
|                 if (new_b != last_b) { | ||||
|                     bool reset = false; | ||||
|  | ||||
| @@ -385,9 +386,9 @@ void kbscan_event(void) { | ||||
|                     // Reset bit to last state | ||||
|                     if (reset) { | ||||
|                         if (last_b) { | ||||
|                             new |= (1 << j); | ||||
|                             new |= BIT(j); | ||||
|                         } else { | ||||
|                             new &= ~(1 << j); | ||||
|                             new &= ~BIT(j); | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|   | ||||
| @@ -3,6 +3,7 @@ | ||||
| #include <arch/delay.h> | ||||
| #include <arch/time.h> | ||||
| #include <board/parallel.h> | ||||
| #include <common/macro.h> | ||||
| #include <ec/kbscan.h> | ||||
|  | ||||
| #include <stdbool.h> | ||||
| @@ -18,12 +19,12 @@ | ||||
|  * nWAIT    = KSOH[1] | ||||
|  */ | ||||
|  | ||||
| #define CTL_WRITE   (1 << 0) | ||||
| #define CTL_DATA    (1 << 1) | ||||
| #define CTL_RESET   (1 << 2) | ||||
| #define CTL_ADDR    (1 << 3) | ||||
| #define CTL_WRITE   BIT(0) | ||||
| #define CTL_DATA    BIT(1) | ||||
| #define CTL_RESET   BIT(2) | ||||
| #define CTL_ADDR    BIT(3) | ||||
|  | ||||
| #define STS_WAIT    (1 << 1) | ||||
| #define STS_WAIT    BIT(1) | ||||
|  | ||||
| // Maximum peripheral response time in ms | ||||
| #define PARALLEL_TIMEOUT 10 | ||||
|   | ||||
| @@ -59,7 +59,7 @@ static struct Fan __code FAN = { | ||||
|  | ||||
| void peci_init(void) { | ||||
|     // Allow PECI pin to be used | ||||
|     GCR2 |= (1 << 4); | ||||
|     GCR2 |= BIT(4); | ||||
|  | ||||
|     // Set frequency to 1MHz | ||||
|     HOCTL2R = 0x01; | ||||
| @@ -76,7 +76,7 @@ int peci_wr_pkg_config(uint8_t index, uint16_t param, uint32_t data) { | ||||
|     HOSTAR = HOSTAR; | ||||
|  | ||||
|     // Enable PECI, clearing data fifo's, enable AW_FCS | ||||
|     HOCTLR = (1 << 5) | (1 << 3) | (1 << 1); | ||||
|     HOCTLR = BIT(5) | BIT(3) | BIT(1); | ||||
|     // Set address to default | ||||
|     HOTRADDR = 0x30; | ||||
|     // Set write length | ||||
| @@ -106,7 +106,7 @@ int peci_wr_pkg_config(uint8_t index, uint16_t param, uint32_t data) { | ||||
|     while (HOSTAR & 1) {} | ||||
|  | ||||
|     int status = (int)HOSTAR; | ||||
|     if (status & (1 << 1)) { | ||||
|     if (status & BIT(1)) { | ||||
|         int cc = (int)HORDDR; | ||||
|         if (cc & 0x80) { | ||||
|             return -cc; | ||||
| @@ -137,7 +137,7 @@ uint8_t peci_get_fan_duty(void) { | ||||
|         HOSTAR = HOSTAR; | ||||
|  | ||||
|         // Enable PECI, clearing data fifo's | ||||
|         HOCTLR = (1 << 5) | (1 << 3); | ||||
|         HOCTLR = BIT(5) | BIT(3); | ||||
|         // Set address to default | ||||
|         HOTRADDR = 0x30; | ||||
|         // Set write length | ||||
| @@ -152,7 +152,7 @@ uint8_t peci_get_fan_duty(void) { | ||||
|         // Wait for completion | ||||
|         while (HOSTAR & 1) {} | ||||
|  | ||||
|         if (HOSTAR & (1 << 1)) { | ||||
|         if (HOSTAR & BIT(1)) { | ||||
|             // Use result if finished successfully | ||||
|             uint8_t low = HORDDR; | ||||
|             uint8_t high = HORDDR; | ||||
|   | ||||
| @@ -4,6 +4,7 @@ | ||||
| #include <board/acpi.h> | ||||
| #include <board/gpio.h> | ||||
| #include <board/pmc.h> | ||||
| #include <common/macro.h> | ||||
| #include <common/debug.h> | ||||
| #include <ec/espi.h> | ||||
|  | ||||
| @@ -54,7 +55,7 @@ static void pmc_sci_interrupt(void) { | ||||
|  | ||||
| bool pmc_sci(struct Pmc * pmc, uint8_t sci) { | ||||
|     // Set SCI pending bit | ||||
|     pmc_set_status(pmc, pmc_status(pmc) | (1 << 5)); | ||||
|     pmc_set_status(pmc, pmc_status(pmc) | BIT(5)); | ||||
|  | ||||
|     // Send SCI | ||||
|     pmc_sci_interrupt(); | ||||
| @@ -107,7 +108,7 @@ static void pmc_on_input_command(struct Pmc * pmc, uint8_t data) { | ||||
|     case 0x82: | ||||
|         TRACE("  burst enable\n"); | ||||
|         // Set burst bit | ||||
|         pmc_set_status(pmc, pmc_status(pmc) | (1 << 4)); | ||||
|         pmc_set_status(pmc, pmc_status(pmc) | BIT(4)); | ||||
|         // Send acknowledgement byte | ||||
|         state = PMC_STATE_WRITE; | ||||
|         state_data = 0x90; | ||||
| @@ -115,14 +116,14 @@ static void pmc_on_input_command(struct Pmc * pmc, uint8_t data) { | ||||
|     case 0x83: | ||||
|         TRACE("  burst disable\n"); | ||||
|         // Clear burst bit | ||||
|         pmc_set_status(pmc, pmc_status(pmc) & ~(1 << 4)); | ||||
|         pmc_set_status(pmc, pmc_status(pmc) & ~BIT(4)); | ||||
|         // Send SCI for IBF=0 | ||||
|         pmc_sci_interrupt(); | ||||
|         break; | ||||
|     case 0x84: | ||||
|         TRACE("  SCI queue\n"); | ||||
|         // Clear SCI pending bit | ||||
|         pmc_set_status(pmc, pmc_status(pmc) & ~(1 << 5)); | ||||
|         pmc_set_status(pmc, pmc_status(pmc) & ~BIT(5)); | ||||
|         // Send SCI queue | ||||
|         state = PMC_STATE_WRITE; | ||||
|         state_data = pmc_sci_queue; | ||||
|   | ||||
| @@ -2,6 +2,7 @@ | ||||
|  | ||||
| #include <stdint.h> | ||||
|  | ||||
| #include <common/macro.h> | ||||
| #include <common/debug.h> | ||||
| #include <ec/espi.h> | ||||
|  | ||||
| @@ -10,12 +11,12 @@ volatile uint8_t __xdata __at(0x1201) IHD; | ||||
| volatile uint8_t __xdata __at(0x1204) IBMAE; | ||||
| volatile uint8_t __xdata __at(0x1205) IBCTL; | ||||
| void e2ci_write(uint8_t port, uint8_t data) { | ||||
|     while (IBCTL & ((1 << 2) | (1 << 1))) {} | ||||
|     while (IBCTL & (BIT(2) | BIT(1))) {} | ||||
|     IHIOA = port; | ||||
|     IHD = data; | ||||
|     IBMAE = 1; | ||||
|     IBCTL = 1; | ||||
|     while (IBCTL & (1 << 2)) {} | ||||
|     while (IBCTL & BIT(2)) {} | ||||
|     IBMAE = 0; | ||||
|     IBCTL = 0; | ||||
| } | ||||
|   | ||||
| @@ -1,6 +1,7 @@ | ||||
| // SPDX-License-Identifier: GPL-3.0-only | ||||
|  | ||||
| #include <board/pwm.h> | ||||
| #include <common/macro.h> | ||||
|  | ||||
| void pwm_init(void) { | ||||
|     // Set T0CHSEL to TACH0A and T1CHSEL to TACH1A | ||||
| @@ -26,5 +27,5 @@ void pwm_init(void) { | ||||
|     DCR2 = 0; | ||||
|  | ||||
|     // Enable PWM | ||||
|     ZTIER = (1 << 1); | ||||
|     ZTIER = BIT(1); | ||||
| } | ||||
|   | ||||
| @@ -96,10 +96,10 @@ void smfi_init(void) { | ||||
|     HRAMW1AAS = 0x34; | ||||
|  | ||||
|     // Enable H2RAM window 0 and 1 using LPC I/O | ||||
|     HRAMWC |= (1 << 4) | (1 << 1) | (1 << 0); | ||||
|     HRAMWC |= BIT(4) | BIT(1) | BIT(0); | ||||
|  | ||||
|     // Enable backup ROM access | ||||
|     FLHCTRL3 |= (1 << 3); | ||||
|     FLHCTRL3 |= BIT(3); | ||||
| } | ||||
|  | ||||
| static enum Result cmd_print(void) { | ||||
| @@ -298,7 +298,7 @@ static enum Result cmd_spi(void) { | ||||
|  | ||||
| static enum Result cmd_reset(void) { | ||||
|     // Attempt to trigger watchdog reset | ||||
|     ETWCFG |= (1 << 5); | ||||
|     ETWCFG |= BIT(5); | ||||
|     EWDKEYR = 0; | ||||
|  | ||||
|     // Failed if it got this far | ||||
|   | ||||
| @@ -48,15 +48,15 @@ void gpio_init() { | ||||
|     // Set GPIO data | ||||
|     GPDRA = 0; | ||||
|     // NC | ||||
|     GPDRB = (1 << 0); | ||||
|     GPDRB = BIT(0); | ||||
|     GPDRC = 0; | ||||
|     // PWR_BTN#, SCI#, SMI# | ||||
|     GPDRD = (1 << 5) | (1 << 4) | (1 << 3); | ||||
|     GPDRD = BIT(5) | BIT(4) | BIT(3); | ||||
|     GPDRE = 0; | ||||
|     // USB_PWR_EN#, H_PECI | ||||
|     GPDRF = 0xC0; // (1 << 7) | (1 << 6) | ||||
|     GPDRF = BIT(7) | BIT(6); | ||||
|     // AIRPLAN_LED# | ||||
|     GPDRG = (1 << 6); | ||||
|     GPDRG = BIT(6); | ||||
|     GPDRH = 0; | ||||
|     GPDRI = 0; | ||||
|     GPDRJ = 0; | ||||
|   | ||||
| @@ -48,15 +48,15 @@ void gpio_init() { | ||||
|     // Set GPIO data | ||||
|     GPDRA = 0; | ||||
|     // NC | ||||
|     GPDRB = (1 << 0); | ||||
|     GPDRB = BIT(0); | ||||
|     GPDRC = 0; | ||||
|     // PWR_BTN#, SCI#, SMI# | ||||
|     GPDRD = (1 << 5) | (1 << 4) | (1 << 3); | ||||
|     GPDRD = BIT(5) | BIT(4) | BIT(3); | ||||
|     GPDRE = 0; | ||||
|     // USB_PWR_EN#, H_PECI | ||||
|     GPDRF = 0xC0; // (1 << 7) | (1 << 6) | ||||
|     GPDRF = BIT(7) | BIT(6); | ||||
|     // AIRPLAN_LED# | ||||
|     GPDRG = (1 << 6); | ||||
|     GPDRG = BIT(6); | ||||
|     GPDRH = 0; | ||||
|     GPDRI = 0; | ||||
|     GPDRJ = 0; | ||||
|   | ||||
| @@ -40,7 +40,7 @@ void gpio_init() { | ||||
|     // Enable LPC reset on GPD2 | ||||
|     GCR = 0x04; | ||||
|     // Enable SMBus channel 4 | ||||
|     GCR15 = (1 << 4); | ||||
|     GCR15 = BIT(4); | ||||
|     // Set GPF2 and GPF3 to 3.3V | ||||
|     GCR20 = 0; | ||||
|  | ||||
|   | ||||
| @@ -43,17 +43,17 @@ void gpio_init() { | ||||
|     // Enable LPC reset on GPD2 | ||||
|     GCR = 0x04; | ||||
|     // Enable SMBus channel 4 | ||||
|     GCR15 = (1 << 4); | ||||
|     GCR15 = BIT(4); | ||||
|     // Set GPF2 and GPF3 to 3.3V | ||||
|     GCR20 = 0; | ||||
|  | ||||
|     // Set GPIO data | ||||
|     GPDRA = 0; | ||||
|     GPDRB = (1 << 4) | (1 << 3); | ||||
|     GPDRB = BIT(4) | BIT(3); | ||||
|     GPDRC = 0; | ||||
|     GPDRD = (1 << 5) | (1 << 4) | (1 << 3); | ||||
|     GPDRE = (1 << 3); | ||||
|     GPDRF = (1 << 6); | ||||
|     GPDRD = BIT(5) | BIT(4) | BIT(3); | ||||
|     GPDRE = BIT(3); | ||||
|     GPDRF = BIT(6); | ||||
|     GPDRG = 0; | ||||
|     GPDRH = 0; | ||||
|     GPDRI = 0; | ||||
|   | ||||
| @@ -45,16 +45,16 @@ void gpio_init(void) { | ||||
|     GPDRB = 0x00; | ||||
|     GPDRC = 0x00; | ||||
|     // PWR_BTN#, SCI#, SMI# | ||||
|     GPDRD = (1U << 5) | (1U << 4) | (1U << 3); | ||||
|     GPDRD = BIT(5) | BIT(4) | BIT(3); | ||||
|     // AMP_EN | ||||
|     GPDRE = (1U << 1); | ||||
|     GPDRE = BIT(1); | ||||
|     // USB_PWR_EN#, H_PECI | ||||
|     GPDRF = (1U << 7) | (1U << 6); | ||||
|     GPDRF = BIT(7) | BIT(6); | ||||
|     // AIRPLAN_LED# | ||||
|     GPDRG = (1U << 6); | ||||
|     GPDRG = BIT(6); | ||||
|     GPDRH = 0x00; | ||||
|     // EC_AMP_EN | ||||
|     GPDRI = (1U << 5); | ||||
|     GPDRI = BIT(5); | ||||
|     GPDRJ = 0x00; | ||||
|  | ||||
|     // EC_SSD_LED# | ||||
|   | ||||
| @@ -41,7 +41,7 @@ void gpio_init() { | ||||
|     // Enable LPC reset on GPD2 | ||||
|     GCR = 0x04; | ||||
|     // Enable SMBus channel 4 | ||||
|     GCR15 = (1 << 4); | ||||
|     GCR15 = BIT(4); | ||||
|     // Set GPF2 and GPF3 to 3.3V | ||||
|     GCR20 = 0; | ||||
|  | ||||
|   | ||||
| @@ -3,6 +3,8 @@ | ||||
| #ifndef _COMMON_COMMAND_H | ||||
| #define _COMMON_COMMAND_H | ||||
|  | ||||
| #include <common/macro.h> | ||||
|  | ||||
| enum Command { | ||||
|     // Indicates that EC is ready to accept commands | ||||
|     CMD_NONE = 0, | ||||
| @@ -55,13 +57,13 @@ enum Result { | ||||
|  | ||||
| enum CommandSpiFlag { | ||||
|     // Read from SPI chip if set, write otherwise | ||||
|     CMD_SPI_FLAG_READ = (1 << 0), | ||||
|     CMD_SPI_FLAG_READ = BIT(0), | ||||
|     // Disable SPI chip after executing command | ||||
|     CMD_SPI_FLAG_DISABLE = (1 << 1), | ||||
|     CMD_SPI_FLAG_DISABLE = BIT(1), | ||||
|     // Run firmware from scratch RAM if necessary | ||||
|     CMD_SPI_FLAG_SCRATCH = (1 << 2), | ||||
|     CMD_SPI_FLAG_SCRATCH = BIT(2), | ||||
|     // Write to backup ROM instead | ||||
|     CMD_SPI_FLAG_BACKUP = (1 << 3), | ||||
|     CMD_SPI_FLAG_BACKUP = BIT(3), | ||||
| }; | ||||
|  | ||||
| #define CMD_LED_INDEX_ALL 0xFF | ||||
|   | ||||
| @@ -43,7 +43,7 @@ struct I2C __code I2C_4 = { | ||||
| void i2c_reset(struct I2C * i2c, bool kill) { | ||||
|     if (*(i2c->hosta) & HOSTA_BUSY) { | ||||
|         // Set kill bit | ||||
|         if (kill) *(i2c->hoctl) |= (1 << 1); | ||||
|         if (kill) *(i2c->hoctl) |= BIT(1); | ||||
|         // Wait for host to finish | ||||
|         while (*(i2c->hosta) & HOSTA_BUSY) {} | ||||
|     } | ||||
| @@ -63,7 +63,7 @@ int i2c_start(struct I2C * i2c, uint8_t addr, bool read) __reentrant { | ||||
|             // If we are switching to read mode | ||||
|             if (read) { | ||||
|                 // Enable direction switch | ||||
|                 *(i2c->hoctl2) |= (1 << 3) | (1 << 2); | ||||
|                 *(i2c->hoctl2) |= BIT(3) | BIT(2); | ||||
|             } else { | ||||
|                 // Unsupported! | ||||
|                 i2c_reset(i2c, true); | ||||
| @@ -74,7 +74,7 @@ int i2c_start(struct I2C * i2c, uint8_t addr, bool read) __reentrant { | ||||
|         i2c_reset(i2c, true); | ||||
|  | ||||
|         // Enable host controller with i2c compatibility | ||||
|         *(i2c->hoctl2) = (1 << 1) | 1; | ||||
|         *(i2c->hoctl2) = BIT(1) | BIT(0); | ||||
|  | ||||
|         // Set address | ||||
|         *(i2c->trasla) = (addr << 1) | read; | ||||
| @@ -85,7 +85,7 @@ int i2c_start(struct I2C * i2c, uint8_t addr, bool read) __reentrant { | ||||
|  | ||||
| void i2c_stop(struct I2C * i2c) { | ||||
|     // Disable i2c compatibility | ||||
|     *(i2c->hoctl2) &= ~(1 << 1); | ||||
|     *(i2c->hoctl2) &= ~BIT(1); | ||||
|     // Clear status | ||||
|     *(i2c->hosta) = *(i2c->hosta); | ||||
|  | ||||
| @@ -99,7 +99,7 @@ static int i2c_transaction(struct I2C * i2c, uint8_t * data, int length, bool re | ||||
|             // If last byte | ||||
|             if ((i + 1) == length) { | ||||
|                 // Set last byte bit | ||||
|                 *(i2c->hoctl) |= (1 << 5); | ||||
|                 *(i2c->hoctl) |= BIT(5); | ||||
|             } | ||||
|         } else { | ||||
|             // Write byte | ||||
| @@ -112,13 +112,13 @@ static int i2c_transaction(struct I2C * i2c, uint8_t * data, int length, bool re | ||||
|             *(i2c->hosta) = *(i2c->hosta); | ||||
|         } else { | ||||
|             // Start new transaction | ||||
|             *(i2c->hoctl) = (1 << 6) | (0b111 << 2); | ||||
|             *(i2c->hoctl) = BIT(6) | (0b111 << 2); | ||||
|         } | ||||
|  | ||||
|         // If we are waiting on direction switch | ||||
|         if (*(i2c->hoctl2) & (1 << 2)) { | ||||
|         if (*(i2c->hoctl2) & BIT(2)) { | ||||
|             // Complete direction switch | ||||
|             *(i2c->hoctl2) &= ~(1 << 2); | ||||
|             *(i2c->hoctl2) &= ~BIT(2); | ||||
|         } | ||||
|  | ||||
|         // Wait for byte done, timeout, or error | ||||
|   | ||||
| @@ -3,6 +3,8 @@ | ||||
| #ifndef _EC_GPIO_H | ||||
| #define _EC_GPIO_H | ||||
|  | ||||
| #include <common/macro.h> | ||||
|  | ||||
| #include <stdbool.h> | ||||
| #include <stdint.h> | ||||
|  | ||||
| @@ -17,7 +19,7 @@ struct Gpio { | ||||
|     .data = &GPDR ## BLOCK, \ | ||||
|     .mirror = &GPDMR ## BLOCK, \ | ||||
|     .control = &GPCR ## BLOCK ## NUMBER, \ | ||||
|     .value = (1 << NUMBER), \ | ||||
|     .value = BIT(NUMBER), \ | ||||
| } | ||||
|  | ||||
| bool gpio_get(struct Gpio * gpio); | ||||
|   | ||||
| @@ -3,6 +3,8 @@ | ||||
| #ifndef _EC_KBC_H | ||||
| #define _EC_KBC_H | ||||
|  | ||||
| #include <common/macro.h> | ||||
|  | ||||
| #include <stdbool.h> | ||||
| #include <stdint.h> | ||||
|  | ||||
| @@ -25,9 +27,9 @@ struct Kbc { | ||||
|  | ||||
| extern struct Kbc __code KBC; | ||||
|  | ||||
| #define KBC_STS_OBF (1 << 0) | ||||
| #define KBC_STS_IBF (1 << 1) | ||||
| #define KBC_STS_CMD (1 << 3) | ||||
| #define KBC_STS_OBF BIT(0) | ||||
| #define KBC_STS_IBF BIT(1) | ||||
| #define KBC_STS_CMD BIT(3) | ||||
|  | ||||
| uint8_t kbc_status(struct Kbc * kbc); | ||||
| uint8_t kbc_read(struct Kbc * kbc); | ||||
|   | ||||
| @@ -3,6 +3,8 @@ | ||||
| #ifndef _EC_PMC_H | ||||
| #define _EC_PMC_H | ||||
|  | ||||
| #include <common/macro.h> | ||||
|  | ||||
| #include <stdbool.h> | ||||
| #include <stdint.h> | ||||
|  | ||||
| @@ -23,9 +25,9 @@ extern struct Pmc __code PMC_3; | ||||
| extern struct Pmc __code PMC_4; | ||||
| extern struct Pmc __code PMC_5; | ||||
|  | ||||
| #define PMC_STS_OBF (1 << 0) | ||||
| #define PMC_STS_IBF (1 << 1) | ||||
| #define PMC_STS_CMD (1 << 3) | ||||
| #define PMC_STS_OBF BIT(0) | ||||
| #define PMC_STS_IBF BIT(1) | ||||
| #define PMC_STS_CMD BIT(3) | ||||
|  | ||||
| uint8_t pmc_status(struct Pmc * pmc); | ||||
| void pmc_set_status(struct Pmc * pmc, uint8_t status); | ||||
|   | ||||
| @@ -3,16 +3,18 @@ | ||||
| #ifndef _EC_SMBUS_H | ||||
| #define _EC_SMBUS_H | ||||
|  | ||||
| #include <common/macro.h> | ||||
|  | ||||
| #include <stdint.h> | ||||
|  | ||||
| #define HOSTA_BYTE_DONE (1 << 7) | ||||
| #define HOSTA_TIMEOUT (1 << 6) | ||||
| #define HOSTA_NACK (1 << 5) | ||||
| #define HOSTA_FAIL (1 << 4) | ||||
| #define HOSTA_BUS_ERR (1 << 3) | ||||
| #define HOSTA_DEV_ERR (1 << 2) | ||||
| #define HOSTA_FINISH (1 << 1) | ||||
| #define HOSTA_BUSY (1 << 0) | ||||
| #define HOSTA_BYTE_DONE BIT(7) | ||||
| #define HOSTA_TIMEOUT BIT(6) | ||||
| #define HOSTA_NACK BIT(5) | ||||
| #define HOSTA_FAIL BIT(4) | ||||
| #define HOSTA_BUS_ERR BIT(3) | ||||
| #define HOSTA_DEV_ERR BIT(2) | ||||
| #define HOSTA_FINISH BIT(1) | ||||
| #define HOSTA_BUSY BIT(0) | ||||
| #define HOSTA_ERR (HOSTA_TIMEOUT | HOSTA_NACK | HOSTA_FAIL | HOSTA_BUS_ERR | HOSTA_DEV_ERR) | ||||
|  | ||||
| // Host status for channel A | ||||
|   | ||||
| @@ -2,6 +2,7 @@ | ||||
|  | ||||
| #include <stdbool.h> | ||||
|  | ||||
| #include <common/macro.h> | ||||
| #include <ec/ps2.h> | ||||
|  | ||||
| #define PS2(NUM) { \ | ||||
| @@ -13,11 +14,11 @@ | ||||
|  | ||||
| #define PS2_TIMEOUT 10000 | ||||
|  | ||||
| #define PSSTS_TIMEOUT_ERR (1 << 6) | ||||
| #define PSSTS_FRAME_ERR (1 << 5) | ||||
| #define PSSTS_PARITY_ERR (1 << 4) | ||||
| #define PSSTS_TIMEOUT_ERR BIT(6) | ||||
| #define PSSTS_FRAME_ERR BIT(5) | ||||
| #define PSSTS_PARITY_ERR BIT(4) | ||||
| #define PSSTS_ALL_ERR (PSSTS_TIMEOUT_ERR | PSSTS_FRAME_ERR | PSSTS_PARITY_ERR) | ||||
| #define PSSTS_DONE (1 << 3) | ||||
| #define PSSTS_DONE BIT(3) | ||||
|  | ||||
| struct Ps2 __code PS2_1 = PS2(1); | ||||
| struct Ps2 __code PS2_2 = PS2(2); | ||||
|   | ||||
| @@ -35,7 +35,7 @@ struct I2C __code I2C_1 = { | ||||
| void i2c_reset(struct I2C * i2c, bool kill) { | ||||
|     if (*(i2c->hosta) & HOSTA_BUSY) { | ||||
|         // Set kill bit | ||||
|         if (kill) *(i2c->hoctl) |= (1 << 1); | ||||
|         if (kill) *(i2c->hoctl) |= BIT(1); | ||||
|         // Wait for host to finish | ||||
|         while (*(i2c->hosta) & HOSTA_BUSY) {} | ||||
|     } | ||||
| @@ -55,7 +55,7 @@ int i2c_start(struct I2C * i2c, uint8_t addr, bool read) __reentrant { | ||||
|             // If we are switching to read mode | ||||
|             if (read) { | ||||
|                 // Enable direction switch | ||||
|                 *(i2c->hoctl2) |= (1 << 3) | (1 << 2); | ||||
|                 *(i2c->hoctl2) |= BIT(3) | BIT(2); | ||||
|             } else { | ||||
|                 // Unsupported! | ||||
|                 i2c_reset(i2c, true); | ||||
| @@ -66,7 +66,7 @@ int i2c_start(struct I2C * i2c, uint8_t addr, bool read) __reentrant { | ||||
|         i2c_reset(i2c, true); | ||||
|  | ||||
|         // Enable host controller with i2c compatibility | ||||
|         *(i2c->hoctl2) = (1 << 1) | 1; | ||||
|         *(i2c->hoctl2) = BIT(1) | BIT(0); | ||||
|  | ||||
|         // Set address | ||||
|         *(i2c->trasla) = (addr << 1) | read; | ||||
| @@ -77,7 +77,7 @@ int i2c_start(struct I2C * i2c, uint8_t addr, bool read) __reentrant { | ||||
|  | ||||
| void i2c_stop(struct I2C * i2c) { | ||||
|     // Disable i2c compatibility | ||||
|     *(i2c->hoctl2) &= ~(1 << 1); | ||||
|     *(i2c->hoctl2) &= ~BIT(1); | ||||
|     // Clear status | ||||
|     *(i2c->hosta) = *(i2c->hosta); | ||||
|  | ||||
| @@ -91,7 +91,7 @@ static int i2c_transaction(struct I2C * i2c, uint8_t * data, int length, bool re | ||||
|             // If last byte | ||||
|             if ((i + 1) == length) { | ||||
|                 // Set last byte bit | ||||
|                 *(i2c->hoctl) |= (1 << 5); | ||||
|                 *(i2c->hoctl) |= BIT(5); | ||||
|             } | ||||
|         } else { | ||||
|             // Write byte | ||||
| @@ -104,13 +104,13 @@ static int i2c_transaction(struct I2C * i2c, uint8_t * data, int length, bool re | ||||
|             *(i2c->hosta) = *(i2c->hosta); | ||||
|         } else { | ||||
|             // Start new transaction | ||||
|             *(i2c->hoctl) = (1 << 6) | (0b111 << 2); | ||||
|             *(i2c->hoctl) = BIT(6) | (0b111 << 2); | ||||
|         } | ||||
|  | ||||
|         // If we are waiting on direction switch | ||||
|         if (*(i2c->hoctl2) & (1 << 2)) { | ||||
|         if (*(i2c->hoctl2) & BIT(2)) { | ||||
|             // Complete direction switch | ||||
|             *(i2c->hoctl2) &= ~(1 << 2); | ||||
|             *(i2c->hoctl2) &= ~BIT(2); | ||||
|         } | ||||
|  | ||||
|         // Wait for byte done, timeout, or error | ||||
|   | ||||
| @@ -3,6 +3,8 @@ | ||||
| #ifndef _EC_GPIO_H | ||||
| #define _EC_GPIO_H | ||||
|  | ||||
| #include <common/macro.h> | ||||
|  | ||||
| #include <stdbool.h> | ||||
| #include <stdint.h> | ||||
|  | ||||
| @@ -17,7 +19,7 @@ struct Gpio { | ||||
|     .data = &GPDR ## BLOCK, \ | ||||
|     .mirror = &GPDMR ## BLOCK, \ | ||||
|     .control = &GPCR ## BLOCK ## NUMBER, \ | ||||
|     .value = (1 << NUMBER), \ | ||||
|     .value = BIT(NUMBER), \ | ||||
| } | ||||
|  | ||||
| bool gpio_get(struct Gpio * gpio); | ||||
|   | ||||
| @@ -3,6 +3,8 @@ | ||||
| #ifndef _EC_KBC_H | ||||
| #define _EC_KBC_H | ||||
|  | ||||
| #include <common/macro.h> | ||||
|  | ||||
| #include <stdbool.h> | ||||
| #include <stdint.h> | ||||
|  | ||||
| @@ -25,9 +27,9 @@ struct Kbc { | ||||
|  | ||||
| extern struct Kbc __code KBC; | ||||
|  | ||||
| #define KBC_STS_OBF (1 << 0) | ||||
| #define KBC_STS_IBF (1 << 1) | ||||
| #define KBC_STS_CMD (1 << 3) | ||||
| #define KBC_STS_OBF BIT(0) | ||||
| #define KBC_STS_IBF BIT(1) | ||||
| #define KBC_STS_CMD BIT(3) | ||||
|  | ||||
| uint8_t kbc_status(struct Kbc * kbc); | ||||
| uint8_t kbc_read(struct Kbc * kbc); | ||||
|   | ||||
| @@ -3,6 +3,8 @@ | ||||
| #ifndef _EC_PMC_H | ||||
| #define _EC_PMC_H | ||||
|  | ||||
| #include <common/macro.h> | ||||
|  | ||||
| #include <stdbool.h> | ||||
| #include <stdint.h> | ||||
|  | ||||
| @@ -23,9 +25,9 @@ extern struct Pmc __code PMC_3; | ||||
| extern struct Pmc __code PMC_4; | ||||
| extern struct Pmc __code PMC_5; | ||||
|  | ||||
| #define PMC_STS_OBF (1 << 0) | ||||
| #define PMC_STS_IBF (1 << 1) | ||||
| #define PMC_STS_CMD (1 << 3) | ||||
| #define PMC_STS_OBF BIT(0) | ||||
| #define PMC_STS_IBF BIT(1) | ||||
| #define PMC_STS_CMD BIT(3) | ||||
|  | ||||
| uint8_t pmc_status(struct Pmc * pmc); | ||||
| void pmc_set_status(struct Pmc * pmc, uint8_t status); | ||||
|   | ||||
| @@ -3,16 +3,18 @@ | ||||
| #ifndef _EC_SMBUS_H | ||||
| #define _EC_SMBUS_H | ||||
|  | ||||
| #include <common/macro.h> | ||||
|  | ||||
| #include <stdint.h> | ||||
|  | ||||
| #define HOSTA_BYTE_DONE (1 << 7) | ||||
| #define HOSTA_TIMEOUT (1 << 6) | ||||
| #define HOSTA_NACK (1 << 5) | ||||
| #define HOSTA_FAIL (1 << 4) | ||||
| #define HOSTA_BUS_ERR (1 << 3) | ||||
| #define HOSTA_DEV_ERR (1 << 2) | ||||
| #define HOSTA_FINISH (1 << 1) | ||||
| #define HOSTA_BUSY (1 << 0) | ||||
| #define HOSTA_BYTE_DONE BIT(7) | ||||
| #define HOSTA_TIMEOUT BIT(6) | ||||
| #define HOSTA_NACK BIT(5) | ||||
| #define HOSTA_FAIL BIT(4) | ||||
| #define HOSTA_BUS_ERR BIT(3) | ||||
| #define HOSTA_DEV_ERR BIT(2) | ||||
| #define HOSTA_FINISH BIT(1) | ||||
| #define HOSTA_BUSY BIT(0) | ||||
| #define HOSTA_ERR (HOSTA_TIMEOUT | HOSTA_NACK | HOSTA_FAIL | HOSTA_BUS_ERR | HOSTA_DEV_ERR) | ||||
|  | ||||
| // Host status for channel A | ||||
|   | ||||
| @@ -2,6 +2,7 @@ | ||||
|  | ||||
| #include <stdbool.h> | ||||
|  | ||||
| #include <common/macro.h> | ||||
| #include <ec/ps2.h> | ||||
|  | ||||
| #define PS2(NUM) { \ | ||||
| @@ -13,11 +14,11 @@ | ||||
|  | ||||
| #define PS2_TIMEOUT 10000 | ||||
|  | ||||
| #define PSSTS_TIMEOUT_ERR (1 << 6) | ||||
| #define PSSTS_FRAME_ERR (1 << 5) | ||||
| #define PSSTS_PARITY_ERR (1 << 4) | ||||
| #define PSSTS_TIMEOUT_ERR BIT(6) | ||||
| #define PSSTS_FRAME_ERR BIT(5) | ||||
| #define PSSTS_PARITY_ERR BIT(4) | ||||
| #define PSSTS_ALL_ERR (PSSTS_TIMEOUT_ERR | PSSTS_FRAME_ERR | PSSTS_PARITY_ERR) | ||||
| #define PSSTS_DONE (1 << 3) | ||||
| #define PSSTS_DONE BIT(3) | ||||
|  | ||||
| struct Ps2 __code PS2_1 = PS2(1); | ||||
| struct Ps2 __code PS2_2 = PS2(2); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user