| /* |
| * Copyright (c) 2021 Antmicro <www.antmicro.com> |
| * |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| #include <zephyr/kernel.h> |
| #include <zephyr/shell/shell.h> |
| #include <zephyr/device.h> |
| #include <zephyr/sys/printk.h> |
| #include <zephyr/drivers/fpga.h> |
| #include "redled.h" |
| #include "greenled.h" |
| #include <eoss3_dev.h> |
| |
| const struct device *const fpga = DEVICE_DT_GET(DT_NODELABEL(fpga0)); |
| |
| void main(void) |
| { |
| IO_MUX->PAD_21_CTRL = (PAD_E_4MA | PAD_P_PULLDOWN | PAD_OEN_NORMAL | |
| PAD_SMT_DISABLE | PAD_REN_DISABLE | PAD_SR_SLOW | |
| PAD_CTRL_SEL_AO_REG); /* Enable red led */ |
| IO_MUX->PAD_22_CTRL = (PAD_E_4MA | PAD_P_PULLDOWN | PAD_OEN_NORMAL | |
| PAD_SMT_DISABLE | PAD_REN_DISABLE | PAD_SR_SLOW | |
| PAD_CTRL_SEL_AO_REG); /* Enable green led */ |
| |
| #if CONFIG_SHELL |
| printk("Address of the bitstream (red): %p\n", &axFPGABitStream_red); |
| printk("Address of the bitstream (green): %p\n", &axFPGABitStream_green); |
| printk("Size of the bitstream (red): %d\n", sizeof(axFPGABitStream_red)); |
| printk("Size of the bitstream (green): %d\n", sizeof(axFPGABitStream_green)); |
| #else |
| |
| if (!device_is_ready(fpga)) { |
| printk("fpga device is not ready\n"); |
| } |
| |
| while (1) { |
| fpga_load(fpga, axFPGABitStream_red, |
| sizeof(axFPGABitStream_red)); |
| k_msleep(2000); |
| fpga_reset(fpga); |
| fpga_load(fpga, axFPGABitStream_green, |
| sizeof(axFPGABitStream_green)); |
| k_msleep(2000); |
| fpga_reset(fpga); |
| } |
| #endif |
| } |