summaryrefslogtreecommitdiff
path: root/drivers
AgeCommit message (Collapse)Author
2015-08-08ddr: altera: sdram: Introduce socfpga_sdram_get_config()Marek Vasut
Introduce socfpga_sdram_get_config() function implement in a board file, which returns the socfpga_sdram_config structure. This is the last step in cleaning up the socfpga_mmr_init_full(), but not the last step which allows removing the inclusion of sdram.h from drivers/ddr/altera/sdram.c thus far. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: sdram: Clean up sdram_mmr_init_full() part 8Marek Vasut
Fix the return value so that standard errno return values can be used. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: sdram: Clean up sdram_mmr_init_full() part 7Marek Vasut
Add kerneldoc. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: sdram: Clean up sdram_mmr_init_full() part 6Marek Vasut
Pull out the block of register programming into a separate function. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: sdram: Clean up sdram_mmr_init_full() part 5Marek Vasut
Rework remaining two register setting functions such that they only return the final register value. Move the register setting into the block of register I/O in sdram_mmr_init_full(). Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: sdram: Clean up sdram_mmr_init_full() part 4Marek Vasut
Merge sdr_set_*() functions which are just setting registers among the sea of register setting in sdram_mmr_init_full(). There is no need to keep them separate this way, there is nothing special about them. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: sdram: Clean up sdram_mmr_init_full() part 3Marek Vasut
Pluck out the remaining CONFIG_HPS_SDR_CTRLCFG_ and put it into the socfpga_sdram_config structure. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: sdram: Clean up sdram_mmr_init_full() part 2Marek Vasut
Suck out all the CONFIG_HPS_SDR_CTRLCFG_* from sdram_mmr_init_full() into the socfpga_sdram_config structure. There is still one ugly macro left behind, but this will be taken care of in subsequent patch. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: sdram: Clean up sdram_mmr_init_full() part 1Marek Vasut
Zap all the ad-hoc readbacks from the registers and other useless and broken debug output. This is really not useful and is only confusing. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: sdram: Introduce socfpga_sdram_config() structureMarek Vasut
Introduce this seemingly massive structure, which holds required values of all the registers of the SDRAM controller. The idea here is to avoid including the sdram.h header file, which is full of ad-hoc macros that polute the global namespace. Once the cleanup of sdram.c would be complete and all registers would be loaded from this new socfpga_sdram_config, a board file will only pass this structure into the sdram.c . This will hide all the horrors generated by QTS in the board directory. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: sdram: Clean up set_sdr_mp_threshold()Marek Vasut
Get rid of the constant clrsetbits_le32(), instead prepare the whole content of the register once and write it at the end of the function. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: sdram: Clean up set_sdr_mp_pacing()Marek Vasut
Get rid of the constant clrsetbits_le32(), instead prepare the whole content of the register once and write it at the end of the function. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: sdram: Clean up set_sdr_mp_weight()Marek Vasut
Get rid of the constant clrsetbits_le32(), instead prepare the whole content of the register once and write it at the end of the function. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: sdram: Clean up set_sdr_fifo_cfg()Marek Vasut
Get rid of the constant clrsetbits_le32(), instead prepare the whole content of the register once and write it at the end of the function. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: sdram: Clean up set_sdr_static_cfg()Marek Vasut
Get rid of the constant clrsetbits_le32(), instead prepare the whole content of the register once and write it at the end of the function. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: sdram: Clean up set_sdr_addr_rw()Marek Vasut
Get rid of the constant clrsetbits_le32(), instead prepare the whole content of the register once and write it at the end of the function. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: sdram: Clean up set_sdr_dram_timing*()Marek Vasut
Get rid of the constant clrsetbits_le32(), instead prepare the whole content of the register once and write it at the end of the function. Merge set_sdr_dram_timing{1,2,3,4,lowpwr}() into single function set_sdr_dram_timing() , since there's no point in keeping all this stuff separate anymore. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: sdram: Clean up set_sdr_ctrlcfg()Marek Vasut
Get rid of the constant clrsetbits_le32(), instead prepare the whole content of the register once and write it at the end of the function. The big plan here is to remove all the CONFIG_HPS_SDR_ macros, hide them in QTS compatibility layer in board implementation and pass only a small structure into the driver. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: sdram: Clean up compute_errata_rows() part 2Marek Vasut
Remove all parameters of this function, since they are only constants passed in from another function, so make them local. Also, rename the function to get_errata_rows() as this is closer to what it does. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: sdram: Clean up compute_errata_rows() part 1Marek Vasut
Clean up weird parenthesis and odd type casts from the function. Fix comment style. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: sdram: Switch to generic_hweight32()Marek Vasut
Use generic function instead of CPU-specific one. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up of delay_for_n_mem_clocks() part 5Marek Vasut
Add kerneldoc. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up of delay_for_n_mem_clocks() part 4Marek Vasut
Simplify the loop code, optimizing compiler can deal with this. No functional change. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up of delay_for_n_mem_clocks() part 3Marek Vasut
Clean up the computation of c_loop, outer and inner variables. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up of delay_for_n_mem_clocks() part 2Marek Vasut
Factor out (afi_clocks - 1) into a single place instead of having it all around the function. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up of delay_for_n_mem_clocks() part 1Marek Vasut
Fix data types, clean up comments a bit and fix coding style a bit. No functional change. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Minor clean up of rw_mgr_mem_handoff()Marek Vasut
Add kerneldoc and perform a minor comment cleanup. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_lfifo()Marek Vasut
Minor coding style cleanup, add kerneldoc. No functional change. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_vfifo_end()Marek Vasut
This function is implementing the DDR calibration Stage 3 as described in Altera EMI_RM 2015.05.04 . The main body of this function is almost identical to Stage 1.3 (DQ/DQS centering) for all but two flags -- use_read_test and update_fom. Convert this function to call rw_mgr_mem_calibrate_dq_dqs_centering() with the correct flags set to trim down the code duplication. Moreover, reorder the remnants in the function a little and convert the function to return either 0 or -EIO in case of success and failure respectively, to match the common return value convention. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_write_test_issue()Marek Vasut
Brief clean, add kerneldoc. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_write_test() part 3Marek Vasut
Add kerneldoc. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_write_test() part 2Marek Vasut
Clean up coding style, mostly broken multiline formatting strings in debug output. Also clean up data types and constify where applicable. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_write_test() part 1Marek Vasut
Move code around to get rid of the forward declaration. No change to the actual code. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_writes_center() part 5Marek Vasut
Add kerneldoc. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_writes_center() part 4Marek Vasut
Fix return values to match the common return value convention. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_writes_center() part 3Marek Vasut
Zap the useless addr variable. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_writes_center() part 2Marek Vasut
Factor out common code for searching best DM/DQS window. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_writes_center() part 1Marek Vasut
Fix data types and constify where applicable, fix broken multiline debug strings and fix comments. No functional change. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_vfifo_center() part 11Marek Vasut
Add kerneldoc, no functional change. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_vfifo_center() part 10Marek Vasut
Fix the return value of the function to match common convention where 0 means success and negative means error. Fix the return values in case of an error to use errno.h codes. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_vfifo_center() part 9Marek Vasut
The read_group and write_group arguments are the same in all cases when this function is invoked, just merge them into one rw_group argument. Also, clean up the function argument data types and constify them. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_vfifo_center() part 8Marek Vasut
The search_stop_check() always resets the bit_chk to a new value, so bit_chk will never survive between search_left_edge() and search_right_edge() invocation. There is thus no need to pass it into these functions, so make bit_chk local to them. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_vfifo_center() part 7Marek Vasut
Perform minor reordering of the function to make the code more organised, no functional change. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_vfifo_center() part 6Marek Vasut
Factor out center_dq_windows(), which is common code between stage 2 and stage 3 of the calibration again and cater for the minor differences. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_vfifo_center() part 5Marek Vasut
Factor out the get_window_mid_index() for finding the best DQ window centering. This is again code common to two stages, so pull it out. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_vfifo_center() part 4Marek Vasut
First of all, don't break strings in the debug_cond() calls across multiple lines. Next, zap a couple of really odd casts in the code. Finally, make i into a signed variable, so it is possible to avoid constructs of the form: for (i = FOO;; i--) { <code>; if (i == 0) break; }. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_vfifo_center() part 3Marek Vasut
Factor out common code from search_left_edge() and search_right_edge() which checks whether searching for the window edge should stop. The code is almost identical, so pull it into separate function and cater for the minor differences. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_vfifo_center() part 2Marek Vasut
Factor out common code from rw_mgr_mem_calibrate_writes_center() and rw_mgr_mem_calibrate_vfifo_center() for searching for the left edge of the window. The code is almost identical, so pull it into separate function and cater for the minor differences. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_vfifo_center() part 1Marek Vasut
Factor out common code from rw_mgr_mem_calibrate_writes_center() and rw_mgr_mem_calibrate_vfifo_center() for searching for the right edge of the window. The code is almost identical, so pull it into separate function and cater for the minor differences. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_writes()Marek Vasut
Reorder the content of the function a little and fix the comments so they at least become full sentences. Constify function args. Fix the return value to match the common convention of 0 meaning success. Signed-off-by: Marek Vasut <marex@denx.de>