int isp1760_register(struct resource *mem, int irq, unsigned long irqflags,
#include <linux/gpio/consumer.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include "isp1760-core.h"
#include "isp1760-regs.h"
static void isp1760_init_core(struct isp1760_device *isp)
gpiod_set_value_cansleep(isp->rst_gpio, 1);
gpiod_set_value_cansleep(isp->rst_gpio, 0);
isp1760_write32(isp->regs, HC_RESET_REG, SW_RESET_RESET_ALL);
hwmode = HW_DATA_BUS_32BIT;
if (isp->devflags & ISP1760_FLAG_BUS_WIDTH_16)
hwmode &= ~HW_DATA_BUS_32BIT;
if (isp->devflags & ISP1760_FLAG_ANALOG_OC)
hwmode |= HW_ANA_DIGI_OC;
if (isp->devflags & ISP1760_FLAG_DACK_POL_HIGH)
hwmode |= HW_DACK_POL_HIGH;
if (isp->devflags & ISP1760_FLAG_DREQ_POL_HIGH)
hwmode |= HW_DREQ_POL_HIGH;
if (isp->devflags & ISP1760_FLAG_INTR_POL_HIGH)
hwmode |= HW_INTR_HIGH_ACT;
if (isp->devflags & ISP1760_FLAG_INTR_EDGE_TRIG)
hwmode |= HW_INTR_EDGE_TRIG;