pico-ice
RaspberryPi Pico with an iCE40 FPGA
Loading...
Searching...
No Matches
ice_pmod.h
1/*
2 * MIT License
3 *
4 * Copyright (c) 2023 tinyVision.ai
5 *
6 * Permission is hereby granted, free of charge, to any person obtaining a copy
7 * of this software and associated documentation files (the "Software"), to deal
8 * in the Software without restriction, including without limitation the rights
9 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 * copies of the Software, and to permit persons to whom the Software is
11 * furnished to do so, subject to the following conditions:
12 *
13 * The above copyright notice and this permission notice shall be included in all
14 * copies or substantial portions of the Software.
15 *
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 * SOFTWARE.
23 */
24
36#pragma once
37#include <stdint.h>
38#include <stddef.h>
39#include <stdbool.h>
40
42 uint8_t io1, io2, io3, io4;
43};
44
46 uint8_t io1, io2, io3, io4;
47 uint8_t io7, io8, io9, io10;
48};
49
51 uint8_t cs_n, copi, cipo, clk;
52};
53
55 uint8_t cs_n, copi, cipo, clk;
56 uint8_t io7, io8, io9, io10;
57};
58
60 uint8_t cts, txd, rxd, rts;
61};
62
64 uint8_t cts, txd, rxd, rts;
65 uint8_t io7, io8, io9, io10;
66};
67
69 uint8_t dir, en, sa, sb;
70};
71
73 uint8_t dir1, en1, dir2, en2;
74};
75
77 uint8_t dir1, en1, s1a, s1b;
78 uint8_t dir2, en2, s2a, s2b;
79};
80
82 uint8_t irq, reset, sda, scl;
83};
84
86 uint8_t irq, reset, sda, scl;
87 uint8_t io7, io8, io9, io10;
88};
89
91 uint8_t lrclk, dac, adc, bclk;
92 uint8_t io7, io8, io9, io10;
93};
94
95typedef union pmod_1x {
96 struct pmod_1x_gpio gpio;
97 struct pmod_1x_spi spi;
98 struct pmod_1x_uart uart;
99 struct pmod_1x_hbridge_feedback hbridge_feedback;
100 struct pmod_1x_hbridge_dual hbridge_dual;
101 struct pmod_1x_i2c i2c;
102} pmod_1x_t;
103
104typedef union pmod_2x {
105 struct {
106 union pmod_1x top;
107 union pmod_1x bottom;
108 } row;
109 struct pmod_2x_gpio gpio;
110 struct pmod_2x_spi spi;
111 struct pmod_2x_uart uart;
112 struct pmod_2x_hbridge hbridge;
113 struct pmod_2x_i2c i2c;
114 struct pmod_2x_i2s i2s;
115} pmod_2x_t;
116
117static const pmod_2x_t ice_pmod_3 = {
118 .gpio = { 1, 3, 0, 2, 5, 7, 4, 6 }
119};
120
121static const pmod_2x_t ice_pmod_4 = {
122 .gpio = { 17, 19, 16, 18, 21, 23, 20, 22 }
123};
124
Definition ice_pmod.h:41
Definition ice_pmod.h:72
Definition ice_pmod.h:68
Definition ice_pmod.h:81
Definition ice_pmod.h:50
Definition ice_pmod.h:59
Definition ice_pmod.h:45
Definition ice_pmod.h:76
Definition ice_pmod.h:85
Definition ice_pmod.h:90
Definition ice_pmod.h:54
Definition ice_pmod.h:63
Definition ice_pmod.h:95
Definition ice_pmod.h:104