* [PATCH 0/5] spi support for Exynos Auto v9 SoC [not found] <CGME20220627064931epcas2p1944df2c6c54339de17e32c7116837f52@epcas2p1.samsung.com> @ 2022-06-27 6:47 ` Chanho Park [not found] ` <CGME20220627064931epcas2p4d90034c1fe583a3460f0e4613e83e6d0@epcas2p4.samsung.com> ` (4 more replies) 0 siblings, 5 replies; 12+ messages in thread From: Chanho Park @ 2022-06-27 6:47 UTC (permalink / raw) To: Krzysztof Kozlowski, Andi Shyti, Mark Brown, Rob Herring, Krzysztof Kozlowski Cc: Alim Akhtar, devicetree, linux-spi, linux-samsung-soc, linux-arm-kernel, Chanho Park Add to support Exynos Auto v9 SoC's spi. By supporting USI(Universal Serial Interface) mode, the SoC can support up to 12 spi ports. Thus, we need to increase MAX_SPI_PORTS from 6 to 12. The spi of the SoC can support loopback mode unlike previous exynos SoCs. To separate the feature, we need to add .has_loopback to the s3c64xx_spi_port_config. Furthermore, it uses 4 as the default internal clock divider. We also need to clk_div field of the structure. If the value is specified, the value will be used. Otherwise, "2" will be the default value of the divider. Device tree definitions of exynosautov9-spi will be added in separated patchset to include usi(i2c/uart/spi) nodes all together. Chanho Park (5): spi: spi-s3c64xx: increase MAX_SPI_PORTS to 12 spi: s3c64xx: support loopback mode spi: s3c64xx: support custom value of internal clock divider dt-bindings: samsung,spi: define exynosautov9 compatible spi: s3c64xx: add spi port configuration for Exynos Auto v9 SoC .../devicetree/bindings/spi/samsung,spi.yaml | 5 +- drivers/spi/spi-s3c64xx.c | 49 +++++++++++++++---- 2 files changed, 44 insertions(+), 10 deletions(-) -- 2.36.1 ^ permalink raw reply [flat|nested] 12+ messages in thread
[parent not found: <CGME20220627064931epcas2p4d90034c1fe583a3460f0e4613e83e6d0@epcas2p4.samsung.com>]
* [PATCH 1/5] spi: spi-s3c64xx: increase MAX_SPI_PORTS to 12 [not found] ` <CGME20220627064931epcas2p4d90034c1fe583a3460f0e4613e83e6d0@epcas2p4.samsung.com> @ 2022-06-27 6:47 ` Chanho Park 2022-06-27 9:37 ` Krzysztof Kozlowski 0 siblings, 1 reply; 12+ messages in thread From: Chanho Park @ 2022-06-27 6:47 UTC (permalink / raw) To: Krzysztof Kozlowski, Andi Shyti, Mark Brown, Rob Herring, Krzysztof Kozlowski Cc: Alim Akhtar, devicetree, linux-spi, linux-samsung-soc, linux-arm-kernel, Chanho Park For exynosautov9 SoC, the spi can be supported up to 12. Signed-off-by: Chanho Park <chanho61.park@samsung.com> --- drivers/spi/spi-s3c64xx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/spi/spi-s3c64xx.c b/drivers/spi/spi-s3c64xx.c index 7f0faf0d75d9..a62c7baadc8b 100644 --- a/drivers/spi/spi-s3c64xx.c +++ b/drivers/spi/spi-s3c64xx.c @@ -18,7 +18,7 @@ #include <linux/platform_data/spi-s3c64xx.h> -#define MAX_SPI_PORTS 6 +#define MAX_SPI_PORTS 12 #define S3C64XX_SPI_QUIRK_POLL (1 << 0) #define S3C64XX_SPI_QUIRK_CS_AUTO (1 << 1) #define AUTOSUSPEND_TIMEOUT 2000 -- 2.36.1 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 1/5] spi: spi-s3c64xx: increase MAX_SPI_PORTS to 12 2022-06-27 6:47 ` [PATCH 1/5] spi: spi-s3c64xx: increase MAX_SPI_PORTS to 12 Chanho Park @ 2022-06-27 9:37 ` Krzysztof Kozlowski 0 siblings, 0 replies; 12+ messages in thread From: Krzysztof Kozlowski @ 2022-06-27 9:37 UTC (permalink / raw) To: Chanho Park, Andi Shyti, Mark Brown, Rob Herring, Krzysztof Kozlowski Cc: Alim Akhtar, devicetree, linux-spi, linux-samsung-soc, linux-arm-kernel On 27/06/2022 08:47, Chanho Park wrote: > For exynosautov9 SoC, the spi can be supported up to 12. > > Signed-off-by: Chanho Park <chanho61.park@samsung.com> > --- > drivers/spi/spi-s3c64xx.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) This should be squashed with patch #5 which actually makes use of it. Best regards, Krzysztof ^ permalink raw reply [flat|nested] 12+ messages in thread
[parent not found: <CGME20220627064931epcas2p3052d80fd448aed36b9414e7733c251f5@epcas2p3.samsung.com>]
* [PATCH 2/5] spi: s3c64xx: support loopback mode [not found] ` <CGME20220627064931epcas2p3052d80fd448aed36b9414e7733c251f5@epcas2p3.samsung.com> @ 2022-06-27 6:47 ` Chanho Park 2022-06-27 9:38 ` Krzysztof Kozlowski 0 siblings, 1 reply; 12+ messages in thread From: Chanho Park @ 2022-06-27 6:47 UTC (permalink / raw) To: Krzysztof Kozlowski, Andi Shyti, Mark Brown, Rob Herring, Krzysztof Kozlowski Cc: Alim Akhtar, devicetree, linux-spi, linux-samsung-soc, linux-arm-kernel, Chanho Park Modern exynos SoCs can support self loopback mode via setting BIT(3) of MODE_CFG register. Previous SoCs don't have the bit so we need to add has_loopback field in the s3c64xx_spi_port_config. Exynos Auto v9 SoC has the bit and it will define the field to "true". When it is set, SPI_LOOP mode will be marked. Signed-off-by: Chanho Park <chanho61.park@samsung.com> --- drivers/spi/spi-s3c64xx.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/spi/spi-s3c64xx.c b/drivers/spi/spi-s3c64xx.c index a62c7baadc8b..e17c74c0d7de 100644 --- a/drivers/spi/spi-s3c64xx.c +++ b/drivers/spi/spi-s3c64xx.c @@ -59,6 +59,7 @@ #define S3C64XX_SPI_MODE_BUS_TSZ_HALFWORD (1<<17) #define S3C64XX_SPI_MODE_BUS_TSZ_WORD (2<<17) #define S3C64XX_SPI_MODE_BUS_TSZ_MASK (3<<17) +#define S3C64XX_SPI_MODE_SELF_LOOPBACK (1<<3) #define S3C64XX_SPI_MODE_RXDMA_ON (1<<2) #define S3C64XX_SPI_MODE_TXDMA_ON (1<<1) #define S3C64XX_SPI_MODE_4BURST (1<<0) @@ -135,6 +136,7 @@ struct s3c64xx_spi_dma_data { * @clk_from_cmu: True, if the controller does not include a clock mux and * prescaler unit. * @clk_ioclk: True if clock is present on this device + * @has_loopback: True if loopback mode can be supported * * The Samsung s3c64xx SPI controller are used on various Samsung SoC's but * differ in some aspects such as the size of the fifo and spi bus clock @@ -149,6 +151,7 @@ struct s3c64xx_spi_port_config { bool high_speed; bool clk_from_cmu; bool clk_ioclk; + bool has_loopback; }; /** @@ -659,6 +662,9 @@ static int s3c64xx_spi_config(struct s3c64xx_spi_driver_data *sdd) break; } + if ((sdd->cur_mode & SPI_LOOP) && sdd->port_conf->has_loopback) + val |= S3C64XX_SPI_MODE_SELF_LOOPBACK; + writel(val, regs + S3C64XX_SPI_MODE_CFG); if (sdd->port_conf->clk_from_cmu) { @@ -1148,6 +1154,8 @@ static int s3c64xx_spi_probe(struct platform_device *pdev) SPI_BPW_MASK(8); /* the spi->mode bits understood by this driver: */ master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_CS_HIGH; + if (sdd->port_conf->has_loopback) + master->mode_bits |= SPI_LOOP; master->auto_runtime_pm = true; if (!is_polling(sdd)) master->can_dma = s3c64xx_spi_can_dma; -- 2.36.1 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 2/5] spi: s3c64xx: support loopback mode 2022-06-27 6:47 ` [PATCH 2/5] spi: s3c64xx: support loopback mode Chanho Park @ 2022-06-27 9:38 ` Krzysztof Kozlowski 0 siblings, 0 replies; 12+ messages in thread From: Krzysztof Kozlowski @ 2022-06-27 9:38 UTC (permalink / raw) To: Chanho Park, Andi Shyti, Mark Brown, Rob Herring, Krzysztof Kozlowski Cc: Alim Akhtar, devicetree, linux-spi, linux-samsung-soc, linux-arm-kernel On 27/06/2022 08:47, Chanho Park wrote: > Modern exynos SoCs can support self loopback mode via setting BIT(3) of > MODE_CFG register. Previous SoCs don't have the bit so we need to add > has_loopback field in the s3c64xx_spi_port_config. Exynos Auto v9 SoC > has the bit and it will define the field to "true". > When it is set, SPI_LOOP mode will be marked. > > Signed-off-by: Chanho Park <chanho61.park@samsung.com> > --- > drivers/spi/spi-s3c64xx.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Best regards, Krzysztof ^ permalink raw reply [flat|nested] 12+ messages in thread
[parent not found: <CGME20220627064931epcas2p2e1dc352f41895b294d7945c2239de362@epcas2p2.samsung.com>]
* [PATCH 3/5] spi: s3c64xx: support custom value of internal clock divider [not found] ` <CGME20220627064931epcas2p2e1dc352f41895b294d7945c2239de362@epcas2p2.samsung.com> @ 2022-06-27 6:47 ` Chanho Park 2022-06-27 9:40 ` Krzysztof Kozlowski 0 siblings, 1 reply; 12+ messages in thread From: Chanho Park @ 2022-06-27 6:47 UTC (permalink / raw) To: Krzysztof Kozlowski, Andi Shyti, Mark Brown, Rob Herring, Krzysztof Kozlowski Cc: Alim Akhtar, devicetree, linux-spi, linux-samsung-soc, linux-arm-kernel, Chanho Park Modern exynos SoCs such as Exynos Auto v9 has different internal clock divider, for example "4". To support this internal value, this adds clk_div of the s3c64xx_spi_port_config and use it if it is specified. Otherwise, use "2" which is the previous default value. Signed-off-by: Chanho Park <chanho61.park@samsung.com> --- drivers/spi/spi-s3c64xx.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/drivers/spi/spi-s3c64xx.c b/drivers/spi/spi-s3c64xx.c index e17c74c0d7de..dd5fc8570bce 100644 --- a/drivers/spi/spi-s3c64xx.c +++ b/drivers/spi/spi-s3c64xx.c @@ -131,6 +131,7 @@ struct s3c64xx_spi_dma_data { * @fifo_lvl_mask: Bit-mask for {TX|RX}_FIFO_LVL bits in SPI_STATUS register. * @rx_lvl_offset: Bit offset of RX_FIFO_LVL bits in SPI_STATUS regiter. * @tx_st_done: Bit offset of TX_DONE bit in SPI_STATUS regiter. + * @clk_div: Internal clock divider, if not specified, use 2 as the default. * @quirks: Bitmask of known quirks * @high_speed: True, if the controller supports HIGH_SPEED_EN bit. * @clk_from_cmu: True, if the controller does not include a clock mux and @@ -148,6 +149,7 @@ struct s3c64xx_spi_port_config { int rx_lvl_offset; int tx_st_done; int quirks; + int clk_div; bool high_speed; bool clk_from_cmu; bool clk_ioclk; @@ -620,6 +622,7 @@ static int s3c64xx_spi_config(struct s3c64xx_spi_driver_data *sdd) void __iomem *regs = sdd->regs; int ret; u32 val; + u32 div = sdd->port_conf->clk_div ? sdd->port_conf->clk_div : 2; /* Disable Clock */ if (!sdd->port_conf->clk_from_cmu) { @@ -668,16 +671,15 @@ static int s3c64xx_spi_config(struct s3c64xx_spi_driver_data *sdd) writel(val, regs + S3C64XX_SPI_MODE_CFG); if (sdd->port_conf->clk_from_cmu) { - /* The src_clk clock is divided internally by 2 */ - ret = clk_set_rate(sdd->src_clk, sdd->cur_speed * 2); + ret = clk_set_rate(sdd->src_clk, sdd->cur_speed * div); if (ret) return ret; - sdd->cur_speed = clk_get_rate(sdd->src_clk) / 2; + sdd->cur_speed = clk_get_rate(sdd->src_clk) / div; } else { /* Configure Clock */ val = readl(regs + S3C64XX_SPI_CLK_CFG); val &= ~S3C64XX_SPI_PSR_MASK; - val |= ((clk_get_rate(sdd->src_clk) / sdd->cur_speed / 2 - 1) + val |= ((clk_get_rate(sdd->src_clk) / sdd->cur_speed / div - 1) & S3C64XX_SPI_PSR_MASK); writel(val, regs + S3C64XX_SPI_CLK_CFG); @@ -871,6 +873,7 @@ static int s3c64xx_spi_setup(struct spi_device *spi) struct s3c64xx_spi_csinfo *cs = spi->controller_data; struct s3c64xx_spi_driver_data *sdd; int err; + u32 div = 2; sdd = spi_master_get_devdata(spi->master); if (spi->dev.of_node) { @@ -889,22 +892,26 @@ static int s3c64xx_spi_setup(struct spi_device *spi) pm_runtime_get_sync(&sdd->pdev->dev); + /* Use clk_div value if it is specified, otherwise use 2 as default */ + if (sdd->port_conf->clk_div) + div = sdd->port_conf->clk_div; + /* Check if we can provide the requested rate */ if (!sdd->port_conf->clk_from_cmu) { u32 psr, speed; /* Max possible */ - speed = clk_get_rate(sdd->src_clk) / 2 / (0 + 1); + speed = clk_get_rate(sdd->src_clk) / div / (0 + 1); if (spi->max_speed_hz > speed) spi->max_speed_hz = speed; - psr = clk_get_rate(sdd->src_clk) / 2 / spi->max_speed_hz - 1; + psr = clk_get_rate(sdd->src_clk) / div / spi->max_speed_hz - 1; psr &= S3C64XX_SPI_PSR_MASK; if (psr == S3C64XX_SPI_PSR_MASK) psr--; - speed = clk_get_rate(sdd->src_clk) / 2 / (psr + 1); + speed = clk_get_rate(sdd->src_clk) / div / (psr + 1); if (spi->max_speed_hz < speed) { if (psr+1 < S3C64XX_SPI_PSR_MASK) { psr++; @@ -914,7 +921,7 @@ static int s3c64xx_spi_setup(struct spi_device *spi) } } - speed = clk_get_rate(sdd->src_clk) / 2 / (psr + 1); + speed = clk_get_rate(sdd->src_clk) / div / (psr + 1); if (spi->max_speed_hz >= speed) { spi->max_speed_hz = speed; } else { -- 2.36.1 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 3/5] spi: s3c64xx: support custom value of internal clock divider 2022-06-27 6:47 ` [PATCH 3/5] spi: s3c64xx: support custom value of internal clock divider Chanho Park @ 2022-06-27 9:40 ` Krzysztof Kozlowski 2022-06-28 1:51 ` Chanho Park 0 siblings, 1 reply; 12+ messages in thread From: Krzysztof Kozlowski @ 2022-06-27 9:40 UTC (permalink / raw) To: Chanho Park, Andi Shyti, Mark Brown, Rob Herring, Krzysztof Kozlowski Cc: Alim Akhtar, devicetree, linux-spi, linux-samsung-soc, linux-arm-kernel On 27/06/2022 08:47, Chanho Park wrote: > Modern exynos SoCs such as Exynos Auto v9 has different internal clock > divider, for example "4". To support this internal value, this adds > clk_div of the s3c64xx_spi_port_config and use it if it is specified. > Otherwise, use "2" which is the previous default value. > > Signed-off-by: Chanho Park <chanho61.park@samsung.com> > --- > drivers/spi/spi-s3c64xx.c | 23 +++++++++++++++-------- > 1 file changed, 15 insertions(+), 8 deletions(-) > > diff --git a/drivers/spi/spi-s3c64xx.c b/drivers/spi/spi-s3c64xx.c > index e17c74c0d7de..dd5fc8570bce 100644 > --- a/drivers/spi/spi-s3c64xx.c > +++ b/drivers/spi/spi-s3c64xx.c > @@ -131,6 +131,7 @@ struct s3c64xx_spi_dma_data { > * @fifo_lvl_mask: Bit-mask for {TX|RX}_FIFO_LVL bits in SPI_STATUS register. > * @rx_lvl_offset: Bit offset of RX_FIFO_LVL bits in SPI_STATUS regiter. > * @tx_st_done: Bit offset of TX_DONE bit in SPI_STATUS regiter. > + * @clk_div: Internal clock divider, if not specified, use 2 as the default. > * @quirks: Bitmask of known quirks > * @high_speed: True, if the controller supports HIGH_SPEED_EN bit. > * @clk_from_cmu: True, if the controller does not include a clock mux and > @@ -148,6 +149,7 @@ struct s3c64xx_spi_port_config { > int rx_lvl_offset; > int tx_st_done; > int quirks; > + int clk_div; > bool high_speed; > bool clk_from_cmu; > bool clk_ioclk; > @@ -620,6 +622,7 @@ static int s3c64xx_spi_config(struct s3c64xx_spi_driver_data *sdd) > void __iomem *regs = sdd->regs; > int ret; > u32 val; > + u32 div = sdd->port_conf->clk_div ? sdd->port_conf->clk_div : 2; I would prefer to explicitly set '2' as clk_div for existing variants. Such assignments in the code are usually trickier to find/read. > Best regards, Krzysztof ^ permalink raw reply [flat|nested] 12+ messages in thread
* RE: [PATCH 3/5] spi: s3c64xx: support custom value of internal clock divider 2022-06-27 9:40 ` Krzysztof Kozlowski @ 2022-06-28 1:51 ` Chanho Park 0 siblings, 0 replies; 12+ messages in thread From: Chanho Park @ 2022-06-28 1:51 UTC (permalink / raw) To: 'Krzysztof Kozlowski', 'Andi Shyti', 'Mark Brown', 'Rob Herring', 'Krzysztof Kozlowski' Cc: 'Alim Akhtar', devicetree, linux-spi, linux-samsung-soc, linux-arm-kernel > Subject: Re: [PATCH 3/5] spi: s3c64xx: support custom value of internal > clock divider > > On 27/06/2022 08:47, Chanho Park wrote: > > Modern exynos SoCs such as Exynos Auto v9 has different internal clock > > divider, for example "4". To support this internal value, this adds > > clk_div of the s3c64xx_spi_port_config and use it if it is specified. > > Otherwise, use "2" which is the previous default value. > > > > Signed-off-by: Chanho Park <chanho61.park@samsung.com> > > --- > > drivers/spi/spi-s3c64xx.c | 23 +++++++++++++++-------- > > 1 file changed, 15 insertions(+), 8 deletions(-) > > > > diff --git a/drivers/spi/spi-s3c64xx.c b/drivers/spi/spi-s3c64xx.c > > index e17c74c0d7de..dd5fc8570bce 100644 > > --- a/drivers/spi/spi-s3c64xx.c > > +++ b/drivers/spi/spi-s3c64xx.c > > @@ -131,6 +131,7 @@ struct s3c64xx_spi_dma_data { > > * @fifo_lvl_mask: Bit-mask for {TX|RX}_FIFO_LVL bits in SPI_STATUS > register. > > * @rx_lvl_offset: Bit offset of RX_FIFO_LVL bits in SPI_STATUS regiter. > > * @tx_st_done: Bit offset of TX_DONE bit in SPI_STATUS regiter. > > + * @clk_div: Internal clock divider, if not specified, use 2 as the > default. > > * @quirks: Bitmask of known quirks > > * @high_speed: True, if the controller supports HIGH_SPEED_EN bit. > > * @clk_from_cmu: True, if the controller does not include a clock > > mux and @@ -148,6 +149,7 @@ struct s3c64xx_spi_port_config { > > int rx_lvl_offset; > > int tx_st_done; > > int quirks; > > + int clk_div; > > bool high_speed; > > bool clk_from_cmu; > > bool clk_ioclk; > > @@ -620,6 +622,7 @@ static int s3c64xx_spi_config(struct > s3c64xx_spi_driver_data *sdd) > > void __iomem *regs = sdd->regs; > > int ret; > > u32 val; > > + u32 div = sdd->port_conf->clk_div ? sdd->port_conf->clk_div : 2; > > I would prefer to explicitly set '2' as clk_div for existing variants. > Such assignments in the code are usually trickier to find/read. Make sense. It can be more clear what value is using. I'll apply it next patchset. Best Regards, Chanho Park ^ permalink raw reply [flat|nested] 12+ messages in thread
[parent not found: <CGME20220627064931epcas2p2ad75d53ceabb2b0f10dfb13f5fcb0ff4@epcas2p2.samsung.com>]
* [PATCH 4/5] dt-bindings: samsung,spi: define exynosautov9 compatible [not found] ` <CGME20220627064931epcas2p2ad75d53ceabb2b0f10dfb13f5fcb0ff4@epcas2p2.samsung.com> @ 2022-06-27 6:47 ` Chanho Park 2022-06-27 9:41 ` Krzysztof Kozlowski 0 siblings, 1 reply; 12+ messages in thread From: Chanho Park @ 2022-06-27 6:47 UTC (permalink / raw) To: Krzysztof Kozlowski, Andi Shyti, Mark Brown, Rob Herring, Krzysztof Kozlowski Cc: Alim Akhtar, devicetree, linux-spi, linux-samsung-soc, linux-arm-kernel, Chanho Park Define "samsung,exynosautov9-spi" for Exynos Auto v9's spi. Signed-off-by: Chanho Park <chanho61.park@samsung.com> --- Documentation/devicetree/bindings/spi/samsung,spi.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/spi/samsung,spi.yaml b/Documentation/devicetree/bindings/spi/samsung,spi.yaml index a50f24f9359d..d51ee3e6d604 100644 --- a/Documentation/devicetree/bindings/spi/samsung,spi.yaml +++ b/Documentation/devicetree/bindings/spi/samsung,spi.yaml @@ -21,6 +21,7 @@ properties: - samsung,s3c6410-spi - samsung,s5pv210-spi # for S5PV210 and S5PC110 - samsung,exynos5433-spi + - samsung,exynosautov9-spi - tesla,fsd-spi - const: samsung,exynos7-spi deprecated: true @@ -85,7 +86,9 @@ allOf: properties: compatible: contains: - const: samsung,exynos5433-spi + enum: + - samsung,exynos5433-spi + - samsung,exynosautov9-spi then: properties: clocks: -- 2.36.1 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 4/5] dt-bindings: samsung,spi: define exynosautov9 compatible 2022-06-27 6:47 ` [PATCH 4/5] dt-bindings: samsung,spi: define exynosautov9 compatible Chanho Park @ 2022-06-27 9:41 ` Krzysztof Kozlowski 0 siblings, 0 replies; 12+ messages in thread From: Krzysztof Kozlowski @ 2022-06-27 9:41 UTC (permalink / raw) To: Chanho Park, Andi Shyti, Mark Brown, Rob Herring, Krzysztof Kozlowski Cc: Alim Akhtar, devicetree, linux-spi, linux-samsung-soc, linux-arm-kernel On 27/06/2022 08:47, Chanho Park wrote: > Define "samsung,exynosautov9-spi" for Exynos Auto v9's spi. > > Signed-off-by: Chanho Park <chanho61.park@samsung.com> > --- Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Best regards, Krzysztof ^ permalink raw reply [flat|nested] 12+ messages in thread
[parent not found: <CGME20220627064931epcas2p19407c5c3da3319cfb55dcb2c6d517256@epcas2p1.samsung.com>]
* [PATCH 5/5] spi: s3c64xx: add spi port configuration for Exynos Auto v9 SoC [not found] ` <CGME20220627064931epcas2p19407c5c3da3319cfb55dcb2c6d517256@epcas2p1.samsung.com> @ 2022-06-27 6:47 ` Chanho Park 2022-06-27 9:46 ` Krzysztof Kozlowski 0 siblings, 1 reply; 12+ messages in thread From: Chanho Park @ 2022-06-27 6:47 UTC (permalink / raw) To: Krzysztof Kozlowski, Andi Shyti, Mark Brown, Rob Herring, Krzysztof Kozlowski Cc: Alim Akhtar, devicetree, linux-spi, linux-samsung-soc, linux-arm-kernel, Chanho Park Add exynosautov9 spi port configuration. It supports up to 12 spis and has DIV_4 as the default internal clock divider. The spi also has an internal loopback mode to run a loopback test. Signed-off-by: Chanho Park <chanho61.park@samsung.com> --- drivers/spi/spi-s3c64xx.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/drivers/spi/spi-s3c64xx.c b/drivers/spi/spi-s3c64xx.c index dd5fc8570bce..67b1fecf6fc6 100644 --- a/drivers/spi/spi-s3c64xx.c +++ b/drivers/spi/spi-s3c64xx.c @@ -1447,6 +1447,19 @@ static const struct s3c64xx_spi_port_config exynos5433_spi_port_config = { .quirks = S3C64XX_SPI_QUIRK_CS_AUTO, }; +static struct s3c64xx_spi_port_config exynosautov9_spi_port_config = { + .fifo_lvl_mask = { 0x1ff, 0x1ff, 0x7f, 0x7f, 0x7f, 0x7f, 0x1ff, 0x7f, + 0x7f, 0x7f, 0x7f, 0x7f}, + .rx_lvl_offset = 15, + .tx_st_done = 25, + .high_speed = true, + .clk_from_cmu = true, + .clk_ioclk = true, + .clk_div = 4, + .has_loopback = true, + .quirks = S3C64XX_SPI_QUIRK_CS_AUTO, +}; + static struct s3c64xx_spi_port_config fsd_spi_port_config = { .fifo_lvl_mask = { 0x7f, 0x7f, 0x7f, 0x7f, 0x7f}, .rx_lvl_offset = 15, @@ -1487,6 +1500,9 @@ static const struct of_device_id s3c64xx_spi_dt_match[] = { { .compatible = "samsung,exynos5433-spi", .data = (void *)&exynos5433_spi_port_config, }, + { .compatible = "samsung,exynosautov9-spi", + .data = (void *)&exynosautov9_spi_port_config, + }, { .compatible = "tesla,fsd-spi", .data = (void *)&fsd_spi_port_config, }, -- 2.36.1 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 5/5] spi: s3c64xx: add spi port configuration for Exynos Auto v9 SoC 2022-06-27 6:47 ` [PATCH 5/5] spi: s3c64xx: add spi port configuration for Exynos Auto v9 SoC Chanho Park @ 2022-06-27 9:46 ` Krzysztof Kozlowski 0 siblings, 0 replies; 12+ messages in thread From: Krzysztof Kozlowski @ 2022-06-27 9:46 UTC (permalink / raw) To: Chanho Park, Andi Shyti, Mark Brown, Rob Herring, Krzysztof Kozlowski Cc: Alim Akhtar, devicetree, linux-spi, linux-samsung-soc, linux-arm-kernel On 27/06/2022 08:47, Chanho Park wrote: > Add exynosautov9 spi port configuration. It supports up to 12 spis and > has DIV_4 as the default internal clock divider. The spi also has > an internal loopback mode to run a loopback test. > > Signed-off-by: Chanho Park <chanho61.park@samsung.com> > --- > drivers/spi/spi-s3c64xx.c | 16 ++++++++++++++++ > 1 file changed, 16 insertions(+) > > diff --git a/drivers/spi/spi-s3c64xx.c b/drivers/spi/spi-s3c64xx.c > index dd5fc8570bce..67b1fecf6fc6 100644 > --- a/drivers/spi/spi-s3c64xx.c > +++ b/drivers/spi/spi-s3c64xx.c > @@ -1447,6 +1447,19 @@ static const struct s3c64xx_spi_port_config exynos5433_spi_port_config = { > .quirks = S3C64XX_SPI_QUIRK_CS_AUTO, > }; > > +static struct s3c64xx_spi_port_config exynosautov9_spi_port_config = { This should be const. Best regards, Krzysztof ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2022-06-28 1:51 UTC | newest] Thread overview: 12+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <CGME20220627064931epcas2p1944df2c6c54339de17e32c7116837f52@epcas2p1.samsung.com> 2022-06-27 6:47 ` [PATCH 0/5] spi support for Exynos Auto v9 SoC Chanho Park [not found] ` <CGME20220627064931epcas2p4d90034c1fe583a3460f0e4613e83e6d0@epcas2p4.samsung.com> 2022-06-27 6:47 ` [PATCH 1/5] spi: spi-s3c64xx: increase MAX_SPI_PORTS to 12 Chanho Park 2022-06-27 9:37 ` Krzysztof Kozlowski [not found] ` <CGME20220627064931epcas2p3052d80fd448aed36b9414e7733c251f5@epcas2p3.samsung.com> 2022-06-27 6:47 ` [PATCH 2/5] spi: s3c64xx: support loopback mode Chanho Park 2022-06-27 9:38 ` Krzysztof Kozlowski [not found] ` <CGME20220627064931epcas2p2e1dc352f41895b294d7945c2239de362@epcas2p2.samsung.com> 2022-06-27 6:47 ` [PATCH 3/5] spi: s3c64xx: support custom value of internal clock divider Chanho Park 2022-06-27 9:40 ` Krzysztof Kozlowski 2022-06-28 1:51 ` Chanho Park [not found] ` <CGME20220627064931epcas2p2ad75d53ceabb2b0f10dfb13f5fcb0ff4@epcas2p2.samsung.com> 2022-06-27 6:47 ` [PATCH 4/5] dt-bindings: samsung,spi: define exynosautov9 compatible Chanho Park 2022-06-27 9:41 ` Krzysztof Kozlowski [not found] ` <CGME20220627064931epcas2p19407c5c3da3319cfb55dcb2c6d517256@epcas2p1.samsung.com> 2022-06-27 6:47 ` [PATCH 5/5] spi: s3c64xx: add spi port configuration for Exynos Auto v9 SoC Chanho Park 2022-06-27 9:46 ` Krzysztof Kozlowski
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).