Skip to content

Commit

Permalink
<Mega AVR> Updated status code on HAL
Browse files Browse the repository at this point in the history
Issue: #265
  • Loading branch information
akashkollipara committed Jan 1, 2024
1 parent c33f791 commit 23db466
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 26 deletions.
22 changes: 11 additions & 11 deletions src/platform/mega_avr/common/hal/gpio/gpio.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ status_t gpio_pin_alloc(gpio_port_t *port, uint8_t portID, uint8_t pinID)
gpio_module_t *dp;
unsigned char flag;

RET_ON_FAIL(port, error_inval_pointer);
STATUS_CHECK_POINTER(port);

lock_acquire(&gpio_lock);
flag = 0;
Expand Down Expand Up @@ -62,7 +62,7 @@ status_t gpio_pin_alloc(gpio_port_t *port, uint8_t portID, uint8_t pinID)
status_t gpio_pin_mode(const gpio_port_t *port, gpio_mode_t mode)
{
uintptr_t pbaddr;
RET_ON_FAIL(port, error_inval_pointer);
STATUS_CHECK_POINTER(port);
uint8_t pin = port->pin;
pbaddr = port->pbaddr;

Expand All @@ -84,7 +84,7 @@ status_t gpio_pin_mode(const gpio_port_t *port, gpio_mode_t mode)

status_t gpio_pin_free(gpio_port_t *port)
{
RET_ON_FAIL(port, error_inval_pointer);
STATUS_CHECK_POINTER(port);
lock_acquire(&gpio_lock);
sysdbg4("Releasing GPIO Pin %d on Port, %d", port->pin, port->port);
port_status[port->port] &= ~(1 << port->pin);
Expand All @@ -97,21 +97,21 @@ status_t gpio_pin_free(gpio_port_t *port)

status_t gpio_pin_set(const gpio_port_t *port)
{
RET_ON_FAIL(port, error_inval_pointer);
STATUS_CHECK_POINTER(port);
MMIO8(port->pbaddr + PORT_OFFSET) |= (1 << port->pin);
return success;
}

status_t gpio_pin_clear(const gpio_port_t *port)
{
RET_ON_FAIL(port, error_inval_pointer);
STATUS_CHECK_POINTER(port);
MMIO8(port->pbaddr + PORT_OFFSET) &= ~(1 << port->pin);
return success;
}

status_t gpio_pin_toggle(const gpio_port_t *port)
{
RET_ON_FAIL(port, error_inval_pointer);
STATUS_CHECK_POINTER(port);
MMIO8(port->pbaddr + PORT_OFFSET) ^= (1 << port->pin);
return success;
}
Expand All @@ -128,7 +128,7 @@ status_t gpio_port_alloc(gpio_port_t *port, uint8_t portID)
gpio_module_t *dp;
unsigned char flag = 0;

RET_ON_FAIL(port, error_inval_pointer);
STATUS_CHECK_POINTER(port);

lock_acquire(&gpio_lock);
if(port_status[portID])
Expand Down Expand Up @@ -160,7 +160,7 @@ status_t gpio_port_alloc(gpio_port_t *port, uint8_t portID)
status_t gpio_port_mode(const gpio_port_t *port, gpio_mode_t mode)
{
uintptr_t pbaddr;
RET_ON_FAIL(port, error_inval_pointer);
STATUS_CHECK_POINTER(port);
uint8_t value = port->pin;
pbaddr = port->pbaddr;

Expand All @@ -182,7 +182,7 @@ status_t gpio_port_mode(const gpio_port_t *port, gpio_mode_t mode)

status_t gpio_port_free(gpio_port_t *port)
{
RET_ON_FAIL(port, error_inval_pointer);
STATUS_CHECK_POINTER(port);
lock_acquire(&gpio_lock);
sysdbg4("Releasing GPIO Port, %d", port->port);
port_status[port->port] = 0;
Expand All @@ -195,15 +195,15 @@ status_t gpio_port_free(gpio_port_t *port)

status_t gpio_port_write(const gpio_port_t *port, gpio_parallel_t val)
{
RET_ON_FAIL(port, error_inval_pointer);
STATUS_CHECK_POINTER(port);
// MegaAVR has 8-bit i/o modules, value to write should be 8-bit wide
MMIO8(port->pbaddr + PORT_OFFSET) = (uint8_t)(val & 0xff);
return success;
}

status_t gpio_port_read(const gpio_port_t *port, gpio_parallel_t *val)
{
RET_ON_FAIL(port, error_inval_pointer);
STATUS_CHECK_POINTER(port);
// MegaAVR has 8-bit i/o modules, value returned is 8-bit wide
*val = (gpio_parallel_t)MMIO8(port->pbaddr + PIN_OFFSET);
return success;
Expand Down
8 changes: 4 additions & 4 deletions src/platform/mega_avr/common/hal/timer/timer.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ status_t timer_setup(const timer_port_t *port, unsigned int mode, unsigned int p
{
status_t ret;
unsigned id;
RET_ON_FAIL(port, error_inval_pointer);
STATUS_CHECK_POINTER(port);
id = port->port_id & 0xf0;
ret = platform_clk_en(port->clk_id);
if(id == 0 || id == 0x20)
Expand Down Expand Up @@ -59,7 +59,7 @@ status_t timer_shutdown(const timer_port_t *port)
{
status_t ret = success;
unsigned id;
RET_ON_FAIL(port, error_inval_pointer);
STATUS_CHECK_POINTER(port);
id = port->port_id & 0xf0;
if(id == 0 || id == 0x20)
{
Expand All @@ -81,7 +81,7 @@ status_t timer_shutdown(const timer_port_t *port)
status_t timer_read(const timer_port_t *port, size_t *value)
{
unsigned id;
RET_ON_FAIL(port, error_inval_pointer);
STATUS_CHECK_POINTER(port);
id = port->port_id & 0xf0;
if(id == 0 || id == 0x20)
*value = timer8_read(port);
Expand All @@ -95,7 +95,7 @@ status_t timer_pwm_set(const timer_port_t *port, bool invert, size_t value)
{
status_t ret = success;
unsigned id;
RET_ON_FAIL(port, error_inval_pointer);
STATUS_CHECK_POINTER(port);
id = port->port_id & 0xf0;
if(id == 0 || id == 0x20)
{
Expand Down
16 changes: 8 additions & 8 deletions src/platform/mega_avr/common/hal/uart/uart.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
status_t uart_setup(uart_port_t *port, direction_t d, parity_t p)
{
status_t ret = success;
RET_ON_FAIL(port, error_inval_pointer);
STATUS_CHECK_POINTER(port);
MMIO8(port->baddr + UCSRA_OFFSET) = 0x00;
platform_clk_en(port->clk_id);
vret_t vres;
Expand Down Expand Up @@ -94,7 +94,7 @@ status_t uart_setup(uart_port_t *port, direction_t d, parity_t p)
status_t uart_shutdown(uart_port_t *port)
{
status_t ret = success;
RET_ON_FAIL(port, error_inval_pointer);
STATUS_CHECK_POINTER(port);
if(port->tx_irq)
{
ret |= uart_tx_int_dis(port);
Expand Down Expand Up @@ -140,7 +140,7 @@ bool uart_frame_error(const uart_port_t *port)

status_t uart_tx(const uart_port_t *port, const char data)
{
RET_ON_FAIL(port, error_inval_pointer);
STATUS_CHECK_POINTER(port);
while(!uart_buffer_available(port))
arch_nop();
MMIO8(port->baddr + UDR_OFFSET) = data;
Expand All @@ -149,7 +149,7 @@ status_t uart_tx(const uart_port_t *port, const char data)

status_t uart_rx(const uart_port_t *port, char *data)
{
RET_ON_FAIL(port, error_inval_pointer);
STATUS_CHECK_POINTER(port);
if(uart_frame_error(port))
return error_driver_data;
*data = MMIO8(port->baddr + UDR_OFFSET);
Expand All @@ -158,28 +158,28 @@ status_t uart_rx(const uart_port_t *port, char *data)

status_t uart_tx_int_en(const uart_port_t *port)
{
RET_ON_FAIL(port, error_inval_pointer);
STATUS_CHECK_POINTER(port);
MMIO8(port->baddr + UCSRB_OFFSET) |= (1 << TXCIE);
return success;
}

status_t uart_tx_int_dis(const uart_port_t *port)
{
RET_ON_FAIL(port, error_inval_pointer);
STATUS_CHECK_POINTER(port);
MMIO8(port->baddr + UCSRB_OFFSET) &= ~(1 << TXCIE);
return success;
}

status_t uart_rx_int_en(const uart_port_t *port)
{
RET_ON_FAIL(port, error_inval_pointer);
STATUS_CHECK_POINTER(port);
MMIO8(port->baddr + UCSRB_OFFSET) |= (1 << RXCIE);
return success;
}

status_t uart_rx_int_dis(const uart_port_t *port)
{
RET_ON_FAIL(port, error_inval_pointer);
STATUS_CHECK_POINTER(port);
MMIO8(port->baddr + UCSRB_OFFSET) &= ~(1 << RXCIE);
return success;
}
6 changes: 3 additions & 3 deletions src/platform/mega_avr/common/hal/wdt/wdt.c
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ status_t wdt_setup(const wdt_port_t *port)
{
status_t ret;
istate_t istate;
RET_ON_FAIL(port, error_inval_pointer);
STATUS_CHECK_POINTER(port);

if(port->wdt_handler == NULL)
return error_func_inval_arg;
Expand Down Expand Up @@ -93,7 +93,7 @@ status_t wdt_setup(const wdt_port_t *port)
status_t wdt_shutdown(const wdt_port_t *port)
{
istate_t istate;
RET_ON_FAIL(port, error_inval_pointer);
STATUS_CHECK_POINTER(port);
lock_acquire(&wdt_lock);
arch_di_save_state(&istate);
arch_wdt_reset();
Expand Down Expand Up @@ -123,7 +123,7 @@ status_t wdt_set_timeout(const wdt_port_t *port)
status_t ret = success;
uint8_t timeout;
istate_t istate;
RET_ON_FAIL(port, error_inval_pointer);
STATUS_CHECK_POINTER(port);
RET_ON_FAIL(port->timeout <= 9, error_driver_data);

timeout = get_timeout(port->timeout);
Expand Down

0 comments on commit 23db466

Please sign in to comment.