[PATCH V2 RFC 6/6] ARM: dts: bcm2835: Add Raspberry Pi Zero
From: John Youn <hidden>
Date: 2016-08-17 21:21:30
Also in:
linux-devicetree
On 8/17/2016 12:11 PM, Stefan Wahren wrote:
Hi,quoted
John Youn [off-list ref] hat am 17. August 2016 um 00:07 geschrieben: On 8/16/2016 12:58 PM, Stefan Wahren wrote:quoted
Hi John, ... like in host mode i took the default values in otg mode for the last two here (please refer to the logs). The BCM2835 datasheet isn't very helpful. Do you have any suggestions for valid values or how to get them?The same values used in host-only mode should work. It seems that the reset values for host-mode aren't being read correctly with dr_mode == otg. I suspect this is the core reset and force-mode delay problem. Can you try with this patch series to see if you get the proper values? http://marc.info/?l=linux-kernel&m=145921907525708 This series fixes known issues, but it also breaks at least one platform and I haven't had time to look at it properly yet.thanks. Yes, that seems to fix host fifo sizes for bcm2835. Here the log after applying patch 2 - 4 and removing all DT FIFO parameters (patch 1 has already been merged): Linux raspberrypi 4.7.0-rc7-next-20160719+ #23 Wed Aug 17 18:15:24 UTC 2016 armv6l [ 2.290723] dwc2_lowlevel_hw_init() [ 2.298123] dwc2_lowlevel_hw_enable() [ 2.305451] dwc2_get_dr_mode() [ 2.365040] dwc2_get_hwparams() [ 2.371785] dwc2 20980000.usb: Core Release: 2.80a (snpsid=4f54280a) [ 2.371801] dwc2 20980000.usb: hwcfg1=00000000 [ 2.371813] dwc2 20980000.usb: hwcfg2=228ddd50 [ 2.371823] dwc2 20980000.usb: hwcfg3=0ff000e8 [ 2.371833] dwc2 20980000.usb: hwcfg4=1ff00020 [ 2.371843] dwc2 20980000.usb: grxfsiz=00001000 [ 2.371853] dwc2 20980000.usb: Forcing mode to host [ 2.371869] dwc2 20980000.usb: gnptxfsiz=01001000 [ 2.371880] dwc2 20980000.usb: hptxfsiz=02002000 [ 2.371890] dwc2 20980000.usb: Forcing mode to device [ 2.423450] dwc2 20980000.usb: gnptxfsiz=00201000 [ 2.423468] dwc2 20980000.usb: Detected values from hardware: [ 2.423480] dwc2 20980000.usb: op_mode=0 [ 2.423490] dwc2 20980000.usb: arch=2 [ 2.423500] dwc2 20980000.usb: dma_desc_enable=0 [ 2.423511] dwc2 20980000.usb: power_optimized=0 [ 2.423520] dwc2 20980000.usb: i2c_enable=0 [ 2.423530] dwc2 20980000.usb: hs_phy_type=1 [ 2.423540] dwc2 20980000.usb: fs_phy_type=1 [ 2.423550] dwc2 20980000.usb: utmi_phy_data_width=0 [ 2.423559] dwc2 20980000.usb: num_dev_ep=7 [ 2.423570] dwc2 20980000.usb: num_dev_perio_in_ep=0 [ 2.423579] dwc2 20980000.usb: host_channels=8 [ 2.423590] dwc2 20980000.usb: max_transfer_size=524287 [ 2.423601] dwc2 20980000.usb: max_packet_count=1023 [ 2.423611] dwc2 20980000.usb: nperio_tx_q_depth=0x4 [ 2.423621] dwc2 20980000.usb: host_perio_tx_q_depth=0x4 [ 2.423631] dwc2 20980000.usb: dev_token_q_depth=0x8 [ 2.423641] dwc2 20980000.usb: enable_dynamic_fifo=1 [ 2.423651] dwc2 20980000.usb: en_multiple_tx_fifo=1 [ 2.423661] dwc2 20980000.usb: total_fifo_size=4080 [ 2.423671] dwc2 20980000.usb: host_rx_fifo_size=4096 [ 2.423681] dwc2 20980000.usb: host_nperio_tx_fifo_size=256 [ 2.423691] dwc2 20980000.usb: host_perio_tx_fifo_size=512 [ 2.423699] dwc2 20980000.usb: [ 2.423709] dwc2 20980000.usb: dwc2_set_parameters() [ 2.423723] dwc2 20980000.usb: Setting dma_desc_fs_enable to 0 [ 2.423748] dwc2 20980000.usb: Setting external_id_pin_ctl to 0 [ 2.423760] dwc2 20980000.usb: Setting hibernation to 0 [ 2.423777] dwc2_force_dr_mode() [ 2.430509] dwc2 20980000.usb: Clearing force mode bits [ 2.499028] dwc2_gadget_init() [ 2.505422] dwc2 20980000.usb: Specified GNPTXFDEP=1024 > 32 [ 2.514502] dwc2 20980000.usb: EPs: 8, dedicated fifos, 4080 entries in SPRAM [ 2.542143] dwc2 20980000.usb: bound driver zero [ 2.550164] dwc2_hcd_init() [ 2.556602] dwc2 20980000.usb: DWC OTG Controller [ 2.564878] dwc2 20980000.usb: new USB bus registered, assigned bus number 1 [ 2.575467] dwc2 20980000.usb: irq 33, io mem 0x00000000
Ok, yeah, that seems better. Can you check if applying just patch 2 and 3 solves the issue? If so I think we can send those upstream. Regards, John