Re: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata

2020-05-14 Thread Simon Glass
Hi Faiz,

On Thu, 14 May 2020 at 10:40, Faiz Abbas  wrote:
>
> Hi Tom,
>
> On 14/05/20 8:29 pm, Tom Rini wrote:
> > On Thu, May 14, 2020 at 01:49:37PM +0530, Faiz Abbas wrote:
> >> Simon,
> >>
> >> On 05/05/20 12:20 pm, Faiz Abbas wrote:
> >>> Hi,
> >>>
> >>> On 04/05/20 6:44 pm, Simon Glass wrote:
>  Hi Bart,
> 
>  On Mon, 4 May 2020 at 01:10, Bartosz Golaszewski  wrote:
> >
> > pt., 1 maj 2020 o 20:32 Tom Rini  napisał(a):
> >>
> >> On Thu, Apr 30, 2020 at 01:43:30PM +0200, Bartosz Golaszewski wrote:
> >>> wt., 28 kwi 2020 o 09:01 Faiz Abbas  napisał(a):
> 
>  +Bartosz
> 
>  On 28/04/20 9:47 am, Lokesh Vutla wrote:
> > +Faiz,
> >
> > On 28/04/20 12:29 AM, Tom Rini wrote:
> >> On Mon, Apr 27, 2020 at 05:33:41AM +, Peng Fan wrote:
>  Subject: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with 
>  of-platdata
> 
> ...
> >>>
> >>> I can confirm - this *does* break the mmc boot on da850-lcdk.
> >>
> >> So who is going to fix the driver to unblock Simon's series?
> >>
> >
> > Is this something that will take a lot of work? What exactly needs
> > doing? I'm not sure what "use of-platdata properly" means.
> 
>  This board is defining CONFIG_SPL_OF_PLATDATA which means that device
>  tree is not available in SPL. Instead you need to use a C structure
>  created by dtoc. It basically involves creating that struct and
>  getting the data from that instead of calling the DT functions. I
>  expect it will take 2-4 hours to figure out, code and test.
> 
>  See of-plat.rst for full documentation. There are quite a few examples 
>  for mmc:
> 
>  grep PLATDATA drivers/mmc/*.c
>  drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
>  drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
>  drivers/mmc/ftsdc010_mci.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
>  drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
>  drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
>  drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
>  drivers/mmc/mxsmmc.c: debug("OF_PLATDATA: regs: 0x%p bw: %d clkid: %d
>  non_removable: %d\n",
>  drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
>  !CONFIG_IS_ENABLED(OF_PLATDATA)
>  drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
>  !CONFIG_IS_ENABLED(OF_PLATDATA)
>  drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
>  !CONFIG_IS_ENABLED(OF_PLATDATA)
>  drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
>  !CONFIG_IS_ENABLED(OF_PLATDATA)
>  drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
>  !CONFIG_IS_ENABLED(OF_PLATDATA)
>  drivers/mmc/rockchip_dw_mmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
>  drivers/mmc/rockchip_dw_mmc.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
>  drivers/mmc/rockchip_dw_mmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
>  drivers/mmc/rockchip_sdhci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
>  drivers/mmc/rockchip_sdhci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
>  drivers/mmc/rockchip_sdhci.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
> 
> >>
> >> In all the examples above, platdata reg filed is directly being used for
> >> to assign a register base address but looking at davinci platdata that is 
> >> generated,
> >> spl/dts/dt-platdata.c:
> >>
> >> static const struct dtd_simple_bus dtv_soc_at_1c0 = {
> >> .model  = "da850",
> >> .ranges = {0x0, 0x1c0, 0x40},
> >> };
> >> U_BOOT_DEVICE(soc_at_1c0) = {
> >> .name   = "simple_bus",
> >> .platdata   = &dtv_soc_at_1c0,
> >> .platdata_size  = sizeof(dtv_soc_at_1c0),
> >> };
> >>
> >> static const struct dtd_ti_da830_uart dtv_serial_at_10d000 = {
> >> .power_domains  = {0xa, 0xd},
> >> .reg= {0x10d000, 0x100},
> >> .reg_io_width   = 0x4,
> >> .reg_shift  = 0x2,
> >> };
> >> U_BOOT_DEVICE(serial_at_10d000) = {
> >> .name   = "ti_da830_uart",
> >> .platdata   = &dtv_serial_at_10d000,
> >> .platdata_size  = sizeof(dtv_serial_at_10d000),
> >> };
> >>
> >> static const struct dtd_ti_da830_mmc dtv_mmc_at_4 = {
> >> .bus_width  = 0x4,
> >> .cap_mmc_highspeed  = true,
> >> .cap_sd_highspeed   = true,
> >> .cd_gpios   = {0x16, 0x40, 0x1},
> >> .dma_names  = {"rx", "tx"},
> >> .dmas   = {0x14, 0x10, 0x0, 0x14, 0x11, 0x0},
> >> .max_frequency  = 0x2faf080,
> >> .reg= {0x4, 0x1000},
> >> };
> >> U_BOOT_DEVICE(mmc_at_4) = {
> >> .name   = "ti_da830_mmc",
> >> .platdata   = &dtv_mmc_a

Re: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata

2020-05-14 Thread Simon Glass
Hi Faiz,

+Walter Lozano

On Thu, 14 May 2020 at 02:43, Faiz Abbas  wrote:
>
> Simon,
>
> On 05/05/20 12:20 pm, Faiz Abbas wrote:
> > Hi,
> >
> > On 04/05/20 6:44 pm, Simon Glass wrote:
> >> Hi Bart,
> >>
> >> On Mon, 4 May 2020 at 01:10, Bartosz Golaszewski  wrote:
> >>>
> >>> pt., 1 maj 2020 o 20:32 Tom Rini  napisał(a):
> 
>  On Thu, Apr 30, 2020 at 01:43:30PM +0200, Bartosz Golaszewski wrote:
> > wt., 28 kwi 2020 o 09:01 Faiz Abbas  napisał(a):
> >>
> >> +Bartosz
> >>
> >> On 28/04/20 9:47 am, Lokesh Vutla wrote:
> >>> +Faiz,
> >>>
> >>> On 28/04/20 12:29 AM, Tom Rini wrote:
>  On Mon, Apr 27, 2020 at 05:33:41AM +, Peng Fan wrote:
> >> Subject: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with 
> >> of-platdata
> >>
> >> At present this driver is enabled in SPL on omapl138_lcdk, which 
> >> uses
> >> of-platdata. The driver needs to be ported to use of-platdata 
> >> properly.
> >> For now, avoid a build error by returning an error.
> >>
> >> Signed-off-by: Simon Glass 
> >>>
> >>> Does this break the boot on omap l138?
> >>>
> >>
> >> I don't have a board at hand to test this out. Bartosz can you help 
> >> test this with
> >> omapl138?
> >>
> >> Thanks,
> >> Faiz
> >
> > Hi Faiz,
> >
> > I can confirm - this *does* break the mmc boot on da850-lcdk.
> 
>  So who is going to fix the driver to unblock Simon's series?
> 
> >>>
> >>> Is this something that will take a lot of work? What exactly needs
> >>> doing? I'm not sure what "use of-platdata properly" means.
> >>
> >> This board is defining CONFIG_SPL_OF_PLATDATA which means that device
> >> tree is not available in SPL. Instead you need to use a C structure
> >> created by dtoc. It basically involves creating that struct and
> >> getting the data from that instead of calling the DT functions. I
> >> expect it will take 2-4 hours to figure out, code and test.
> >>
> >> See of-plat.rst for full documentation. There are quite a few examples for 
> >> mmc:
> >>
> >> grep PLATDATA drivers/mmc/*.c
> >> drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/ftsdc010_mci.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/mxsmmc.c: debug("OF_PLATDATA: regs: 0x%p bw: %d clkid: %d
> >> non_removable: %d\n",
> >> drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> >> !CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> >> !CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> >> !CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> >> !CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> >> !CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/rockchip_dw_mmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/rockchip_dw_mmc.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/rockchip_dw_mmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/rockchip_sdhci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/rockchip_sdhci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/rockchip_sdhci.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
> >>
>
> In all the examples above, platdata reg filed is directly being used for
> to assign a register base address but looking at davinci platdata that is 
> generated,
> spl/dts/dt-platdata.c:
>
> static const struct dtd_simple_bus dtv_soc_at_1c0 = {
> .model  = "da850",
> .ranges = {0x0, 0x1c0, 0x40},
> };
> U_BOOT_DEVICE(soc_at_1c0) = {
> .name   = "simple_bus",
> .platdata   = &dtv_soc_at_1c0,
> .platdata_size  = sizeof(dtv_soc_at_1c0),
> };
>
> static const struct dtd_ti_da830_uart dtv_serial_at_10d000 = {
> .power_domains  = {0xa, 0xd},
> .reg= {0x10d000, 0x100},
> .reg_io_width   = 0x4,
> .reg_shift  = 0x2,
> };
> U_BOOT_DEVICE(serial_at_10d000) = {
> .name   = "ti_da830_uart",
> .platdata   = &dtv_serial_at_10d000,
> .platdata_size  = sizeof(dtv_serial_at_10d000),
> };
>
> static const struct dtd_ti_da830_mmc dtv_mmc_at_4 = {
> .bus_width  = 0x4,
> .cap_mmc_highspeed  = true,
> .cap_sd_highspeed   = true,
> .cd_gpios   = {0x16, 0x40, 0x1},
> .dma_names  = {"rx", "tx"},
> .dmas   = {0x14, 0x10, 0x0, 0x14, 0x11, 0x0},
> .ma

Re: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata

2020-05-14 Thread Tom Rini
On Thu, May 14, 2020 at 08:55:01PM +0530, Faiz Abbas wrote:
> Hi Tom,
> 
> On 14/05/20 8:29 pm, Tom Rini wrote:
> > On Thu, May 14, 2020 at 01:49:37PM +0530, Faiz Abbas wrote:
> >> Simon,
> >>
> >> On 05/05/20 12:20 pm, Faiz Abbas wrote:
> >>> Hi,
> >>>
> >>> On 04/05/20 6:44 pm, Simon Glass wrote:
>  Hi Bart,
> 
>  On Mon, 4 May 2020 at 01:10, Bartosz Golaszewski  wrote:
> >
> > pt., 1 maj 2020 o 20:32 Tom Rini  napisał(a):
> >>
> >> On Thu, Apr 30, 2020 at 01:43:30PM +0200, Bartosz Golaszewski wrote:
> >>> wt., 28 kwi 2020 o 09:01 Faiz Abbas  napisał(a):
> 
>  +Bartosz
> 
>  On 28/04/20 9:47 am, Lokesh Vutla wrote:
> > +Faiz,
> >
> > On 28/04/20 12:29 AM, Tom Rini wrote:
> >> On Mon, Apr 27, 2020 at 05:33:41AM +, Peng Fan wrote:
>  Subject: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with 
>  of-platdata
> 
> ...
> >>>
> >>> I can confirm - this *does* break the mmc boot on da850-lcdk.
> >>
> >> So who is going to fix the driver to unblock Simon's series?
> >>
> >
> > Is this something that will take a lot of work? What exactly needs
> > doing? I'm not sure what "use of-platdata properly" means.
> 
>  This board is defining CONFIG_SPL_OF_PLATDATA which means that device
>  tree is not available in SPL. Instead you need to use a C structure
>  created by dtoc. It basically involves creating that struct and
>  getting the data from that instead of calling the DT functions. I
>  expect it will take 2-4 hours to figure out, code and test.
> 
>  See of-plat.rst for full documentation. There are quite a few examples 
>  for mmc:
> 
>  grep PLATDATA drivers/mmc/*.c
>  drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
>  drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
>  drivers/mmc/ftsdc010_mci.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
>  drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
>  drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
>  drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
>  drivers/mmc/mxsmmc.c: debug("OF_PLATDATA: regs: 0x%p bw: %d clkid: %d
>  non_removable: %d\n",
>  drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
>  !CONFIG_IS_ENABLED(OF_PLATDATA)
>  drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
>  !CONFIG_IS_ENABLED(OF_PLATDATA)
>  drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
>  !CONFIG_IS_ENABLED(OF_PLATDATA)
>  drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
>  !CONFIG_IS_ENABLED(OF_PLATDATA)
>  drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
>  !CONFIG_IS_ENABLED(OF_PLATDATA)
>  drivers/mmc/rockchip_dw_mmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
>  drivers/mmc/rockchip_dw_mmc.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
>  drivers/mmc/rockchip_dw_mmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
>  drivers/mmc/rockchip_sdhci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
>  drivers/mmc/rockchip_sdhci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
>  drivers/mmc/rockchip_sdhci.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
> 
> >>
> >> In all the examples above, platdata reg filed is directly being used for
> >> to assign a register base address but looking at davinci platdata that is 
> >> generated,
> >> spl/dts/dt-platdata.c:
> >>
> >> static const struct dtd_simple_bus dtv_soc_at_1c0 = {
> >> .model  = "da850",
> >> .ranges = {0x0, 0x1c0, 0x40},
> >> };
> >> U_BOOT_DEVICE(soc_at_1c0) = {
> >> .name   = "simple_bus",
> >> .platdata   = &dtv_soc_at_1c0,
> >> .platdata_size  = sizeof(dtv_soc_at_1c0),
> >> };
> >>
> >> static const struct dtd_ti_da830_uart dtv_serial_at_10d000 = {
> >> .power_domains  = {0xa, 0xd},
> >> .reg= {0x10d000, 0x100},
> >> .reg_io_width   = 0x4,
> >> .reg_shift  = 0x2,
> >> };
> >> U_BOOT_DEVICE(serial_at_10d000) = {
> >> .name   = "ti_da830_uart",
> >> .platdata   = &dtv_serial_at_10d000,
> >> .platdata_size  = sizeof(dtv_serial_at_10d000),
> >> };
> >>
> >> static const struct dtd_ti_da830_mmc dtv_mmc_at_4 = {
> >> .bus_width  = 0x4,
> >> .cap_mmc_highspeed  = true,
> >> .cap_sd_highspeed   = true,
> >> .cd_gpios   = {0x16, 0x40, 0x1},
> >> .dma_names  = {"rx", "tx"},
> >> .dmas   = {0x14, 0x10, 0x0, 0x14, 0x11, 0x0},
> >> .max_frequency  = 0x2faf080,
> >> .reg= {0x4, 0x1000},
> >> };
> >> U_BOOT_DEVICE(mmc_at_4) = {
> >> .name   = "ti_da830_mmc",
> >> .platdata   = &dtv_mmc_a

Re: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata

2020-05-14 Thread Faiz Abbas
Hi Tom,

On 14/05/20 8:29 pm, Tom Rini wrote:
> On Thu, May 14, 2020 at 01:49:37PM +0530, Faiz Abbas wrote:
>> Simon,
>>
>> On 05/05/20 12:20 pm, Faiz Abbas wrote:
>>> Hi,
>>>
>>> On 04/05/20 6:44 pm, Simon Glass wrote:
 Hi Bart,

 On Mon, 4 May 2020 at 01:10, Bartosz Golaszewski  wrote:
>
> pt., 1 maj 2020 o 20:32 Tom Rini  napisał(a):
>>
>> On Thu, Apr 30, 2020 at 01:43:30PM +0200, Bartosz Golaszewski wrote:
>>> wt., 28 kwi 2020 o 09:01 Faiz Abbas  napisał(a):

 +Bartosz

 On 28/04/20 9:47 am, Lokesh Vutla wrote:
> +Faiz,
>
> On 28/04/20 12:29 AM, Tom Rini wrote:
>> On Mon, Apr 27, 2020 at 05:33:41AM +, Peng Fan wrote:
 Subject: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with 
 of-platdata

...
>>>
>>> I can confirm - this *does* break the mmc boot on da850-lcdk.
>>
>> So who is going to fix the driver to unblock Simon's series?
>>
>
> Is this something that will take a lot of work? What exactly needs
> doing? I'm not sure what "use of-platdata properly" means.

 This board is defining CONFIG_SPL_OF_PLATDATA which means that device
 tree is not available in SPL. Instead you need to use a C structure
 created by dtoc. It basically involves creating that struct and
 getting the data from that instead of calling the DT functions. I
 expect it will take 2-4 hours to figure out, code and test.

 See of-plat.rst for full documentation. There are quite a few examples for 
 mmc:

 grep PLATDATA drivers/mmc/*.c
 drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
 drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
 drivers/mmc/ftsdc010_mci.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
 drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
 drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
 drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
 drivers/mmc/mxsmmc.c: debug("OF_PLATDATA: regs: 0x%p bw: %d clkid: %d
 non_removable: %d\n",
 drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
 !CONFIG_IS_ENABLED(OF_PLATDATA)
 drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
 !CONFIG_IS_ENABLED(OF_PLATDATA)
 drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
 !CONFIG_IS_ENABLED(OF_PLATDATA)
 drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
 !CONFIG_IS_ENABLED(OF_PLATDATA)
 drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
 !CONFIG_IS_ENABLED(OF_PLATDATA)
 drivers/mmc/rockchip_dw_mmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
 drivers/mmc/rockchip_dw_mmc.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
 drivers/mmc/rockchip_dw_mmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
 drivers/mmc/rockchip_sdhci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
 drivers/mmc/rockchip_sdhci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
 drivers/mmc/rockchip_sdhci.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)

>>
>> In all the examples above, platdata reg filed is directly being used for
>> to assign a register base address but looking at davinci platdata that is 
>> generated,
>> spl/dts/dt-platdata.c:
>>
>> static const struct dtd_simple_bus dtv_soc_at_1c0 = {
>> .model  = "da850",
>> .ranges = {0x0, 0x1c0, 0x40},
>> };
>> U_BOOT_DEVICE(soc_at_1c0) = {
>> .name   = "simple_bus",
>> .platdata   = &dtv_soc_at_1c0,
>> .platdata_size  = sizeof(dtv_soc_at_1c0),
>> };
>>
>> static const struct dtd_ti_da830_uart dtv_serial_at_10d000 = {
>> .power_domains  = {0xa, 0xd},
>> .reg= {0x10d000, 0x100},
>> .reg_io_width   = 0x4,
>> .reg_shift  = 0x2,
>> };
>> U_BOOT_DEVICE(serial_at_10d000) = {
>> .name   = "ti_da830_uart",
>> .platdata   = &dtv_serial_at_10d000,
>> .platdata_size  = sizeof(dtv_serial_at_10d000),
>> };
>>
>> static const struct dtd_ti_da830_mmc dtv_mmc_at_4 = {
>> .bus_width  = 0x4,
>> .cap_mmc_highspeed  = true,
>> .cap_sd_highspeed   = true,
>> .cd_gpios   = {0x16, 0x40, 0x1},
>> .dma_names  = {"rx", "tx"},
>> .dmas   = {0x14, 0x10, 0x0, 0x14, 0x11, 0x0},
>> .max_frequency  = 0x2faf080,
>> .reg= {0x4, 0x1000},
>> };
>> U_BOOT_DEVICE(mmc_at_4) = {
>> .name   = "ti_da830_mmc",
>> .platdata   = &dtv_mmc_at_4,
>> .platdata_size  = sizeof(dtv_mmc_at_4),
>> };
>>
>> I need the base address of the MMC device (dtd_ti_da830_mmc dtv_mmc_at_4)
>> reg = 0x4 to be translated with the simple_bus ranges above. How do I do
>> this without a device tree as there is no parent-chil

Re: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata

2020-05-14 Thread Tom Rini
On Thu, May 14, 2020 at 01:49:37PM +0530, Faiz Abbas wrote:
> Simon,
> 
> On 05/05/20 12:20 pm, Faiz Abbas wrote:
> > Hi,
> > 
> > On 04/05/20 6:44 pm, Simon Glass wrote:
> >> Hi Bart,
> >>
> >> On Mon, 4 May 2020 at 01:10, Bartosz Golaszewski  wrote:
> >>>
> >>> pt., 1 maj 2020 o 20:32 Tom Rini  napisał(a):
> 
>  On Thu, Apr 30, 2020 at 01:43:30PM +0200, Bartosz Golaszewski wrote:
> > wt., 28 kwi 2020 o 09:01 Faiz Abbas  napisał(a):
> >>
> >> +Bartosz
> >>
> >> On 28/04/20 9:47 am, Lokesh Vutla wrote:
> >>> +Faiz,
> >>>
> >>> On 28/04/20 12:29 AM, Tom Rini wrote:
>  On Mon, Apr 27, 2020 at 05:33:41AM +, Peng Fan wrote:
> >> Subject: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with 
> >> of-platdata
> >>
> >> At present this driver is enabled in SPL on omapl138_lcdk, which 
> >> uses
> >> of-platdata. The driver needs to be ported to use of-platdata 
> >> properly.
> >> For now, avoid a build error by returning an error.
> >>
> >> Signed-off-by: Simon Glass 
> >>>
> >>> Does this break the boot on omap l138?
> >>>
> >>
> >> I don't have a board at hand to test this out. Bartosz can you help 
> >> test this with
> >> omapl138?
> >>
> >> Thanks,
> >> Faiz
> >
> > Hi Faiz,
> >
> > I can confirm - this *does* break the mmc boot on da850-lcdk.
> 
>  So who is going to fix the driver to unblock Simon's series?
> 
> >>>
> >>> Is this something that will take a lot of work? What exactly needs
> >>> doing? I'm not sure what "use of-platdata properly" means.
> >>
> >> This board is defining CONFIG_SPL_OF_PLATDATA which means that device
> >> tree is not available in SPL. Instead you need to use a C structure
> >> created by dtoc. It basically involves creating that struct and
> >> getting the data from that instead of calling the DT functions. I
> >> expect it will take 2-4 hours to figure out, code and test.
> >>
> >> See of-plat.rst for full documentation. There are quite a few examples for 
> >> mmc:
> >>
> >> grep PLATDATA drivers/mmc/*.c
> >> drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/ftsdc010_mci.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/mxsmmc.c: debug("OF_PLATDATA: regs: 0x%p bw: %d clkid: %d
> >> non_removable: %d\n",
> >> drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> >> !CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> >> !CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> >> !CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> >> !CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> >> !CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/rockchip_dw_mmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/rockchip_dw_mmc.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/rockchip_dw_mmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/rockchip_sdhci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/rockchip_sdhci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/rockchip_sdhci.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
> >>
> 
> In all the examples above, platdata reg filed is directly being used for
> to assign a register base address but looking at davinci platdata that is 
> generated,
> spl/dts/dt-platdata.c:
> 
> static const struct dtd_simple_bus dtv_soc_at_1c0 = {
> .model  = "da850",
> .ranges = {0x0, 0x1c0, 0x40},
> };
> U_BOOT_DEVICE(soc_at_1c0) = {
> .name   = "simple_bus",
> .platdata   = &dtv_soc_at_1c0,
> .platdata_size  = sizeof(dtv_soc_at_1c0),
> };
> 
> static const struct dtd_ti_da830_uart dtv_serial_at_10d000 = {
> .power_domains  = {0xa, 0xd},
> .reg= {0x10d000, 0x100},
> .reg_io_width   = 0x4,
> .reg_shift  = 0x2,
> };
> U_BOOT_DEVICE(serial_at_10d000) = {
> .name   = "ti_da830_uart",
> .platdata   = &dtv_serial_at_10d000,
> .platdata_size  = sizeof(dtv_serial_at_10d000),
> };
> 
> static const struct dtd_ti_da830_mmc dtv_mmc_at_4 = {
> .bus_width  = 0x4,
> .cap_mmc_highspeed  = true,
> .cap_sd_highspeed   = true,
> .cd_gpios   = {0x16, 0x40, 0x1},
> .dma_names  = {"rx", "tx"},
> .dmas   = {0x14, 0x10, 0x0, 0x14, 0x11, 0x0},
> .max_frequency

Re: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata

2020-05-14 Thread Faiz Abbas
Simon,

On 05/05/20 12:20 pm, Faiz Abbas wrote:
> Hi,
> 
> On 04/05/20 6:44 pm, Simon Glass wrote:
>> Hi Bart,
>>
>> On Mon, 4 May 2020 at 01:10, Bartosz Golaszewski  wrote:
>>>
>>> pt., 1 maj 2020 o 20:32 Tom Rini  napisał(a):

 On Thu, Apr 30, 2020 at 01:43:30PM +0200, Bartosz Golaszewski wrote:
> wt., 28 kwi 2020 o 09:01 Faiz Abbas  napisał(a):
>>
>> +Bartosz
>>
>> On 28/04/20 9:47 am, Lokesh Vutla wrote:
>>> +Faiz,
>>>
>>> On 28/04/20 12:29 AM, Tom Rini wrote:
 On Mon, Apr 27, 2020 at 05:33:41AM +, Peng Fan wrote:
>> Subject: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with 
>> of-platdata
>>
>> At present this driver is enabled in SPL on omapl138_lcdk, which uses
>> of-platdata. The driver needs to be ported to use of-platdata 
>> properly.
>> For now, avoid a build error by returning an error.
>>
>> Signed-off-by: Simon Glass 
>>>
>>> Does this break the boot on omap l138?
>>>
>>
>> I don't have a board at hand to test this out. Bartosz can you help test 
>> this with
>> omapl138?
>>
>> Thanks,
>> Faiz
>
> Hi Faiz,
>
> I can confirm - this *does* break the mmc boot on da850-lcdk.

 So who is going to fix the driver to unblock Simon's series?

>>>
>>> Is this something that will take a lot of work? What exactly needs
>>> doing? I'm not sure what "use of-platdata properly" means.
>>
>> This board is defining CONFIG_SPL_OF_PLATDATA which means that device
>> tree is not available in SPL. Instead you need to use a C structure
>> created by dtoc. It basically involves creating that struct and
>> getting the data from that instead of calling the DT functions. I
>> expect it will take 2-4 hours to figure out, code and test.
>>
>> See of-plat.rst for full documentation. There are quite a few examples for 
>> mmc:
>>
>> grep PLATDATA drivers/mmc/*.c
>> drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
>> drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
>> drivers/mmc/ftsdc010_mci.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
>> drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
>> drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
>> drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
>> drivers/mmc/mxsmmc.c: debug("OF_PLATDATA: regs: 0x%p bw: %d clkid: %d
>> non_removable: %d\n",
>> drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
>> !CONFIG_IS_ENABLED(OF_PLATDATA)
>> drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
>> !CONFIG_IS_ENABLED(OF_PLATDATA)
>> drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
>> !CONFIG_IS_ENABLED(OF_PLATDATA)
>> drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
>> !CONFIG_IS_ENABLED(OF_PLATDATA)
>> drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
>> !CONFIG_IS_ENABLED(OF_PLATDATA)
>> drivers/mmc/rockchip_dw_mmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
>> drivers/mmc/rockchip_dw_mmc.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
>> drivers/mmc/rockchip_dw_mmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
>> drivers/mmc/rockchip_sdhci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
>> drivers/mmc/rockchip_sdhci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
>> drivers/mmc/rockchip_sdhci.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
>>

In all the examples above, platdata reg filed is directly being used for
to assign a register base address but looking at davinci platdata that is 
generated,
spl/dts/dt-platdata.c:

static const struct dtd_simple_bus dtv_soc_at_1c0 = {
.model  = "da850",
.ranges = {0x0, 0x1c0, 0x40},
};
U_BOOT_DEVICE(soc_at_1c0) = {
.name   = "simple_bus",
.platdata   = &dtv_soc_at_1c0,
.platdata_size  = sizeof(dtv_soc_at_1c0),
};

static const struct dtd_ti_da830_uart dtv_serial_at_10d000 = {
.power_domains  = {0xa, 0xd},
.reg= {0x10d000, 0x100},
.reg_io_width   = 0x4,
.reg_shift  = 0x2,
};
U_BOOT_DEVICE(serial_at_10d000) = {
.name   = "ti_da830_uart",
.platdata   = &dtv_serial_at_10d000,
.platdata_size  = sizeof(dtv_serial_at_10d000),
};

static const struct dtd_ti_da830_mmc dtv_mmc_at_4 = {
.bus_width  = 0x4,
.cap_mmc_highspeed  = true,
.cap_sd_highspeed   = true,
.cd_gpios   = {0x16, 0x40, 0x1},
.dma_names  = {"rx", "tx"},
.dmas   = {0x14, 0x10, 0x0, 0x14, 0x11, 0x0},
.max_frequency  = 0x2faf080,
.reg= {0x4, 0x1000},
};
U_BOOT_DEVICE(mmc_at_4) = {
.name   = "ti_da830_mmc",
.platdata   = &dtv_mmc_at_4,
.platdata_size  = sizeof(dtv_mmc_at_4),
};

I need the base address of the MMC device (dtd_ti_da830_mmc dtv_mm

Re: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata

2020-05-05 Thread Bartosz Golaszewski
wt., 5 maj 2020 o 08:50 Faiz Abbas  napisał(a):
>
> Hi,
>
> On 04/05/20 6:44 pm, Simon Glass wrote:
> > Hi Bart,
> >
> > On Mon, 4 May 2020 at 01:10, Bartosz Golaszewski  wrote:
> >>
> >> pt., 1 maj 2020 o 20:32 Tom Rini  napisał(a):
> >>>
> >>> On Thu, Apr 30, 2020 at 01:43:30PM +0200, Bartosz Golaszewski wrote:
>  wt., 28 kwi 2020 o 09:01 Faiz Abbas  napisał(a):
> >
> > +Bartosz
> >
> > On 28/04/20 9:47 am, Lokesh Vutla wrote:
> >> +Faiz,
> >>
> >> On 28/04/20 12:29 AM, Tom Rini wrote:
> >>> On Mon, Apr 27, 2020 at 05:33:41AM +, Peng Fan wrote:
> > Subject: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with 
> > of-platdata
> >
> > At present this driver is enabled in SPL on omapl138_lcdk, which 
> > uses
> > of-platdata. The driver needs to be ported to use of-platdata 
> > properly.
> > For now, avoid a build error by returning an error.
> >
> > Signed-off-by: Simon Glass 
> >>
> >> Does this break the boot on omap l138?
> >>
> >
> > I don't have a board at hand to test this out. Bartosz can you help 
> > test this with
> > omapl138?
> >
> > Thanks,
> > Faiz
> 
>  Hi Faiz,
> 
>  I can confirm - this *does* break the mmc boot on da850-lcdk.
> >>>
> >>> So who is going to fix the driver to unblock Simon's series?
> >>>
> >>
> >> Is this something that will take a lot of work? What exactly needs
> >> doing? I'm not sure what "use of-platdata properly" means.
> >
> > This board is defining CONFIG_SPL_OF_PLATDATA which means that device
> > tree is not available in SPL. Instead you need to use a C structure
> > created by dtoc. It basically involves creating that struct and
> > getting the data from that instead of calling the DT functions. I
> > expect it will take 2-4 hours to figure out, code and test.
> >
> > See of-plat.rst for full documentation. There are quite a few examples for 
> > mmc:
> >
> > grep PLATDATA drivers/mmc/*.c
> > drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> > drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> > drivers/mmc/ftsdc010_mci.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
> > drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> > drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> > drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> > drivers/mmc/mxsmmc.c: debug("OF_PLATDATA: regs: 0x%p bw: %d clkid: %d
> > non_removable: %d\n",
> > drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> > !CONFIG_IS_ENABLED(OF_PLATDATA)
> > drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> > !CONFIG_IS_ENABLED(OF_PLATDATA)
> > drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> > !CONFIG_IS_ENABLED(OF_PLATDATA)
> > drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> > !CONFIG_IS_ENABLED(OF_PLATDATA)
> > drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> > !CONFIG_IS_ENABLED(OF_PLATDATA)
> > drivers/mmc/rockchip_dw_mmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> > drivers/mmc/rockchip_dw_mmc.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
> > drivers/mmc/rockchip_dw_mmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> > drivers/mmc/rockchip_sdhci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> > drivers/mmc/rockchip_sdhci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> > drivers/mmc/rockchip_sdhci.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
> >
>
> I was able to get a setup to work on. Will post a fix for this soon.
>
> Thanks,
> Faiz

Thanks Faiz! Let me know if you need some help testing it.

Bart


Re: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata

2020-05-04 Thread Faiz Abbas
Hi,

On 04/05/20 6:44 pm, Simon Glass wrote:
> Hi Bart,
> 
> On Mon, 4 May 2020 at 01:10, Bartosz Golaszewski  wrote:
>>
>> pt., 1 maj 2020 o 20:32 Tom Rini  napisał(a):
>>>
>>> On Thu, Apr 30, 2020 at 01:43:30PM +0200, Bartosz Golaszewski wrote:
 wt., 28 kwi 2020 o 09:01 Faiz Abbas  napisał(a):
>
> +Bartosz
>
> On 28/04/20 9:47 am, Lokesh Vutla wrote:
>> +Faiz,
>>
>> On 28/04/20 12:29 AM, Tom Rini wrote:
>>> On Mon, Apr 27, 2020 at 05:33:41AM +, Peng Fan wrote:
> Subject: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata
>
> At present this driver is enabled in SPL on omapl138_lcdk, which uses
> of-platdata. The driver needs to be ported to use of-platdata 
> properly.
> For now, avoid a build error by returning an error.
>
> Signed-off-by: Simon Glass 
>>
>> Does this break the boot on omap l138?
>>
>
> I don't have a board at hand to test this out. Bartosz can you help test 
> this with
> omapl138?
>
> Thanks,
> Faiz

 Hi Faiz,

 I can confirm - this *does* break the mmc boot on da850-lcdk.
>>>
>>> So who is going to fix the driver to unblock Simon's series?
>>>
>>
>> Is this something that will take a lot of work? What exactly needs
>> doing? I'm not sure what "use of-platdata properly" means.
> 
> This board is defining CONFIG_SPL_OF_PLATDATA which means that device
> tree is not available in SPL. Instead you need to use a C structure
> created by dtoc. It basically involves creating that struct and
> getting the data from that instead of calling the DT functions. I
> expect it will take 2-4 hours to figure out, code and test.
> 
> See of-plat.rst for full documentation. There are quite a few examples for 
> mmc:
> 
> grep PLATDATA drivers/mmc/*.c
> drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> drivers/mmc/ftsdc010_mci.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
> drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> drivers/mmc/mxsmmc.c: debug("OF_PLATDATA: regs: 0x%p bw: %d clkid: %d
> non_removable: %d\n",
> drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> !CONFIG_IS_ENABLED(OF_PLATDATA)
> drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> !CONFIG_IS_ENABLED(OF_PLATDATA)
> drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> !CONFIG_IS_ENABLED(OF_PLATDATA)
> drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> !CONFIG_IS_ENABLED(OF_PLATDATA)
> drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> !CONFIG_IS_ENABLED(OF_PLATDATA)
> drivers/mmc/rockchip_dw_mmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> drivers/mmc/rockchip_dw_mmc.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
> drivers/mmc/rockchip_dw_mmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> drivers/mmc/rockchip_sdhci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> drivers/mmc/rockchip_sdhci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> drivers/mmc/rockchip_sdhci.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
> 

I was able to get a setup to work on. Will post a fix for this soon.

Thanks,
Faiz


Re: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata

2020-05-04 Thread Simon Glass
Hi Bart,

On Mon, 4 May 2020 at 01:10, Bartosz Golaszewski  wrote:
>
> pt., 1 maj 2020 o 20:32 Tom Rini  napisał(a):
> >
> > On Thu, Apr 30, 2020 at 01:43:30PM +0200, Bartosz Golaszewski wrote:
> > > wt., 28 kwi 2020 o 09:01 Faiz Abbas  napisał(a):
> > > >
> > > > +Bartosz
> > > >
> > > > On 28/04/20 9:47 am, Lokesh Vutla wrote:
> > > > > +Faiz,
> > > > >
> > > > > On 28/04/20 12:29 AM, Tom Rini wrote:
> > > > >> On Mon, Apr 27, 2020 at 05:33:41AM +, Peng Fan wrote:
> > > >  Subject: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with 
> > > >  of-platdata
> > > > 
> > > >  At present this driver is enabled in SPL on omapl138_lcdk, which 
> > > >  uses
> > > >  of-platdata. The driver needs to be ported to use of-platdata 
> > > >  properly.
> > > >  For now, avoid a build error by returning an error.
> > > > 
> > > >  Signed-off-by: Simon Glass 
> > > > >
> > > > > Does this break the boot on omap l138?
> > > > >
> > > >
> > > > I don't have a board at hand to test this out. Bartosz can you help 
> > > > test this with
> > > > omapl138?
> > > >
> > > > Thanks,
> > > > Faiz
> > >
> > > Hi Faiz,
> > >
> > > I can confirm - this *does* break the mmc boot on da850-lcdk.
> >
> > So who is going to fix the driver to unblock Simon's series?
> >
>
> Is this something that will take a lot of work? What exactly needs
> doing? I'm not sure what "use of-platdata properly" means.

This board is defining CONFIG_SPL_OF_PLATDATA which means that device
tree is not available in SPL. Instead you need to use a C structure
created by dtoc. It basically involves creating that struct and
getting the data from that instead of calling the DT functions. I
expect it will take 2-4 hours to figure out, code and test.

See of-plat.rst for full documentation. There are quite a few examples for mmc:

grep PLATDATA drivers/mmc/*.c
drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
drivers/mmc/ftsdc010_mci.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
drivers/mmc/mxsmmc.c: debug("OF_PLATDATA: regs: 0x%p bw: %d clkid: %d
non_removable: %d\n",
drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
!CONFIG_IS_ENABLED(OF_PLATDATA)
drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
!CONFIG_IS_ENABLED(OF_PLATDATA)
drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
!CONFIG_IS_ENABLED(OF_PLATDATA)
drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
!CONFIG_IS_ENABLED(OF_PLATDATA)
drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
!CONFIG_IS_ENABLED(OF_PLATDATA)
drivers/mmc/rockchip_dw_mmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
drivers/mmc/rockchip_dw_mmc.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
drivers/mmc/rockchip_dw_mmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
drivers/mmc/rockchip_sdhci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
drivers/mmc/rockchip_sdhci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
drivers/mmc/rockchip_sdhci.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)

Regards,
Simon


Re: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata

2020-05-04 Thread Bartosz Golaszewski
pt., 1 maj 2020 o 20:32 Tom Rini  napisał(a):
>
> On Thu, Apr 30, 2020 at 01:43:30PM +0200, Bartosz Golaszewski wrote:
> > wt., 28 kwi 2020 o 09:01 Faiz Abbas  napisał(a):
> > >
> > > +Bartosz
> > >
> > > On 28/04/20 9:47 am, Lokesh Vutla wrote:
> > > > +Faiz,
> > > >
> > > > On 28/04/20 12:29 AM, Tom Rini wrote:
> > > >> On Mon, Apr 27, 2020 at 05:33:41AM +, Peng Fan wrote:
> > >  Subject: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with 
> > >  of-platdata
> > > 
> > >  At present this driver is enabled in SPL on omapl138_lcdk, which uses
> > >  of-platdata. The driver needs to be ported to use of-platdata 
> > >  properly.
> > >  For now, avoid a build error by returning an error.
> > > 
> > >  Signed-off-by: Simon Glass 
> > > >
> > > > Does this break the boot on omap l138?
> > > >
> > >
> > > I don't have a board at hand to test this out. Bartosz can you help test 
> > > this with
> > > omapl138?
> > >
> > > Thanks,
> > > Faiz
> >
> > Hi Faiz,
> >
> > I can confirm - this *does* break the mmc boot on da850-lcdk.
>
> So who is going to fix the driver to unblock Simon's series?
>

Is this something that will take a lot of work? What exactly needs
doing? I'm not sure what "use of-platdata properly" means.

Bart


Re: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata

2020-05-01 Thread Tom Rini
On Thu, Apr 30, 2020 at 01:43:30PM +0200, Bartosz Golaszewski wrote:
> wt., 28 kwi 2020 o 09:01 Faiz Abbas  napisał(a):
> >
> > +Bartosz
> >
> > On 28/04/20 9:47 am, Lokesh Vutla wrote:
> > > +Faiz,
> > >
> > > On 28/04/20 12:29 AM, Tom Rini wrote:
> > >> On Mon, Apr 27, 2020 at 05:33:41AM +, Peng Fan wrote:
> >  Subject: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata
> > 
> >  At present this driver is enabled in SPL on omapl138_lcdk, which uses
> >  of-platdata. The driver needs to be ported to use of-platdata properly.
> >  For now, avoid a build error by returning an error.
> > 
> >  Signed-off-by: Simon Glass 
> > >
> > > Does this break the boot on omap l138?
> > >
> >
> > I don't have a board at hand to test this out. Bartosz can you help test 
> > this with
> > omapl138?
> >
> > Thanks,
> > Faiz
> 
> Hi Faiz,
> 
> I can confirm - this *does* break the mmc boot on da850-lcdk.

So who is going to fix the driver to unblock Simon's series?

-- 
Tom


signature.asc
Description: PGP signature


Re: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata

2020-04-30 Thread Bartosz Golaszewski
wt., 28 kwi 2020 o 09:01 Faiz Abbas  napisał(a):
>
> +Bartosz
>
> On 28/04/20 9:47 am, Lokesh Vutla wrote:
> > +Faiz,
> >
> > On 28/04/20 12:29 AM, Tom Rini wrote:
> >> On Mon, Apr 27, 2020 at 05:33:41AM +, Peng Fan wrote:
>  Subject: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata
> 
>  At present this driver is enabled in SPL on omapl138_lcdk, which uses
>  of-platdata. The driver needs to be ported to use of-platdata properly.
>  For now, avoid a build error by returning an error.
> 
>  Signed-off-by: Simon Glass 
> >
> > Does this break the boot on omap l138?
> >
>
> I don't have a board at hand to test this out. Bartosz can you help test this 
> with
> omapl138?
>
> Thanks,
> Faiz

Hi Faiz,

I can confirm - this *does* break the mmc boot on da850-lcdk.

Bart


Re: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata

2020-04-28 Thread Faiz Abbas
+Bartosz

On 28/04/20 9:47 am, Lokesh Vutla wrote:
> +Faiz,
> 
> On 28/04/20 12:29 AM, Tom Rini wrote:
>> On Mon, Apr 27, 2020 at 05:33:41AM +, Peng Fan wrote:
 Subject: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata

 At present this driver is enabled in SPL on omapl138_lcdk, which uses
 of-platdata. The driver needs to be ported to use of-platdata properly.
 For now, avoid a build error by returning an error.

 Signed-off-by: Simon Glass 
> 
> Does this break the boot on omap l138?
> 

I don't have a board at hand to test this out. Bartosz can you help test this 
with
omapl138?

Thanks,
Faiz


Re: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata

2020-04-27 Thread Lokesh Vutla
+Faiz,

On 28/04/20 12:29 AM, Tom Rini wrote:
> On Mon, Apr 27, 2020 at 05:33:41AM +, Peng Fan wrote:
>>> Subject: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata
>>>
>>> At present this driver is enabled in SPL on omapl138_lcdk, which uses
>>> of-platdata. The driver needs to be ported to use of-platdata properly.
>>> For now, avoid a build error by returning an error.
>>>
>>> Signed-off-by: Simon Glass 

Does this break the boot on omap l138?

Thanks and regards,
Lokesh

>>
>> Acked-by: Peng Fan 
> 
> Since the board maintainer is on CC and I believe that platform is still
> actively used in testing, I want to see this fixed rather than turned in
> to a run-time error.  Thanks!
> 


Re: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata

2020-04-27 Thread Tom Rini
On Mon, Apr 27, 2020 at 05:33:41AM +, Peng Fan wrote:
> > Subject: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata
> > 
> > At present this driver is enabled in SPL on omapl138_lcdk, which uses
> > of-platdata. The driver needs to be ported to use of-platdata properly.
> > For now, avoid a build error by returning an error.
> > 
> > Signed-off-by: Simon Glass 
> 
> Acked-by: Peng Fan 

Since the board maintainer is on CC and I believe that platform is still
actively used in testing, I want to see this fixed rather than turned in
to a run-time error.  Thanks!

-- 
Tom


signature.asc
Description: PGP signature


RE: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata

2020-04-26 Thread Peng Fan
> Subject: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata
> 
> At present this driver is enabled in SPL on omapl138_lcdk, which uses
> of-platdata. The driver needs to be ported to use of-platdata properly.
> For now, avoid a build error by returning an error.
> 
> Signed-off-by: Simon Glass 

Acked-by: Peng Fan