ee3dc2786019545babb79e59f08e9d0b458e52a8
[openwrt/openwrt.git] / target / linux / mediatek / patches-6.6 / 434-drivers-spi-mt65xx-Add-controller-s-calibration-para.patch
1 From d278c7a0bf730318a7ccf8d0a8b434c813e23fd0 Mon Sep 17 00:00:00 2001
2 From: "SkyLake.Huang" <skylake.huang@mediatek.com>
3 Date: Thu, 23 Jun 2022 18:39:03 +0800
4 Subject: [PATCH 4/6] drivers: spi-mt65xx: Add controller's calibration
5 paramter
6
7 Signed-off-by: SkyLake.Huang <skylake.huang@mediatek.com>
8 ---
9 drivers/spi/spi-mt65xx.c | 16 ++++++++++++++++
10 1 file changed, 16 insertions(+)
11
12 --- a/drivers/spi/spi-mt65xx.c
13 +++ b/drivers/spi/spi-mt65xx.c
14 @@ -832,6 +832,21 @@ static irqreturn_t mtk_spi_interrupt(int
15 return IRQ_HANDLED;
16 }
17
18 +static int mtk_spi_append_caldata(struct spi_controller *ctlr)
19 +{
20 + struct spi_cal_target *cal_target = kmalloc(sizeof(*cal_target), GFP_KERNEL);
21 + struct mtk_spi *mdata = spi_master_get_devdata(ctlr);
22 +
23 + cal_target->cal_item = &mdata->get_tick_dly;
24 + cal_target->cal_min = 0;
25 + cal_target->cal_max = 7;
26 + cal_target->step = 1;
27 +
28 + list_add(&cal_target->list, ctlr->cal_target);
29 +
30 + return 0;
31 +}
32 +
33 static int mtk_spi_mem_adjust_op_size(struct spi_mem *mem,
34 struct spi_mem_op *op)
35 {
36 @@ -1122,6 +1137,7 @@ static int mtk_spi_probe(struct platform
37 master->setup = mtk_spi_setup;
38 master->set_cs_timing = mtk_spi_set_hw_cs_timing;
39 master->use_gpio_descriptors = true;
40 + master->append_caldata = mtk_spi_append_caldata;
41
42 mdata = spi_master_get_devdata(master);
43 mdata->dev_comp = device_get_match_data(dev);