Lines Matching refs:xi
58 static int xilinx_open(xpgminfo_t *xi)
67 xi->olddir = val;
70 val |= (xi->PGMpin | xi->DINpin | xi->CCLKpin);
76 static int xilinx_close(xpgminfo_t *xi)
82 SBWRITECSR(A_GPIO_DIRECTION,(xi->olddir));
87 static int xilinx_reset(xpgminfo_t *xi)
92 SBWRITECSR(A_GPIO_PIN_CLR,(xi->PGMpin | xi->CCLKpin));
96 if (!(SBREADCSR(A_GPIO_READ) & (xi->INITpin))) break;
104 SBWRITECSR(A_GPIO_PIN_SET,(xi->PGMpin));
108 if ((SBREADCSR(A_GPIO_READ) & (xi->INITpin))) break;
118 int xilinx_program(xpgminfo_t *xi,uint8_t *configBits, int nofBits)
123 if (xilinx_open(xi)) {
127 rc = xilinx_reset(xi);
129 xilinx_close(xi);
141 SBWRITECSR(A_GPIO_PIN_SET,xi->DINpin);
144 SBWRITECSR(A_GPIO_PIN_CLR,xi->DINpin);
146 SBWRITECSR(A_GPIO_PIN_CLR,xi->CCLKpin);
147 SBWRITECSR(A_GPIO_PIN_SET,xi->CCLKpin);
152 if (!(SBREADCSR(A_GPIO_READ) & xi->INITpin)) {
153 xilinx_close(xi);
165 if (!(SBREADCSR(A_GPIO_READ) & xi->DONEpin)) {
167 SBWRITECSR(A_GPIO_PIN_SET,xi->DINpin);
169 SBWRITECSR(A_GPIO_PIN_CLR,xi->CCLKpin);
170 SBWRITECSR(A_GPIO_PIN_SET,xi->CCLKpin);
174 if (!(SBREADCSR(A_GPIO_READ) & xi->DONEpin)) {
175 xilinx_close(xi);
179 xilinx_close(xi);