aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter De Schrijver <pdeschrijver@nvidia.com>2013-11-26 06:48:09 -0500
committerPeter De Schrijver <pdeschrijver@nvidia.com>2013-11-26 11:43:55 -0500
commit252d0d2bb07119296e215de7dc9afa8d12746b80 (patch)
tree647d68b71bc1ed08b2b372c9a5b5a0e2a607cbe8
parentfc20eeff6c03fcdbb2b5ac21472778b573850e77 (diff)
clk: tegra: add TEGRA_DIVIDER_ROUND_UP for periph clks
Perform upwards rounding when calculating dividers for periph clks on Tegra30 and Tegra114. Signed-off-by: Peter De Schrijver <pdeschrijver@nvidia.com>
-rw-r--r--drivers/clk/tegra/clk-tegra114.c53
-rw-r--r--drivers/clk/tegra/clk-tegra30.c19
2 files changed, 39 insertions, 33 deletions
diff --git a/drivers/clk/tegra/clk-tegra114.c b/drivers/clk/tegra/clk-tegra114.c
index 76611289b8e6..e3904923005b 100644
--- a/drivers/clk/tegra/clk-tegra114.c
+++ b/drivers/clk/tegra/clk-tegra114.c
@@ -791,50 +791,53 @@ static unsigned long tegra114_input_freq[] = {
791#define TEGRA_INIT_DATA_MUX(_name, _con_id, _dev_id, _parents, _offset, \ 791#define TEGRA_INIT_DATA_MUX(_name, _con_id, _dev_id, _parents, _offset, \
792 _clk_num, _regs, _gate_flags, _clk_id) \ 792 _clk_num, _regs, _gate_flags, _clk_id) \
793 TEGRA_INIT_DATA_TABLE(_name, _con_id, _dev_id, _parents, _offset,\ 793 TEGRA_INIT_DATA_TABLE(_name, _con_id, _dev_id, _parents, _offset,\
794 30, MASK(2), 0, 0, 8, 1, 0, _regs, _clk_num, \ 794 30, MASK(2), 0, 0, 8, 1, TEGRA_DIVIDER_ROUND_UP, \
795 periph_clk_enb_refcnt, _gate_flags, _clk_id, \ 795 _regs, _clk_num, periph_clk_enb_refcnt, _gate_flags,\
796 _parents##_idx, 0) 796 _clk_id, _parents##_idx, 0)
797 797
798#define TEGRA_INIT_DATA_MUX_FLAGS(_name, _con_id, _dev_id, _parents, _offset,\ 798#define TEGRA_INIT_DATA_MUX_FLAGS(_name, _con_id, _dev_id, _parents, _offset,\
799 _clk_num, _regs, _gate_flags, _clk_id, flags)\ 799 _clk_num, _regs, _gate_flags, _clk_id, flags)\
800 TEGRA_INIT_DATA_TABLE(_name, _con_id, _dev_id, _parents, _offset,\ 800 TEGRA_INIT_DATA_TABLE(_name, _con_id, _dev_id, _parents, _offset,\
801 30, MASK(2), 0, 0, 8, 1, 0, _regs, _clk_num, \ 801 30, MASK(2), 0, 0, 8, 1, TEGRA_DIVIDER_ROUND_UP,\
802 periph_clk_enb_refcnt, _gate_flags, _clk_id, \ 802 _regs, _clk_num, periph_clk_enb_refcnt, _gate_flags,\
803 _parents##_idx, flags) 803 _clk_id, _parents##_idx, flags)
804 804
805#define TEGRA_INIT_DATA_MUX8(_name, _con_id, _dev_id, _parents, _offset, \ 805#define TEGRA_INIT_DATA_MUX8(_name, _con_id, _dev_id, _parents, _offset, \
806 _clk_num, _regs, _gate_flags, _clk_id) \ 806 _clk_num, _regs, _gate_flags, _clk_id) \
807 TEGRA_INIT_DATA_TABLE(_name, _con_id, _dev_id, _parents, _offset,\ 807 TEGRA_INIT_DATA_TABLE(_name, _con_id, _dev_id, _parents, _offset,\
808 29, MASK(3), 0, 0, 8, 1, 0, _regs, _clk_num, \ 808 29, MASK(3), 0, 0, 8, 1, TEGRA_DIVIDER_ROUND_UP,\
809 periph_clk_enb_refcnt, _gate_flags, _clk_id, \ 809 _regs, _clk_num, periph_clk_enb_refcnt, _gate_flags,\
810 _parents##_idx, 0) 810 _clk_id, _parents##_idx, 0)
811 811
812#define TEGRA_INIT_DATA_INT_FLAGS(_name, _con_id, _dev_id, _parents, _offset,\ 812#define TEGRA_INIT_DATA_INT_FLAGS(_name, _con_id, _dev_id, _parents, _offset,\
813 _clk_num, _regs, _gate_flags, _clk_id, flags)\ 813 _clk_num, _regs, _gate_flags, _clk_id, flags)\
814 TEGRA_INIT_DATA_TABLE(_name, _con_id, _dev_id, _parents, _offset,\ 814 TEGRA_INIT_DATA_TABLE(_name, _con_id, _dev_id, _parents, _offset,\
815 30, MASK(2), 0, 0, 8, 1, TEGRA_DIVIDER_INT, _regs,\ 815 30, MASK(2), 0, 0, 8, 1, TEGRA_DIVIDER_INT | \
816 _clk_num, periph_clk_enb_refcnt, _gate_flags, \ 816 TEGRA_DIVIDER_ROUND_UP, _regs, _clk_num, \
817 _clk_id, _parents##_idx, flags) 817 periph_clk_enb_refcnt, _gate_flags, _clk_id, \
818 _parents##_idx, flags)
818 819
819#define TEGRA_INIT_DATA_INT8(_name, _con_id, _dev_id, _parents, _offset,\ 820#define TEGRA_INIT_DATA_INT8(_name, _con_id, _dev_id, _parents, _offset,\
820 _clk_num, _regs, _gate_flags, _clk_id) \ 821 _clk_num, _regs, _gate_flags, _clk_id) \
821 TEGRA_INIT_DATA_TABLE(_name, _con_id, _dev_id, _parents, _offset,\ 822 TEGRA_INIT_DATA_TABLE(_name, _con_id, _dev_id, _parents, _offset,\
822 29, MASK(3), 0, 0, 8, 1, TEGRA_DIVIDER_INT, _regs,\ 823 29, MASK(3), 0, 0, 8, 1, TEGRA_DIVIDER_INT | \
823 _clk_num, periph_clk_enb_refcnt, _gate_flags, \ 824 TEGRA_DIVIDER_ROUND_UP, _regs, _clk_num, \
824 _clk_id, _parents##_idx, 0) 825 periph_clk_enb_refcnt, _gate_flags, _clk_id, \
826 _parents##_idx, 0)
825 827
826#define TEGRA_INIT_DATA_UART(_name, _con_id, _dev_id, _parents, _offset,\ 828#define TEGRA_INIT_DATA_UART(_name, _con_id, _dev_id, _parents, _offset,\
827 _clk_num, _regs, _clk_id) \ 829 _clk_num, _regs, _clk_id) \
828 TEGRA_INIT_DATA_TABLE(_name, _con_id, _dev_id, _parents, _offset,\ 830 TEGRA_INIT_DATA_TABLE(_name, _con_id, _dev_id, _parents, _offset,\
829 30, MASK(2), 0, 0, 16, 1, TEGRA_DIVIDER_UART, _regs,\ 831 30, MASK(2), 0, 0, 16, 1, TEGRA_DIVIDER_UART | \
830 _clk_num, periph_clk_enb_refcnt, 0, _clk_id, \ 832 TEGRA_DIVIDER_ROUND_UP, _regs, _clk_num, \
831 _parents##_idx, 0) 833 periph_clk_enb_refcnt, 0, _clk_id, _parents##_idx, 0)
832 834
833#define TEGRA_INIT_DATA_I2C(_name, _con_id, _dev_id, _parents, _offset,\ 835#define TEGRA_INIT_DATA_I2C(_name, _con_id, _dev_id, _parents, _offset,\
834 _clk_num, _regs, _clk_id) \ 836 _clk_num, _regs, _clk_id) \
835 TEGRA_INIT_DATA_TABLE(_name, _con_id, _dev_id, _parents, _offset,\ 837 TEGRA_INIT_DATA_TABLE(_name, _con_id, _dev_id, _parents, _offset,\
836 30, MASK(2), 0, 0, 16, 0, 0, _regs, _clk_num, \ 838 30, MASK(2), 0, 0, 16, 0, TEGRA_DIVIDER_ROUND_UP,\
837 periph_clk_enb_refcnt, 0, _clk_id, _parents##_idx, 0) 839 _regs, _clk_num, periph_clk_enb_refcnt, 0, _clk_id,\
840 _parents##_idx, 0)
838 841
839#define TEGRA_INIT_DATA_NODIV(_name, _con_id, _dev_id, _parents, _offset, \ 842#define TEGRA_INIT_DATA_NODIV(_name, _con_id, _dev_id, _parents, _offset, \
840 _mux_shift, _mux_mask, _clk_num, _regs, \ 843 _mux_shift, _mux_mask, _clk_num, _regs, \
@@ -847,14 +850,16 @@ static unsigned long tegra114_input_freq[] = {
847#define TEGRA_INIT_DATA_XUSB(_name, _con_id, _dev_id, _parents, _offset, \ 850#define TEGRA_INIT_DATA_XUSB(_name, _con_id, _dev_id, _parents, _offset, \
848 _clk_num, _regs, _gate_flags, _clk_id) \ 851 _clk_num, _regs, _gate_flags, _clk_id) \
849 TEGRA_INIT_DATA_TABLE(_name, _con_id, _dev_id, _parents, _offset, \ 852 TEGRA_INIT_DATA_TABLE(_name, _con_id, _dev_id, _parents, _offset, \
850 29, MASK(3), 0, 0, 8, 1, TEGRA_DIVIDER_INT, _regs, \ 853 29, MASK(3), 0, 0, 8, 1, TEGRA_DIVIDER_INT | \
851 _clk_num, periph_clk_enb_refcnt, _gate_flags, \ 854 TEGRA_DIVIDER_ROUND_UP, _regs, _clk_num, \
852 _clk_id, _parents##_idx, 0) 855 periph_clk_enb_refcnt, _gate_flags, _clk_id, \
856 _parents##_idx, 0)
853 857
854#define TEGRA_INIT_DATA_AUDIO(_name, _con_id, _dev_id, _offset, _clk_num,\ 858#define TEGRA_INIT_DATA_AUDIO(_name, _con_id, _dev_id, _offset, _clk_num,\
855 _regs, _gate_flags, _clk_id) \ 859 _regs, _gate_flags, _clk_id) \
856 TEGRA_INIT_DATA_TABLE(_name, _con_id, _dev_id, mux_d_audio_clk, \ 860 TEGRA_INIT_DATA_TABLE(_name, _con_id, _dev_id, mux_d_audio_clk, \
857 _offset, 16, 0xE01F, 0, 0, 8, 1, 0, _regs, _clk_num, \ 861 _offset, 16, 0xE01F, 0, 0, 8, 1, \
862 TEGRA_DIVIDER_ROUND_UP, _regs, _clk_num, \
858 periph_clk_enb_refcnt, _gate_flags , _clk_id, \ 863 periph_clk_enb_refcnt, _gate_flags , _clk_id, \
859 mux_d_audio_clk_idx, 0) 864 mux_d_audio_clk_idx, 0)
860 865
diff --git a/drivers/clk/tegra/clk-tegra30.c b/drivers/clk/tegra/clk-tegra30.c
index dbe7c8003c5c..147f5b9fed11 100644
--- a/drivers/clk/tegra/clk-tegra30.c
+++ b/drivers/clk/tegra/clk-tegra30.c
@@ -282,8 +282,8 @@ static DEFINE_SPINLOCK(sysrate_lock);
282#define TEGRA_INIT_DATA_MUX(_name, _con_id, _dev_id, _parents, _offset, \ 282#define TEGRA_INIT_DATA_MUX(_name, _con_id, _dev_id, _parents, _offset, \
283 _clk_num, _regs, _gate_flags, _clk_id) \ 283 _clk_num, _regs, _gate_flags, _clk_id) \
284 TEGRA_INIT_DATA(_name, _con_id, _dev_id, _parents, _offset, \ 284 TEGRA_INIT_DATA(_name, _con_id, _dev_id, _parents, _offset, \
285 30, 2, 0, 0, 8, 1, 0, _regs, _clk_num, \ 285 30, 2, 0, 0, 8, 1, TEGRA_DIVIDER_ROUND_UP, _regs, \
286 periph_clk_enb_refcnt, _gate_flags, _clk_id) 286 _clk_num, periph_clk_enb_refcnt, _gate_flags, _clk_id)
287 287
288#define TEGRA_INIT_DATA_DIV16(_name, _con_id, _dev_id, _parents, _offset, \ 288#define TEGRA_INIT_DATA_DIV16(_name, _con_id, _dev_id, _parents, _offset, \
289 _clk_num, _regs, _gate_flags, _clk_id) \ 289 _clk_num, _regs, _gate_flags, _clk_id) \
@@ -295,21 +295,22 @@ static DEFINE_SPINLOCK(sysrate_lock);
295#define TEGRA_INIT_DATA_MUX8(_name, _con_id, _dev_id, _parents, _offset, \ 295#define TEGRA_INIT_DATA_MUX8(_name, _con_id, _dev_id, _parents, _offset, \
296 _clk_num, _regs, _gate_flags, _clk_id) \ 296 _clk_num, _regs, _gate_flags, _clk_id) \
297 TEGRA_INIT_DATA(_name, _con_id, _dev_id, _parents, _offset, \ 297 TEGRA_INIT_DATA(_name, _con_id, _dev_id, _parents, _offset, \
298 29, 3, 0, 0, 8, 1, 0, _regs, _clk_num, \ 298 29, 3, 0, 0, 8, 1, TEGRA_DIVIDER_ROUND_UP, _regs,\
299 periph_clk_enb_refcnt, _gate_flags, _clk_id) 299 _clk_num, periph_clk_enb_refcnt, _gate_flags, _clk_id)
300 300
301#define TEGRA_INIT_DATA_INT(_name, _con_id, _dev_id, _parents, _offset, \ 301#define TEGRA_INIT_DATA_INT(_name, _con_id, _dev_id, _parents, _offset, \
302 _clk_num, _regs, _gate_flags, _clk_id) \ 302 _clk_num, _regs, _gate_flags, _clk_id) \
303 TEGRA_INIT_DATA(_name, _con_id, _dev_id, _parents, _offset, \ 303 TEGRA_INIT_DATA(_name, _con_id, _dev_id, _parents, _offset, \
304 30, 2, 0, 0, 8, 1, TEGRA_DIVIDER_INT, _regs, \ 304 30, 2, 0, 0, 8, 1, TEGRA_DIVIDER_INT | \
305 _clk_num, periph_clk_enb_refcnt, _gate_flags, \ 305 TEGRA_DIVIDER_ROUND_UP, _regs, _clk_num, \
306 _clk_id) 306 periph_clk_enb_refcnt, _gate_flags, _clk_id)
307 307
308#define TEGRA_INIT_DATA_UART(_name, _con_id, _dev_id, _parents, _offset,\ 308#define TEGRA_INIT_DATA_UART(_name, _con_id, _dev_id, _parents, _offset,\
309 _clk_num, _regs, _clk_id) \ 309 _clk_num, _regs, _clk_id) \
310 TEGRA_INIT_DATA(_name, _con_id, _dev_id, _parents, _offset, \ 310 TEGRA_INIT_DATA(_name, _con_id, _dev_id, _parents, _offset, \
311 30, 2, 0, 0, 16, 1, TEGRA_DIVIDER_UART, _regs, \ 311 30, 2, 0, 0, 16, 1, TEGRA_DIVIDER_UART | \
312 _clk_num, periph_clk_enb_refcnt, 0, _clk_id) 312 TEGRA_DIVIDER_ROUND_UP, _regs, _clk_num, \
313 periph_clk_enb_refcnt, 0, _clk_id)
313 314
314#define TEGRA_INIT_DATA_NODIV(_name, _con_id, _dev_id, _parents, _offset, \ 315#define TEGRA_INIT_DATA_NODIV(_name, _con_id, _dev_id, _parents, _offset, \
315 _mux_shift, _mux_width, _clk_num, _regs, \ 316 _mux_shift, _mux_width, _clk_num, _regs, \