static void cs_assert(struct driver_data *drv_data) { struct chip_data *chip = drv_data->cur_chip; if (drv_data->ssp_type == CE4100_SSP) { write_SSSR(drv_data->cur_chip->frm, drv_data->ioaddr); return; } if (chip->cs_control) { chip->cs_control(PXA2XX_CS_ASSERT); return; } if (gpio_is_valid(chip->gpio_cs)) { gpio_set_value(chip->gpio_cs, chip->gpio_cs_inverted); return; } if (drv_data->ssp_type == INTEL_SSP) { write_SSFS((1 << chip->chip_select), drv_data->ioaddr); return; } lpss_ssp_cs_control(drv_data, true); }
static void cs_deassert(struct driver_data *drv_data) { struct chip_data *chip = drv_data->cur_chip; if (drv_data->ssp_type == CE4100_SSP) return; if (chip->cs_control) { chip->cs_control(PXA2XX_CS_DEASSERT); return; } if (gpio_is_valid(chip->gpio_cs)) { gpio_set_value(chip->gpio_cs, !chip->gpio_cs_inverted); return; } lpss_ssp_cs_control(drv_data, false); }
static void cs_assert(struct driver_data *drv_data) { struct chip_data *chip = drv_data->cur_chip; if (drv_data->ssp_type == CE4100_SSP) { pxa2xx_spi_write(drv_data, SSSR, drv_data->cur_chip->frm); return; } if (chip->cs_control) { chip->cs_control(PXA2XX_CS_ASSERT); return; } if (gpio_is_valid(chip->gpio_cs)) { gpio_set_value(chip->gpio_cs, chip->gpio_cs_inverted); return; } if (is_lpss_ssp(drv_data)) lpss_ssp_cs_control(drv_data, true); }