summaryrefslogtreecommitdiff
path: root/drivers/ddr/altera/sequencer.c
AgeCommit message (Collapse)Author
2015-08-08ddr: altera: sequencer: Zap VFIFO_SIZEMarek Vasut
Just use READ_VALID_FIFO_SIZE directly, no need for this macro obfuscation. Signed-off-by: Marek Vasut <marex@denx.de> Acked-by: Dinh Nguyen <dinguyen@opensource.altera.com>
2015-08-08ddr: altera: sequencer: Wrap misc remaining macrosMarek Vasut
Introduce structure socfpga_sdram_misc_config to wrap the remaining misc configuration values in board file. Again, introduce a function, socfpga_get_sdram_misc_config(), which returns this the structure. This is almost the final step toward wrapping the nasty QTS generated macros in board files and reducing the pollution of the namespace. Signed-off-by: Marek Vasut <marex@denx.de> Acked-by: Dinh Nguyen <dinguyen@opensource.altera.com>
2015-08-08ddr: altera: sequencer: Pluck out IO_* macros from codeMarek Vasut
Actually convert the sequencer code to use socfpga_sdram_io_config instead of the IO_* macros. This is just an sed excercise here, no manual coding needed. Signed-off-by: Marek Vasut <marex@denx.de> Acked-by: Dinh Nguyen <dinguyen@opensource.altera.com>
2015-08-08ddr: altera: sequencer: Wrap IO_* macrosMarek Vasut
Introduce structure socfpga_sdram_io_config to wrap the IO configuration values in board file. Introduce socfpga_get_sdram_io_config() function, which returns this the structure. This is another step toward wrapping the nasty QTS generated macros in board files and reducing the pollution of the namespace. Signed-off-by: Marek Vasut <marex@denx.de> Acked-by: Dinh Nguyen <dinguyen@opensource.altera.com>
2015-08-08ddr: altera: sequencer: Pluck out RW_MGR_* macros from codeMarek Vasut
Actually convert the sequencer code to use socfpga_sdram_rw_mgr_config instead of the RW_MGR_* macros. This is just an sed exercise here, no manual coding needed. Signed-off-by: Marek Vasut <marex@denx.de> Acked-by: Dinh Nguyen <dinguyen@opensource.altera.com>
2015-08-08ddr: altera: sequencer: Wrap RW_MGR_* macrosMarek Vasut
Introduce structure socfpga_sdram_rw_mgr_config to wrap the RW manager configuration values in board file. Introduce a complementary function, socfpga_get_sdram_rwmgr_config(), which returns this the structure. This is another step toward wrapping the nasty QTS generated macros in board files and reducing the pollution of the namespace. Signed-off-by: Marek Vasut <marex@denx.de> Acked-by: Dinh Nguyen <dinguyen@opensource.altera.com>
2015-08-08ddr: altera: sequencer: Wrap ac_rom_init and inst_rom_initMarek Vasut
Introduce two wrapper functions, socfpga_get_seq_ac_init() and socfpga_get_seq_inst_init() to avoid direct inclusion of the sequencer_auto_ac_init.h and sequencer_auto_inst_init.h QTS generated files. This reduces namespace pollution again. Signed-off-by: Marek Vasut <marex@denx.de> Acked-by: Dinh Nguyen <dinguyen@opensource.altera.com>
2015-08-08ddr: altera: sequencer: Zap unused params and macrosMarek Vasut
These parameters are not used in the code, zap them and the macros which are used by them as well. Signed-off-by: Marek Vasut <marex@denx.de> Acked-by: Dinh Nguyen <dinguyen@opensource.altera.com>
2015-08-08ddr: altera: sequencer: Move qts-generated files to board dirMarek Vasut
Move the files generated by QTS into the board directory, they should not be part of the driver files at all. Signed-off-by: Marek Vasut <marex@denx.de> Acked-by: Dinh Nguyen <dinguyen@opensource.altera.com>
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>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_read_test() part 5Marek Vasut
Make the function documentation into kerneldoc. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_read_test() part 4Marek Vasut
Clean up the inner loop a bit. No functional change. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_read_test() part 3Marek Vasut
The C language has signed types, so make use of them. Fix this obscene loop, which tries to do away with unsigned type, but just makes the code more cryptic. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_read_test() part 2Marek Vasut
Clean up data types and constify where applicable. No function change. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_read_test() part 1Marek Vasut
Clean up the debug output handling at the end of the function and factor out common function call from the condition. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_read_test_all_ranks()Marek Vasut
Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_vfifo_find_dqs_en_phase() part 7Marek 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_find_dqs_en_phase() part 6Marek Vasut
Fix the return value to match common conventions and propagate this change through the code. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_vfifo_find_dqs_en_phase() part 5Marek Vasut
Fix the data types, constify where applicable. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_vfifo_find_dqs_en_phase() part 4Marek Vasut
Implement common sdr_find_phase_delay() function and convert all places which use such code to this unified function. No functional change to the code. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_vfifo_find_dqs_en_phase() part 3Marek Vasut
Clean up odd multiline loop, no functional change. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_vfifo_find_dqs_en_phase() part 2Marek Vasut
If d != 0 after sdr_working_phase() finishes, the else branch of the condition has no impact on anything at all, since work_end was already set independently of the value of "d" . Zap this useless code. Signed-off-by: Marek Vasut <marex@denx.de>