static bool spi_mem_internal_supports_op(struct spi_mem *mem, const struct spi_mem_op *op) { struct spi_controller *ctlr = mem->spi->controller; if (ctlr->mem_ops && ctlr->mem_ops->supports_op) return ctlr->mem_ops->supports_op(mem, op); return spi_mem_default_supports_op(mem, op); }
/** * spi_mem_supports_op() - Check if a memory device and the controller it is * connected to support a specific memory operation * @slave: the SPI device * @op: the memory operation to check * * Some controllers are only supporting Single or Dual IOs, others might only * support specific opcodes, or it can even be that the controller and device * both support Quad IOs but the hardware prevents you from using it because * only 2 IO lines are connected. * * This function checks whether a specific operation is supported. * * Return: true if @op is supported, false otherwise. */ bool spi_mem_supports_op(struct spi_slave *slave, const struct spi_mem_op *op) { struct udevice *bus = slave->dev->parent; struct dm_spi_ops *ops = spi_get_ops(bus); if (ops->mem_ops && ops->mem_ops->supports_op) return ops->mem_ops->supports_op(slave, op); return spi_mem_default_supports_op(slave, op); }