spi: kirkwood: Get drvdata in .ofdata_to_platdata
PATCH 1/2 spi: kirkwood: Get drvdata in .ofdata_to_platdata
Get the is_errata_50mhz_ac in .ofdata_to_platdata, and reuse it in .set_mode this can eventually initialized dt code at once and adding room to add platdata.
--- drivers/spi/kirkwood_spi.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-)
drivers/spi/kirkwood_spi.c +5 -3
@@ -249,6 +249,7 @@ struct mvebu_spi_dev {struct mvebu_spi_platdata {struct kwspi_registers *spireg; +bool is_errata_50mhz_ac; };struct mvebu_spi_priv {
@@ -310,7 +311,6 @@ static int mvebu_spi_set_mode(struct udevice *bus, uint mode) {struct mvebu_spi_platdata *plat =dev_get_platdata (bus);struct kwspi_registers *reg = plat->spireg; -const struct mvebu_spi_dev *drvdata;u32 data =readl (®->cfg); data &= ~(KWSPI_CPHA |KWSPI_CPOL |KWSPI_RXLSBF |KWSPI_TXLSBF );
@@ -324,8 +324,7 @@ static int mvebu_spi_set_mode(struct udevice *bus, uint mode)writel (data, ®->cfg); - drvdata = (struct mvebu_spi_dev *)dev_get_driver_data (bus); -if (drvdata->is_errata_50mhz_ac) +if (plat->is_errata_50mhz_ac)mvebu_spi_50mhz_ac_timing_erratum (bus, mode);return 0 ;
@@ -368,8 +367,11 @@ static int mvebu_spi_probe(struct udevice *bus)static int mvebu_spi_ofdata_to_platdata (struct udevice *bus) {struct mvebu_spi_platdata *plat =dev_get_platdata (bus); +const struct mvebu_spi_dev *drvdata = + (struct mvebu_spi_dev *)dev_get_driver_data (bus); plat->spireg = (struct kwspi_registers *)devfdt_get_addr (bus); + plat->is_errata_50mhz_ac = drvdata->is_errata_50mhz_ac;return 0 ; }
Signature · 1 line
2.14.3
PATCH 1/2 spi: kirkwood: Get drvdata in .ofdata_to_platdata
Quoted 6 lines · Jagan Teki
Get the
is_errata_50mhz_acin .ofdata_to_platdata, and reuse it in .set_mode this can eventually initialized dt code at once and adding room to add platdata.Signed-off-by Jagan Teki <[email protected]>---
Applied to u-boot-spi/master
PATCH 2/2 spi: kirkwood: Full dm conversion
In reply to Jagan Tekikirkwood now support dt along with platform data, respective boards need to switch into dm for the same.
--- drivers/spi/kirkwood_spi.c | 240 ++++++-------------------------- include/dm/platform_data/spi_kirkwood.h | 15 ++ 2 files changed, 56 insertions(+), 199 deletions(-) create mode 100644 include/dm/platform_data/spi_kirkwood.h
drivers/spi/kirkwood_spi.c +41 -199
@@ -14,31 +14,41 @@#include <spi.h> #include <asm/io.h> #include <asm/arch/soc.h> -#ifdef CONFIG_KIRKWOOD -#include <asm/arch/mpp.h> -#endif #include <asm/arch-mvebu/spi.h> -static void _spi_cs_activate (struct kwspi_registers *reg) +#include <dm/platform_data/spi_kirkwood.h> + +struct mvebu_spi_dev { +bool is_errata_50mhz_ac; +}; + +struct mvebu_spi_priv { +struct kwspi_registers *spireg; +}; + +static void spi_cs_activate (struct kwspi_registers *reg) {setbits_le32 (®->ctrl,KWSPI_CSN_ACT ); } -static void _spi_cs_deactivate (struct kwspi_registers *reg) +static void spi_cs_deactivate (struct kwspi_registers *reg) {clrbits_le32 (®->ctrl,KWSPI_CSN_ACT ); } -static int _spi_xfer (struct kwspi_registers *reg,unsigned int bitlen, -const void *dout,void *din,unsigned long flags) +static int mvebu_spi_xfer (struct udevice *dev,unsigned int bitlen, +const void *dout,void *din,unsigned long flags) { +struct udevice *bus = dev->parent; +struct mvebu_spi_platdata *plat =dev_get_platdata (bus); +struct kwspi_registers *reg = plat->spireg;unsigned int tmpdout, tmpdin;int tm, isread =0 ; -debug ("spi_xfer: dout %p din %p bitlen %u\n" , dout, din, bitlen); +debug ("%s: dout %p din %p bitlen %u\n" , __func__, dout, din, bitlen);if (flags &SPI_XFER_BEGIN ) -_spi_cs_activate (reg); +spi_cs_activate (reg);/* * handle data in 8-bit chunks
@@ -56,8 +66,8 @@ static int _spi_xfer(struct kwspi_registers *reg, unsigned int bitlen,clrbits_le32 (®->irq_cause,KWSPI_SMEMRDIRQ );writel (tmpdout, ®->dout);/* Write the data out */ -debug ("*** spi_xfer: ... %08x written, bitlen %d\n" , - tmpdout, bitlen); +debug ("%s: ... %08x written, bitlen %d\n" , + __func__, tmpdout, bitlen);/* * Wait for SPI transmit to get out
@@ -68,8 +78,8 @@ static int _spi_xfer(struct kwspi_registers *reg, unsigned int bitlen,if (readl (®->irq_cause) &KWSPI_SMEMRDIRQ ) { isread =1 ; tmpdin =readl (®->din); -debug ("spi_xfer: din %p..%08x read\n" , - din, tmpdin); +debug ("%s: din %p..%08x read\n" , + __func__, din, tmpdin);if (din) { *((u8 *)din) = (u8 )tmpdin;
@@ -83,179 +93,17 @@ static int _spi_xfer(struct kwspi_registers *reg, unsigned int bitlen,break ; }if (tm >=KWSPI_TIMEOUT ) -printf ("*** spi_xfer: Time out during SPI transfer\n" ); +printf ("%s: Time out during SPI transfer\n" , __func__);debug ("loopend bitlen %d\n" , bitlen); }if (flags &SPI_XFER_END ) -_spi_cs_deactivate (reg); +spi_cs_deactivate (reg);return 0 ; } -#ifndef CONFIG_DM_SPI - -static struct kwspi_registers *spireg = - (struct kwspi_registers *)MVEBU_SPI_BASE ; - -#ifdef CONFIG_KIRKWOOD -static u32 cs_spi_mpp_back[2 ]; -#endif - -struct spi_slave *spi_setup_slave (unsigned int bus,unsigned int cs, -unsigned int max_hz,unsigned int mode) -{ -struct spi_slave *slave; -u32 data; -#ifdef CONFIG_KIRKWOOD -static const u32 kwspi_mpp_config[2 ][2 ] = { - { MPP0_SPI_SCn,0 },/* if cs == 0 */ - { MPP7_SPI_SCn,0 }/* if cs != 0 */ - }; -#endif - -if (!spi_cs_is_valid (bus, cs)) -return NULL ; - - slave =spi_alloc_slave_base (bus, cs); -if (!slave) -return NULL ; - -writel (KWSPI_SMEMRDY , &spireg->ctrl); - -/* calculate spi clock prescaller using max_hz */ - data = ((CONFIG_SYS_TCLK /2 ) / max_hz) +0x10 ; - data = data <KWSPI_CLKPRESCL_MIN ?KWSPI_CLKPRESCL_MIN : data; - data = data >KWSPI_CLKPRESCL_MASK ?KWSPI_CLKPRESCL_MASK : data; - -/* program spi clock prescaller using max_hz */ -writel (KWSPI_ADRLEN_3BYTE | data, &spireg->cfg); -debug ("data = 0x%08x\n" , data); - -writel (KWSPI_SMEMRDIRQ , &spireg->irq_cause); -writel (KWSPI_IRQMASK , &spireg->irq_mask); - -#ifdef CONFIG_KIRKWOOD -/* program mpp registers to select SPI_CSn */ -kirkwood_mpp_conf (kwspi_mpp_config[cs ?1 :0 ], cs_spi_mpp_back); -#endif - -return slave; -} - -void spi_free_slave (struct spi_slave *slave) -{ -#ifdef CONFIG_KIRKWOOD -kirkwood_mpp_conf (cs_spi_mpp_back,NULL ); -#endif -free (slave); -} - -#if defined(CONFIG_SYS_KW_SPI_MPP ) -u32 spi_mpp_backup[4 ]; -#endif - -__attribute__((weak))int board_spi_claim_bus (struct spi_slave *slave) -{ -return 0 ; -} - -int spi_claim_bus (struct spi_slave *slave) -{ -#if defined(CONFIG_SYS_KW_SPI_MPP ) -u32 config; -u32 spi_mpp_config[4 ]; - - config =CONFIG_SYS_KW_SPI_MPP ; - -if (config &MOSI_MPP6 ) - spi_mpp_config[0 ] =MPP6_SPI_MOSI ; -else - spi_mpp_config[0 ] =MPP1_SPI_MOSI ; - -if (config &SCK_MPP10 ) - spi_mpp_config[1 ] =MPP10_SPI_SCK ; -else - spi_mpp_config[1 ] =MPP2_SPI_SCK ; - -if (config &MISO_MPP11 ) - spi_mpp_config[2 ] =MPP11_SPI_MISO ; -else - spi_mpp_config[2 ] =MPP3_SPI_MISO ; - - spi_mpp_config[3 ] =0 ; - spi_mpp_backup[3 ] =0 ; - -/* set new spi mpp and save current mpp config */ -kirkwood_mpp_conf (spi_mpp_config, spi_mpp_backup); -#endif - -return board_spi_claim_bus (slave); -} - -__attribute__((weak))void board_spi_release_bus (struct spi_slave *slave) -{ -} - -void spi_release_bus (struct spi_slave *slave) -{ -#if defined(CONFIG_SYS_KW_SPI_MPP ) -kirkwood_mpp_conf (spi_mpp_backup,NULL ); -#endif - -board_spi_release_bus (slave); -} - -#ifndef CONFIG_SPI_CS_IS_VALID -/* -* you can define this function board specific -* define above CONFIG in board specific config file and -* provide the function in board specific src file -*/ -int spi_cs_is_valid (unsigned int bus,unsigned int cs) -{ -return bus ==0 && (cs ==0 || cs ==1 ); -} -#endif - -void spi_init (void ) -{ -} - -void spi_cs_activate (struct spi_slave *slave) -{ -_spi_cs_activate (spireg); -} - -void spi_cs_deactivate (struct spi_slave *slave) -{ -_spi_cs_deactivate (spireg); -} - -int spi_xfer (struct spi_slave *slave,unsigned int bitlen, -const void *dout,void *din,unsigned long flags) -{ -return _spi_xfer (spireg, bitlen, dout, din, flags); -} - -#else - -/* Here now the DM part */ - -struct mvebu_spi_dev { -bool is_errata_50mhz_ac; -}; - -struct mvebu_spi_platdata { -struct kwspi_registers *spireg; -bool is_errata_50mhz_ac; -}; - -struct mvebu_spi_priv { -struct kwspi_registers *spireg; -}; -static int mvebu_spi_set_speed (struct udevice *bus,uint hz) {struct mvebu_spi_platdata *plat =dev_get_platdata (bus);
@@ -330,15 +178,6 @@ static int mvebu_spi_set_mode(struct udevice *bus, uint mode)return 0 ; } -static int mvebu_spi_xfer (struct udevice *dev,unsigned int bitlen, -const void *dout,void *din,unsigned long flags) -{ -struct udevice *bus = dev->parent; -struct mvebu_spi_platdata *plat =dev_get_platdata (bus); - -return _spi_xfer (plat->spireg, bitlen, dout, din, flags); -} -static int mvebu_spi_claim_bus (struct udevice *dev) {struct udevice *bus = dev->parent;
@@ -364,6 +203,18 @@ static int mvebu_spi_probe(struct udevice *bus)return 0 ; } +static const struct dm_spi_ops mvebu_spi_ops = { + .claim_bus = mvebu_spi_claim_bus, + .xfer = mvebu_spi_xfer, + .set_speed = mvebu_spi_set_speed, + .set_mode = mvebu_spi_set_mode, +/* +* cs_info is not needed, since we require all chip selects to be +* in the device tree explicitly +*/ +}; + +#if CONFIG_IS_ENABLED (OF_CONTROL )static int mvebu_spi_ofdata_to_platdata (struct udevice *bus) {struct mvebu_spi_platdata *plat =dev_get_platdata (bus);
@@ -376,17 +227,6 @@ static int mvebu_spi_ofdata_to_platdata(struct udevice *bus)return 0 ; } -static const struct dm_spi_ops mvebu_spi_ops = { - .claim_bus = mvebu_spi_claim_bus, - .xfer = mvebu_spi_xfer, - .set_speed = mvebu_spi_set_speed, - .set_mode = mvebu_spi_set_mode, -/* -* cs_info is not needed, since we require all chip selects to be -* in the device tree explicitly -*/ -}; -static const struct mvebu_spi_dev armada_xp_spi_dev_data = { .is_errata_50mhz_ac = false, };
@@ -414,15 +254,17 @@ static const struct udevice_id mvebu_spi_ids[] = { }, { } }; +#endif U_BOOT_DRIVER (mvebu_spi) = { .name ="mvebu_spi" , .id =UCLASS_SPI , +#if CONFIG_IS_ENABLED(OF_CONTROL) .of_match = mvebu_spi_ids, - .ops = &mvebu_spi_ops, .ofdata_to_platdata = mvebu_spi_ofdata_to_platdata, .platdata_auto_alloc_size =sizeof (struct mvebu_spi_platdata ), +#endif + .ops = &mvebu_spi_ops, .priv_auto_alloc_size =sizeof (struct mvebu_spi_priv ), .probe = mvebu_spi_probe, }; -#endif
include/dm/platform_data/spi_kirkwood.h new file +15 -0
@@ -0,0 +1,15 @@ +/* +* Copyright (C) 2018 Jagan Teki <[email protected]> +* +* SPDX-License-Identifier: GPL-2.0+ +*/ + +#ifndef __spi_kirkwood_h +#define __spi_kirkwood_h + +struct mvebu_spi_platdata { +struct kwspi_registers *spireg; +bool is_errata_50mhz_ac; +}; + +#endif /* __spi_kirkwood_h */
Signature · 1 line
2.14.3
PATCH 2/2 spi: kirkwood: Full dm conversion
Hi Jagan,
Quoted 354 lines · Jagan Teki
kirkwood now support dt along with platform data, respective boards need to switch into dm for the same.
Signed-off-by Jagan Teki <[email protected]>--- drivers/spi/kirkwood_spi.c | 240 ++++++-------------------------- include/dm/platform_data/spi_kirkwood.h | 15 ++ 2 files changed, 56 insertions(+), 199 deletions(-)create mode 100644
include/dm/platform_data/spi_kirkwood.hdrivers/spi/kirkwood_spi.c +41
-199@@ -14,31 +14,41 @@#include <spi.h> #include <asm/io.h> #include <asm/arch/soc.h> -#ifdef CONFIG_KIRKWOOD -#include <asm/arch/mpp.h> -#endif #include <asm/arch-mvebu/spi.h> -static void _spi_cs_activate (struct kwspi_registers *reg) +#include <dm/platform_data/spi_kirkwood.h> + +struct mvebu_spi_dev { +bool is_errata_50mhz_ac; +}; + +struct mvebu_spi_priv { +struct kwspi_registers *spireg; +}; + +static void spi_cs_activate (struct kwspi_registers *reg) {setbits_le32 (®->ctrl,KWSPI_CSN_ACT ); } -static void _spi_cs_deactivate (struct kwspi_registers *reg) +static void spi_cs_deactivate (struct kwspi_registers *reg) {clrbits_le32 (®->ctrl,KWSPI_CSN_ACT ); } -static int _spi_xfer (struct kwspi_registers *reg,unsigned int bitlen, -const void *dout,void *din,unsigned long flags) +static int mvebu_spi_xfer (struct udevice *dev,unsigned int bitlen, +const void *dout,void *din,unsigned long flags) { +struct udevice *bus = dev->parent; +struct mvebu_spi_platdata *plat =dev_get_platdata (bus); +struct kwspi_registers *reg = plat->spireg;unsigned int tmpdout, tmpdin;int tm, isread =0 ; -debug ("spi_xfer: dout %p din %p bitlen %u\n" , dout, din, bitlen); +debug ("%s: dout %p din %p bitlen %u\n" , __func__, dout, din, bitlen);if (flags &SPI_XFER_BEGIN ) -_spi_cs_activate (reg); +spi_cs_activate (reg);/* * handle data in 8-bit chunks @@ -56,8 +66,8 @@ static int _spi_xfer(struct kwspi_registers *reg, unsigned int bitlen,clrbits_le32 (®->irq_cause,KWSPI_SMEMRDIRQ );writel (tmpdout, ®->dout);/* Write the data out */ -debug ("*** spi_xfer: ... %08x written, bitlen %d\n" , - tmpdout, bitlen); +debug ("%s: ... %08x written, bitlen %d\n" , + __func__, tmpdout, bitlen);/* * Wait for SPI transmit to get out @@ -68,8 +78,8 @@ static int _spi_xfer(struct kwspi_registers *reg, unsigned int bitlen,if (readl (®->irq_cause) &KWSPI_SMEMRDIRQ ) { isread =1 ; tmpdin =readl (®->din); -debug ("spi_xfer: din %p..%08x read\n" , - din, tmpdin); +debug ("%s: din %p..%08x read\n" , + __func__, din, tmpdin);if (din) { *((u8 *)din) = (u8 )tmpdin;@@ -83,179 +93,17 @@ static int _spi_xfer(struct kwspi_registers *reg, unsigned int bitlen,break ; }if (tm >=KWSPI_TIMEOUT ) -printf ("*** spi_xfer: Time out during SPI transfer\n" ); +printf ("%s: Time out during SPI transfer\n" , __func__);debug ("loopend bitlen %d\n" , bitlen); }if (flags &SPI_XFER_END ) -_spi_cs_deactivate (reg); +spi_cs_deactivate (reg);return 0 ; } -#ifndef CONFIG_DM_SPI - -static struct kwspi_registers *spireg = - (struct kwspi_registers *)MVEBU_SPI_BASE ; - -#ifdef CONFIG_KIRKWOOD -static u32 cs_spi_mpp_back[2 ]; -#endif - -struct spi_slave *spi_setup_slave (unsigned int bus,unsigned int cs, -unsigned int max_hz,unsigned int mode) -{ -struct spi_slave *slave; -u32 data; -#ifdef CONFIG_KIRKWOOD -static const u32 kwspi_mpp_config[2 ][2 ] = { - { MPP0_SPI_SCn,0 },/* if cs == 0 */ - { MPP7_SPI_SCn,0 }/* if cs != 0 */ - }; -#endif - -if (!spi_cs_is_valid (bus, cs)) -return NULL ; - - slave =spi_alloc_slave_base (bus, cs); -if (!slave) -return NULL ; - -writel (KWSPI_SMEMRDY , &spireg->ctrl); - -/* calculate spi clock prescaller using max_hz */ - data = ((CONFIG_SYS_TCLK /2 ) / max_hz) +0x10 ; - data = data <KWSPI_CLKPRESCL_MIN ?KWSPI_CLKPRESCL_MIN : data; - data = data >KWSPI_CLKPRESCL_MASK ?KWSPI_CLKPRESCL_MASK : data; - -/* program spi clock prescaller using max_hz */ -writel (KWSPI_ADRLEN_3BYTE | data, &spireg->cfg); -debug ("data = 0x%08x\n" , data); - -writel (KWSPI_SMEMRDIRQ , &spireg->irq_cause); -writel (KWSPI_IRQMASK , &spireg->irq_mask); - -#ifdef CONFIG_KIRKWOOD -/* program mpp registers to select SPI_CSn */ -kirkwood_mpp_conf (kwspi_mpp_config[cs ?1 :0 ], cs_spi_mpp_back); -#endif - -return slave; -} - -void spi_free_slave (struct spi_slave *slave) -{ -#ifdef CONFIG_KIRKWOOD -kirkwood_mpp_conf (cs_spi_mpp_back,NULL ); -#endif -free (slave); -} - -#if defined(CONFIG_SYS_KW_SPI_MPP ) -u32 spi_mpp_backup[4 ]; -#endif - -__attribute__((weak))int board_spi_claim_bus (struct spi_slave *slave) -{ -return 0 ; -} - -int spi_claim_bus (struct spi_slave *slave) -{ -#if defined(CONFIG_SYS_KW_SPI_MPP ) -u32 config; -u32 spi_mpp_config[4 ]; - - config =CONFIG_SYS_KW_SPI_MPP ; - -if (config &MOSI_MPP6 ) - spi_mpp_config[0 ] =MPP6_SPI_MOSI ; -else - spi_mpp_config[0 ] =MPP1_SPI_MOSI ; - -if (config &SCK_MPP10 ) - spi_mpp_config[1 ] =MPP10_SPI_SCK ; -else - spi_mpp_config[1 ] =MPP2_SPI_SCK ; - -if (config &MISO_MPP11 ) - spi_mpp_config[2 ] =MPP11_SPI_MISO ; -else - spi_mpp_config[2 ] =MPP3_SPI_MISO ; - - spi_mpp_config[3 ] =0 ; - spi_mpp_backup[3 ] =0 ; - -/* set new spi mpp and save current mpp config */ -kirkwood_mpp_conf (spi_mpp_config, spi_mpp_backup); -#endif - -return board_spi_claim_bus (slave); -} - -__attribute__((weak))void board_spi_release_bus (struct spi_slave *slave) -{ -} - -void spi_release_bus (struct spi_slave *slave) -{ -#if defined(CONFIG_SYS_KW_SPI_MPP ) -kirkwood_mpp_conf (spi_mpp_backup,NULL ); -#endif - -board_spi_release_bus (slave); -} - -#ifndef CONFIG_SPI_CS_IS_VALID -/* -* you can define this function board specific -* define above CONFIG in board specific config file and -* provide the function in board specific src file -*/ -int spi_cs_is_valid (unsigned int bus,unsigned int cs) -{ -return bus ==0 && (cs ==0 || cs ==1 ); -} -#endif - -void spi_init (void ) -{ -} - -void spi_cs_activate (struct spi_slave *slave) -{ -_spi_cs_activate (spireg); -} - -void spi_cs_deactivate (struct spi_slave *slave) -{ -_spi_cs_deactivate (spireg); -} - -int spi_xfer (struct spi_slave *slave,unsigned int bitlen, -const void *dout,void *din,unsigned long flags) -{ -return _spi_xfer (spireg, bitlen, dout, din, flags); -} - -#else - -/* Here now the DM part */ - -struct mvebu_spi_dev { -bool is_errata_50mhz_ac; -}; - -struct mvebu_spi_platdata { -struct kwspi_registers *spireg; -bool is_errata_50mhz_ac; -}; - -struct mvebu_spi_priv { -struct kwspi_registers *spireg; -}; -static int mvebu_spi_set_speed (struct udevice *bus,uint hz) {struct mvebu_spi_platdata *plat =dev_get_platdata (bus);@@ -330,15 +178,6 @@ static int mvebu_spi_set_mode(struct udevice *bus, uint mode)return 0 ; } -static int mvebu_spi_xfer (struct udevice *dev,unsigned int bitlen, -const void *dout,void *din,unsigned long flags) -{ -struct udevice *bus = dev->parent; -struct mvebu_spi_platdata *plat =dev_get_platdata (bus); - -return _spi_xfer (plat->spireg, bitlen, dout, din, flags); -} -static int mvebu_spi_claim_bus (struct udevice *dev) {struct udevice *bus = dev->parent;@@ -364,6 +203,18 @@ static int mvebu_spi_probe(struct udevice *bus)return 0 ; } +static const struct dm_spi_ops mvebu_spi_ops = { + .claim_bus = mvebu_spi_claim_bus, + .xfer = mvebu_spi_xfer, + .set_speed = mvebu_spi_set_speed, + .set_mode = mvebu_spi_set_mode, +/* +* cs_info is not needed, since we require all chip selects to be +* in the device tree explicitly +*/ +}; + +#if CONFIG_IS_ENABLED (OF_CONTROL )static int mvebu_spi_ofdata_to_platdata (struct udevice *bus) {struct mvebu_spi_platdata *plat =dev_get_platdata (bus);@@ -376,17 +227,6 @@ static int mvebu_spi_ofdata_to_platdata(struct udevice *bus)return 0 ; } -static const struct dm_spi_ops mvebu_spi_ops = { - .claim_bus = mvebu_spi_claim_bus, - .xfer = mvebu_spi_xfer, - .set_speed = mvebu_spi_set_speed, - .set_mode = mvebu_spi_set_mode, -/* -* cs_info is not needed, since we require all chip selects to be -* in the device tree explicitly -*/ -}; -static const struct mvebu_spi_dev armada_xp_spi_dev_data = { .is_errata_50mhz_ac = false, };@@ -414,15 +254,17 @@ static const struct udevice_id mvebu_spi_ids[] = { }, { } }; +#endif U_BOOT_DRIVER (mvebu_spi) = { .name ="mvebu_spi" , .id =UCLASS_SPI , +#if CONFIG_IS_ENABLED(OF_CONTROL) .of_match = mvebu_spi_ids, - .ops = &mvebu_spi_ops, .ofdata_to_platdata = mvebu_spi_ofdata_to_platdata, .platdata_auto_alloc_size =sizeof (struct mvebu_spi_platdata ), +#endif + .ops = &mvebu_spi_ops, .priv_auto_alloc_size =sizeof (struct mvebu_spi_priv ), .probe = mvebu_spi_probe, }; -#endif include/dm/platform_data/spi_kirkwood.h new file +5
-0@@ -0,0 +1,15 @@ +/* +* Copyright (C) 2018 Jagan Teki <[email protected]> +* +* SPDX-License-Identifier: GPL-2.0+ +*/
include/dm/platform_data/spi_kirkwood.h line 15
Quoted 10 lines
include/dm/platform_data/spi_kirkwood.h new file +10
-0+ +#ifndef __spi_kirkwood_h +#define __spi_kirkwood_h + +struct mvebu_spi_platdata { +struct kwspi_registers *spireg; +bool is_errata_50mhz_ac; +}; + +#endif /* __spi_kirkwood_h */
So you are removing non-DM support from the SPI driver, which breaks current Kirkwood board using this SPI driver (e.g. inetspace_v2). Are you aware of this breakage?
Thanks,
Stefan
PATCH 2/2 spi: kirkwood: Full dm conversion
Quoted 15 lines · Stefan Roese
Hi Jagan,
Quoted 11 lines · Jagan Teki
kirkwood now support dt along with platform data, respective boards need to switch into dm for the same.
Signed-off-by Jagan Teki <[email protected]>--- drivers/spi/kirkwood_spi.c | 240 ++++++-------------------------- include/dm/platform_data/spi_kirkwood.h | 15 ++ 2 files changed, 56 insertions(+), 199 deletions(-)create mode 100644
include/dm/platform_data/spi_kirkwood.h
snip
Quoted 4 lines
Quoted 4 lines
include/dm/platform_data/spi_kirkwood.h new file +4
-0+ +struct mvebu_spi_platdata { +struct kwspi_registers *spireg; +bool is_errata_50mhz_ac;
Quoted 8 lines
include/dm/platform_data/spi_kirkwood.h line 15
Quoted 4 lines
include/dm/platform_data/spi_kirkwood.h new file +3
-0+}; + +#endif /* __spi_kirkwood_h */ So you are removing non-DM support from the SPI driver, which breaks current Kirkwood board using this SPI driver (e.g.
inetspace_v2). Are you aware of this breakage?
Yes, we have migration plan for DM_SPI and DM_SPI_FLASH [1] I have converted this to expect the board MAINTAINERS do switch DM before the deadline. I will not apply until all used boards moved or deadline expire.
[1] doc/driver-model/MIGRATION.txt
Jagan.
Signature · 4 lines
Jagan Teki Free Software Engineer | www.openedev.com U-Boot, Linux | Upstream Maintainer Hyderabad, India.
PATCH 2/2 spi: kirkwood: Full dm conversion
Hi Jagan,
Quoted 32 lines · Jagan Teki
Quoted 15 lines · Stefan Roese
Hi Jagan,
Quoted 11 lines · Jagan Teki
kirkwood now support dt along with platform data, respective boards need to switch into dm for the same.
Signed-off-by Jagan Teki <[email protected]>--- drivers/spi/kirkwood_spi.c | 240 ++++++-------------------------- include/dm/platform_data/spi_kirkwood.h | 15 ++ 2 files changed, 56 insertions(+), 199 deletions(-)create mode 100644
include/dm/platform_data/spi_kirkwood.hsnip
Quoted 4 lines
Quoted 4 lines
include/dm/platform_data/spi_kirkwood.h new file +4
-0+ +struct mvebu_spi_platdata { +struct kwspi_registers *spireg; +bool is_errata_50mhz_ac;Quoted 8 lines
include/dm/platform_data/spi_kirkwood.h line 15
Quoted 4 lines
include/dm/platform_data/spi_kirkwood.h new file +3
-0+}; + +#endif /* __spi_kirkwood_h */ So you are removing non-DM support from the SPI driver, which breaks current Kirkwood board using this SPI driver (e.g.
inetspace_v2). Are you aware of this breakage?
Quoted 4 lines
Yes, we have migration plan for
DM_SPIandDM_SPI_FLASH[1] I have converted this to expect the boardMAINTAINERSdo switch DM before the deadline. I will not apply until all used boards moved or deadline expire.
Then please Cc the board maintainers of these boards that will break here, so that they are aware (again) of this migration and can possibly take some action.
Thanks,
Stefan
PATCH 2/2 spi: kirkwood: Full dm conversion
In reply to Jagan TekiQuoted 2 lines · Jagan Teki
kirkwood now support dt along with platform data, respective boards need to switch into dm for the same.
Added all board mainatiner, using this driver on their relevant boards. So try to switch to DM_SPI(SPI_FLASH) before migration deadline expires.
Jagan.
Signature · 4 lines
Jagan Teki Free Software Engineer | www.openedev.com U-Boot, Linux | Upstream Maintainer Hyderabad, India.
PATCH 2/2 spi: kirkwood: Full dm conversion
Hi Jagan,
Quoted 9 lines · Jagan Teki
Quoted 2 lines · Jagan Teki
kirkwood now support dt along with platform data, respective boards need to switch into dm for the same.
Added all board mainatiner, using this driver on their relevant boards. So try to switch to
DM_SPI(SPI_FLASH)before migration deadline expires.Jagan.
Hopefully I can get to db88f6820-amc next week.
Stefan, did you want me to send a patch for db88f6820-gp at the same time since the amc board is derived from it?
PATCH 2/2 spi: kirkwood: Full dm conversion
Hi Chris,
Quoted 9 lines · Chris Packham
Quoted 8 lines · Jagan Teki
Quoted 2 lines · Jagan Teki
kirkwood now support dt along with platform data, respective boards need to switch into dm for the same.
Added all board mainatiner, using this driver on their relevant boards. So try to switch to
DM_SPI(SPI_FLASH)before migration deadline expires.
Quoted 6 lines
Quoted 1 line
Jagan.
Hopefully I can get to db88f6820-amc next week.
Stefan, did you want me to send a patch for db88f6820-gp at the same time since the amc board is derived from it?
Sure, that would be helpful.
But I'm a little bit puzzled about this DM conversion for MVEBU platforms. As all MVEBU targets are already using DM and DM_SPI:
arch/arm/Kconfig:
...
config ARCH_MVEBU
bool "Marvell MVEBU family (Armada XP/375/38x/3700/7K/8K)"
select OF_CONTROL
select OF_SEPARATE
select DM
select DM_ETH
select DM_SERIAL
select DM_SPI
select DM_SPI_FLASHSo there should be no need to change something here. Or is something not working correctly on some of the MVEBU platforms?
What really is missing is the conversion of the older Marvell platforms, like Kirkwood and Orion. Those are quite ancient and have no DM / OF / DT support at all (AFAIR). So here is the real work that needs to be done. Or all those boards might get dropped soon.
Thanks,
Stefan
PATCH 2/2 spi: kirkwood: Full dm conversion
Quoted 6 lines · Stefan Roese
Hi Chris,
Quoted 2 lines · Chris Packham
Quoted 1 line · Jagan Teki
On Thu, Mar 15, 2018 at 5:03 PM, Jagan Teki
Quoted 32 lines · wrote:
Quoted 7 lines
Quoted 7 lines
Quoted 2 lines
kirkwood now support dt along with platform data, respective boards need to switch into dm for the same.
Added all board mainatiner, using this driver on their relevant boards. So try to switch to
DM_SPI(SPI_FLASH)before migration deadline expires.Quoted 6 lines
Quoted 1 line
Jagan.
Hopefully I can get to db88f6820-amc next week.
Stefan, did you want me to send a patch for db88f6820-gp at the same time since the amc board is derived from it?
Sure, that would be helpful.
But I'm a little bit puzzled about this DM conversion for MVEBU platforms. As all MVEBU targets are already using DM and
DM_SPI:
arch/arm/Kconfig:...
configARCH_MVEBUbool "Marvell MVEBU family (Armada XP/375/38x/3700/7K/8K)" select OF_CONTROL select OF_SEPARATE select DM select DM_ETH select DM_SERIAL select DM_SPI select DM_SPI_FLASH
Quoted 8 lines
So there should be no need to change something here. Or is something not working correctly on some of the MVEBU platforms?
What really is missing is the conversion of the older Marvell platforms, like Kirkwood and Orion. Those are quite ancient and have no DM / OF / DT support at all (AFAIR). So here is the real work that needs to be done. Or all those boards might get dropped soon.
Yeah sure enough
=> dm tree
Class Probed Driver Name
----------------------------------------
root [ + ] root_drive root_driver simple_bus [ + ] generic_si `-- soc simple_bus [ + ] generic_si `-- internal-regs spi [ + ] mvebu_spi |-- spi at 10680 spi_flash [ ] spi_flash_ | `-- spi-flash at 0 i2c [ ] i2c_mvtwsi |-- i2c at 11000 serial [ + ] ns16550_se |-- serial at 12000 eth [ + ] mvneta |-- ethernet at 34000 usb [ ] ehci_mvebu |-- usb at 58000 eth [ + ] mvneta `-- ethernet at 70000
So nothing to do for MVEBU.
I do have a passing interest in keeping kirkwood support but lack an upstream supported platform to use. I'll have to see if I can update one of our boards to use and upstream bootloader.
PATCH 2/2 spi: kirkwood: Full dm conversion
Hi Chris,
Quoted 47 lines · Chris Packham
Quoted 21 lines · Stefan Roese
Quoted 2 lines
Stefan, did you want me to send a patch for db88f6820-gp at the same time since the amc board is derived from it?
Sure, that would be helpful.
But I'm a little bit puzzled about this DM conversion for MVEBU platforms. As all MVEBU targets are already using DM and
DM_SPI:
arch/arm/Kconfig:...
configARCH_MVEBUbool "Marvell MVEBU family (Armada XP/375/38x/3700/7K/8K)" select OF_CONTROL select OF_SEPARATE select DM select DM_ETH select DM_SERIAL select DM_SPI select DM_SPI_FLASHQuoted 8 lines
So there should be no need to change something here. Or is something not working correctly on some of the MVEBU platforms?
What really is missing is the conversion of the older Marvell platforms, like Kirkwood and Orion. Those are quite ancient and have no DM / OF / DT support at all (AFAIR). So here is the real work that needs to be done. Or all those boards might get dropped soon.
Yeah sure enough
=> dm tree
Class Probed Driver Name
----------------------------------------root [ + ] root_drive root_driver simple_bus [ + ] generic_si `-- soc simple_bus [ + ] generic_si `-- internal-regs spi [ + ] mvebu_spi |-- spi at 10680 spi_flash [ ] spi_flash_ | `-- spi-flash at 0 i2c [ ] i2c_mvtwsi |-- i2c at 11000 serial [ + ] ns16550_se |-- serial at 12000 eth [ + ] mvneta |-- ethernet at 34000 usb [ ] ehci_mvebu |-- usb at 58000 eth [ + ] mvneta `-- ethernet at 70000
Quoted 1 line
So nothing to do for MVEBU.
Yep, thats what I thought.
Quoted 3 lines
I do have a passing interest in keeping kirkwood support but lack an upstream supported platform to use. I'll have to see if I can update one of our boards to use and upstream bootloader.
Yes, that would be good. As I fear, that Kirkwood might get dropped completely, if nobody reacts here and updates this platform to DM, DT etc.
Thanks,
Stefan
PATCH 2/2 spi: kirkwood: Full dm conversion
In reply to Jagan TekiQuoted 7 lines · Jagan Teki
Quoted 2 lines · Jagan Teki
kirkwood now support dt along with platform data, respective boards need to switch into dm for the same.
Added all board mainatiner, using this driver on their relevant boards. So try to switch to
DM_SPI(SPI_FLASH)before migration deadline expires.
Hi Jagan,
And what is the deadline exactly ?
Simon
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180427/1bb6cc20/attachment.sig>
PATCH 2/2 spi: kirkwood: Full dm conversion
Quoted 5 lines · Simon Guinot
Quoted 4 lines · Jagan Teki
Quoted 2 lines · Jagan Teki
kirkwood now support dt along with platform data, respective boards need to switch into dm for the same.
Quoted 7 lines
Quoted 3 lines
Added all board mainatiner, using this driver on their relevant boards. So try to switch to
DM_SPI(SPI_FLASH)before migration deadline expires.Hi Jagan,
And what is the deadline exactly ?
See DM_SPI/SPI_FLASH migration details from, doc/driver-model/MIGRATION.txt
Jagan.
PATCH 2/2 spi: kirkwood: Full dm conversion
Quoted 10 lines · Jagan Teki
Quoted 9 lines · Simon Guinot
Quoted 7 lines · Jagan Teki
Quoted 2 lines · Jagan Teki
kirkwood now support dt along with platform data, respective boards need to switch into dm for the same.
Added all board mainatiner, using this driver on their relevant boards. So try to switch to
DM_SPI(SPI_FLASH)before migration deadline expires.
Quoted 5 lines
Quoted 3 lines
Hi Jagan,
And what is the deadline exactly ?
See DM_SPI/SPI_FLASH migration details from,
doc/driver-model/MIGRATION.txt
Thanks for letting me know Jagan...
I am no longer reading the U-Boot ML. So if you need me to do some changes on the LaCie/Seagate boards then it would be better to send me an email rather than burying information inside a file.
Simon
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180501/76c17af8/attachment.sig>
PATCH 2/2 spi: kirkwood: Full dm conversion
Hi Simon,
Quoted 11 lines · Simon Guinot
Quoted 10 lines · Jagan Teki
Quoted 9 lines · Simon Guinot
Quoted 7 lines · Jagan Teki
Quoted 2 lines · Jagan Teki
kirkwood now support dt along with platform data, respective boards need to switch into dm for the same.
Added all board mainatiner, using this driver on their relevant boards. So try to switch to
DM_SPI(SPI_FLASH)before migration deadline expires.
Quoted 7 lines
Quoted 5 lines
Quoted 3 lines
Hi Jagan,
And what is the deadline exactly ?
See DM_SPI/SPI_FLASH migration details from,
doc/driver-model/MIGRATION.txtThanks for letting me know Jagan...
Just to be clear here. The older Marvell platforms Orion and Kirkwood completely lack DM (Driver-Model) and DT (Device-Tree) support in U-Boot. This needs to be added (similar to what I've done to the newer parts beginning with Armada XP / 38x) so that the SPI driver (and others) can be used as DM-enabled driver.
Please see arch/arm/mach-mvebu/ for more details here.
Any work on this is greatly appreciated as I fear that the support for these older SoC's might get dropped completely otherwise soon.
Thanks,
Stefan
PATCH 2/2 spi: kirkwood: Full dm conversion
Hi All,
Quoted 5 lines · Stefan Roese
Hi Simon,
Quoted 2 lines · Simon Guinot
Quoted 1 line · Jagan Teki
On Fri, Apr 27, 2018 at 2:21 PM, Simon Guinot <
Quoted 2 lines · [email protected]> wrote:
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines · Jagan Teki
Quoted 1 line
On Thu, Mar 15, 2018 at 5:03 PM, Jagan Teki <
Quoted 7 lines · [email protected]> wrote:
Quoted 7 lines
Quoted 7 lines
Quoted 7 lines
Quoted 6 lines
Quoted 2 lines
kirkwood now support dt along with platform data, respective boards need to switch into dm for the same.
Added all board mainatiner, using this driver on their relevant boards. So try to switch to
DM_SPI(SPI_FLASH)before migration deadline expires.
Quoted 5 lines
Quoted 5 lines
Quoted 5 lines
Quoted 3 lines
Hi Jagan,
And what is the deadline exactly ?
See DM_SPI/SPI_FLASH migration details from,
doc/driver-model/MIGRATION.txt
Quoted 9 lines
Quoted 2 lines
Thanks for letting me know Jagan...
Just to be clear here. The older Marvell platforms Orion and Kirkwood completely lack DM (Driver-Model) and DT (Device-Tree) support in U-Boot. This needs to be added (similar to what I've done to the newer parts beginning with Armada XP / 38x) so that the SPI driver (and others) can be used as DM-enabled driver.
Quoted 4 lines
Please see
arch/arm/mach-mvebu/for more details here.Any work on this is greatly appreciated as I fear that the support for these older SoC's might get dropped completely otherwise soon.
I had a quick try on one of the kirkwood based boards I have. It was pretty easy to bring in the dts files from Linux and get some basic stuff working. I started with i2c since I can still boot without it, I haven't been brave enough to try spi yet.
Hopefully I can spend a bit more time on it over the weekend.
In terms of a long-term plan. I could upstream support for our board, we still include it in the source we distribute as part of our GPL compliance. Since it's a older board that has been fairly stable we're not doing a lot of development on it. My motivation for retaining support for kirkwood is just in case we have some other EOL part that requires us to release a new bootloader. I could do a blind conversion of other in-tree kirkwood boards but my ability to test them would be quite limited.
PATCH 2/2 spi: kirkwood: Full dm conversion
Hi Chris,
Quoted 46 lines · Chris Packham
Hi All,
Quoted 5 lines · Stefan Roese
Hi Simon,
Quoted 2 lines · Simon Guinot
Quoted 1 line · Jagan Teki
On Fri, Apr 27, 2018 at 2:21 PM, Simon Guinot <
Quoted 2 lines · simon.guinot at sequanux.org> wrote:
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines · Jagan Teki
Quoted 1 line
On Thu, Mar 15, 2018 at 5:03 PM, Jagan Teki <
Quoted 7 lines · jagan at amarulasolutions.com> wrote:
Quoted 7 lines
Quoted 7 lines
Quoted 7 lines
Quoted 6 lines
Quoted 2 lines
kirkwood now support dt along with platform data, respective boards need to switch into dm for the same.
Added all board mainatiner, using this driver on their relevant boards. So try to switch to
DM_SPI(SPI_FLASH)before migration deadline expires.Quoted 5 lines
Quoted 5 lines
Quoted 5 lines
Quoted 3 lines
Hi Jagan,
And what is the deadline exactly ?
See DM_SPI/SPI_FLASH migration details from,
doc/driver-model/MIGRATION.txtQuoted 9 lines
Quoted 2 lines
Thanks for letting me know Jagan...
Just to be clear here. The older Marvell platforms Orion and Kirkwood completely lack DM (Driver-Model) and DT (Device-Tree) support in U-Boot. This needs to be added (similar to what I've done to the newer parts beginning with Armada XP / 38x) so that the SPI driver (and others) can be used as DM-enabled driver.
Quoted 4 lines
Please see
arch/arm/mach-mvebu/for more details here.Any work on this is greatly appreciated as I fear that the support for these older SoC's might get dropped completely otherwise soon.
I had a quick try on one of the kirkwood based boards I have. It was pretty easy to bring in the dts files from Linux and get some basic stuff working. I started with i2c since I can still boot without it, I haven't been brave enough to try spi yet.
Hopefully I can spend a bit more time on it over the weekend.
Quoted 7 lines
In terms of a long-term plan. I could upstream support for our board, we still include it in the source we distribute as part of our GPL compliance. Since it's a older board that has been fairly stable we're not doing a lot of development on it. My motivation for retaining support for kirkwood is just in case we have some other EOL part that requires us to release a new bootloader. I could do a blind conversion of other in-tree kirkwood boards but my ability to test them would be quite limited.
I have a eSATA Sheevaplug and a IB-NAS6210 lying around here. Both are supported by U-Boot and the Linux kernel. Provided they still work, I could test on these boards if that helps.
PATCH 2/2 spi: kirkwood: Full dm conversion
In reply to Chris PackhamHi Chris,
Quoted 39 lines · Chris Packham
Hi All,
Quoted 5 lines · Stefan Roese
Hi Simon,
Quoted 2 lines · Simon Guinot
Quoted 1 line · Jagan Teki
On Fri, Apr 27, 2018 at 2:21 PM, Simon Guinot <
Quoted 2 lines · simon.guinot at sequanux.org> wrote:
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines · Jagan Teki
Quoted 1 line
On Thu, Mar 15, 2018 at 5:03 PM, Jagan Teki <
Quoted 7 lines · jagan at amarulasolutions.com> wrote:
Quoted 7 lines
Quoted 7 lines
Quoted 7 lines
Quoted 6 lines
Quoted 2 lines
kirkwood now support dt along with platform data, respective boards need to switch into dm for the same.
Added all board mainatiner, using this driver on their relevant boards. So try to switch to
DM_SPI(SPI_FLASH)before migration deadline expires.Quoted 5 lines
Quoted 5 lines
Quoted 5 lines
Quoted 3 lines
Hi Jagan,
And what is the deadline exactly ?
See DM_SPI/SPI_FLASH migration details from,
doc/driver-model/MIGRATION.txtQuoted 9 lines
Quoted 2 lines
Thanks for letting me know Jagan...
Just to be clear here. The older Marvell platforms Orion and Kirkwood completely lack DM (Driver-Model) and DT (Device-Tree) support in U-Boot. This needs to be added (similar to what I've done to the newer parts beginning with Armada XP / 38x) so that the SPI driver (and others) can be used as DM-enabled driver.
Quoted 4 lines
Please see
arch/arm/mach-mvebu/for more details here.Any work on this is greatly appreciated as I fear that the support for these older SoC's might get dropped completely otherwise soon.
Quoted 6 lines
I had a quick try on one of the kirkwood based boards I have. It was pretty easy to bring in the dts files from Linux and get some basic stuff working. I started with i2c since I can still boot without it, I haven't been brave enough to try spi yet.
Hopefully I can spend a bit more time on it over the weekend.
This sound just great. Thanks.
Quoted 7 lines
In terms of a long-term plan. I could upstream support for our board, we still include it in the source we distribute as part of our GPL compliance. Since it's a older board that has been fairly stable we're not doing a lot of development on it. My motivation for retaining support for kirkwood is just in case we have some other EOL part that requires us to release a new bootloader. I could do a blind conversion of other in-tree kirkwood boards but my ability to test them would be quite limited.
This "blind conversion" is definitely much better, than the removal. Others might be able to test some of the boards. I don't have any of those - so I can't help out here.
Thanks,
Stefan
PATCH 2/2 spi: kirkwood: Full dm conversion
Quoted 43 lines · Stefan Roese
Hi Chris,
Quoted 40 lines · Chris Packham
Hi All,
Quoted 5 lines · Stefan Roese
Hi Simon,
Quoted 2 lines · Simon Guinot
Quoted 1 line · Jagan Teki
On Fri, Apr 27, 2018 at 2:21 PM, Simon Guinot <
Quoted 2 lines · simon.guinot at sequanux.org> wrote:
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines · Jagan Teki
Quoted 1 line
On Thu, Mar 15, 2018 at 5:03 PM, Jagan Teki <
Quoted 7 lines · jagan at amarulasolutions.com> wrote:
Quoted 7 lines
Quoted 7 lines
Quoted 7 lines
Quoted 6 lines
Quoted 2 lines
kirkwood now support dt along with platform data, respective boards need to switch into dm for the same.
Added all board mainatiner, using this driver on their relevant boards. So try to switch to
DM_SPI(SPI_FLASH)before migration deadline expires.Quoted 5 lines
Quoted 5 lines
Quoted 5 lines
Quoted 3 lines
Hi Jagan,
And what is the deadline exactly ?
See DM_SPI/SPI_FLASH migration details from,
doc/driver-model/MIGRATION.txtQuoted 9 lines
Quoted 2 lines
Thanks for letting me know Jagan...
Just to be clear here. The older Marvell platforms Orion and Kirkwood completely lack DM (Driver-Model) and DT (Device-Tree) support in U-Boot. This needs to be added (similar to what I've done to the newer parts beginning with Armada XP / 38x) so that the SPI driver (and others) can be used as DM-enabled driver.
Quoted 4 lines
Please see
arch/arm/mach-mvebu/for more details here.Any work on this is greatly appreciated as I fear that the support for these older SoC's might get dropped completely otherwise soon.
I had a quick try on one of the kirkwood based boards I have. It was
pretty
Quoted 1 line
Quoted 1 line
easy to bring in the dts files from Linux and get some basic stuff
working.
Quoted 1 line
Quoted 1 line
I started with i2c since I can still boot without it, I haven't been
brave
Quoted 8 lines
Quoted 3 lines
enough to try spi yet.
Hopefully I can spend a bit more time on it over the weekend.
This sound just great. Thanks.
Quoted 2 lines
In terms of a long-term plan. I could upstream support for our board, we still include it in the source we distribute as part of our GPL
compliance.
Quoted 1 line
Quoted 1 line
Since it's a older board that has been fairly stable we're not doing a
lot
Quoted 1 line
Quoted 1 line
of development on it. My motivation for retaining support for kirkwood
is
Quoted 1 line
Quoted 1 line
just in case we have some other EOL part that requires us to release a
new
Quoted 1 line
Quoted 1 line
bootloader. I could do a blind conversion of other in-tree kirkwood
boards
Quoted 5 lines
Quoted 1 line
but my ability to test them would be quite limited.
This "blind conversion" is definitely much better, than the removal. Others might be able to test some of the boards. I don't have any of those - so I can't help out here.
An update on this.
I've tested these 2 patches from Jagan on my out-of-tree Kirkwood board with the addition of http://patchwork.ozlabs.org/patch/909973/ the chip seems accessible. So for both
In terms of getting the conversion done. I'm about halfway through bringing in the dts files from Linux. My plan is to send an initial series for boards that don't enable CONFIG_CMD_SF that just imports the dts and enables CONFIG_OF_CONTROL without actually enabling the DM for any subsystem (that isn't already enabled).
Then for the boards with SF enabled I'll need to build test them with and without Jagan's patches. So that could take a bit longer. Unfortunately in order to maintain bisect-ability these will have have to go in before Jagan's changes can be merged.