[v3,00/57] ram: rk3399: Add LPDDR4 support
mbox series

Message ID 20190716115745.12585-1-jagan@amarulasolutions.com
Headers show
Series
  • ram: rk3399: Add LPDDR4 support
Related show

Message

Jagan Teki July 16, 2019, 11:56 a.m. UTC
This is next revison of lpddr4 support on rk3399 compared to
previous set[1]. It has some changes based on the commit orders
and squashing few patches together and rest is same.

Thanks to
- YouMin Chen
- Akash Gajjar
- Kever Yang
for supporting all the help on this work.

Changes for v3:
- squash set_rate code in one patch
- tested in Rockpro64 and Rock-PI-4
- order them in proper way
- rebase on master
Changes for v2:
- handle LPDDR4 code as part of CONFIG_RAM_RK3399_LPDDR4
- support data_training and set_rate via sdram_rk3399_ops
- add proper sys_reg_enc macros
- add new patch to rename variable sdram_params with params
- fix few commit messages.

patch 0001 - 0018: add dram config enc macro

patch 0019: configure phy IO in ds odt

patch 0020: add LPDDR4 config 

patch 0021 - 0043: lpddr4 data training changes

patch 0044 - 0046: syscon pmu support

patch 0047: set 50MHz ddr clock

patch 0048: set 400MHz ddr clock

patch 0049: LPDDR4-400 timings

patch 0050: LPDDR4-800 timings

patch 0051 - 0052: lpddr4 set rate

patch 0053: enable lpddr4 support on Rockpro64

patch 0054: enable lpddr4 support on Rock-PI 4

patch 0055: add LPDDR-100 timings via dts

patch 0056: use LPDDR-100 timings on Rockpro64

patch 0057: use LPDDR-100 timings on Rock-PI 4

[1] https://patchwork.ozlabs.org/cover/1116734/

Any inputs?
Jagan.

Jagan Teki (57):
  ram: rk3399: Add ddrtype enc macro
  ram: rk3399: Add channel number encoder macro
  ram: rk3399: Add row_3_4 enc macro
  ram: rk3399: Add chipinfo macro
  ram: rk3399: Add rank enc macro
  ram: rk3399: Add column enc macro
  ram: rk3399: Add bk enc macro
  ram: rk3399: Add dbw enc macro
  ram: rk3399: Add cs0_rw macro
  ram: rk3399: Add cs1_rw macro
  ram: rk3399: Add bw enc macro
  ram: rk3399: Rename sys_reg with sys_reg2
  ram: rk3399: Update cs0_row to use sys_reg3
  ram: rk3399: Update cs1_row to use sys_reg3
  ram: rk3399: Add cs1_col enc macro
  ram: rk3399: Add ddr version enc macro
  ram: rk3399: Add ddrtimingC0
  ram: rk3399: Add DdrMode
  ram: rk3399: Configure phy IO in ds odt
  ram: rockchip: Kconfig: Add RK3399 LPDDR4 entry
  ram: rk3399: Add lpddr4 rank mask for ca training
  ram: rk3399: Add lpddr4 rank mask for wdql training
  ram: rk3399: Move mode_sel assignment
  ram: rk3399: Don't wait for PLL lock in lpddr4
  ram: rk3399: Avoid two channel ZQ Cal Start at the same time
  ram: rk3399: Configure PHY_898, PHY_919 for lpddr4
  ram: rk3399: Configure BOOSTP_EN, BOOSTN_EN for lpddr4
  ram: rk3399: Configure SLEWP_EN, SLEWN_EN for lpddr4
  ram: rk3399: Configure PHY RX_CM_INPUT for lpddr4
  ram: rk3399: Map chipselect for lpddr4
  ram: rk3399: Configure tsel write ca for lpddr4
  ram: rk3399: Don't disable dfi dram clk for lpddr4, rank 1
  ram: rk3399: Add IO settings
  ram: sdram: Configure lpddr4 tsel rd, wr based on IO settings
  ram: rk3399: Add tsel control clock drive
  ram: rk3399: Configure soc odt support
  ram: rk3399: Get lpddr4 tsel_rd_en from io settings
  ram: rk3399: Update lpddr4 vref based on io settings
  ram: rk3399: Update lpddr4 mode_sel based on io settings
  ram: rk3399: Update lpddr4 vref_mode_ac
  ram: rk3399: Simplify data training first argument
  ram: rk3399: Handle data training via ops
  ram: rk3399: Add LPPDR4 mr detection
  arm: include: rockchip: Add rk3399 pmu file
  rockchip: rk3399: syscon: Add pmu support
  rockchip: dts: rk3399: Add u-boot, dm-pre-reloc for pmu
  clk: rockchip: rk3399: Set 50MHz ddr clock
  clk: rockchip: rk3399: Set 400MHz ddr clock
  ram: rk3399: Add LPPDDR4-400 timings inc
  ram: rk3399: Add LPPDDR4-800 timings inc
  ram: rk3399: Add set_rate sdram rk3399 ops
  ram: rk3399: Add lpddr4 set rate support
  configs: rockpro64: Enable LPDDR4 support
  configs: rock-pi-4: Enable LPDDR4 support
  rockchip: dts: rk3399: Add LPDDR4-100 timings
  rockchip: dts: rk3399: rockpro64: Use LPDDR4-100 dtsi
  rockchip: dts: rk3399: rock-pi-4: Use LPDDR4-100 dtsi

 arch/arm/dts/rk3399-rock-pi-4-u-boot.dtsi     |    1 +
 arch/arm/dts/rk3399-rockpro64-u-boot.dtsi     |    1 +
 arch/arm/dts/rk3399-sdram-lpddr4-100.dtsi     | 1537 +++++++++++++++
 arch/arm/dts/rk3399-u-boot.dtsi               |    4 +
 .../include/asm/arch-rockchip/pmu_rk3399.h    |   72 +
 .../include/asm/arch-rockchip/sdram_common.h  |   31 +
 .../include/asm/arch-rockchip/sdram_rk3399.h  |   29 +-
 arch/arm/mach-rockchip/rk3399/syscon_rk3399.c |    8 +
 configs/rock-pi-4-rk3399_defconfig            |    1 +
 configs/rockpro64-rk3399_defconfig            |    1 +
 drivers/clk/rockchip/clk_rk3399.c             |    8 +
 drivers/ram/rockchip/Kconfig                  |    7 +
 .../ram/rockchip/sdram-rk3399-lpddr4-400.inc  | 1570 +++++++++++++++
 .../ram/rockchip/sdram-rk3399-lpddr4-800.inc  | 1570 +++++++++++++++
 drivers/ram/rockchip/sdram_rk3399.c           | 1726 ++++++++++++++---
 15 files changed, 6317 insertions(+), 249 deletions(-)
 create mode 100644 arch/arm/dts/rk3399-sdram-lpddr4-100.dtsi
 create mode 100644 arch/arm/include/asm/arch-rockchip/pmu_rk3399.h
 create mode 100644 drivers/ram/rockchip/sdram-rk3399-lpddr4-400.inc
 create mode 100644 drivers/ram/rockchip/sdram-rk3399-lpddr4-800.inc

Comments

Kever Yang July 16, 2019, 1:10 p.m. UTC | #1
Hi Jagan,

     Please squash patch 01~16 into one patch, they have very similar update

in one function, it does not need so many patches for it, and it won't make

any confuse after the squash.

Thanks,

- Kever

On 2019/7/16 下午7:56, Jagan Teki wrote:
> This is next revison of lpddr4 support on rk3399 compared to
> previous set[1]. It has some changes based on the commit orders
> and squashing few patches together and rest is same.
>
> Thanks to
> - YouMin Chen
> - Akash Gajjar
> - Kever Yang
> for supporting all the help on this work.
>
> Changes for v3:
> - squash set_rate code in one patch
> - tested in Rockpro64 and Rock-PI-4
> - order them in proper way
> - rebase on master
> Changes for v2:
> - handle LPDDR4 code as part of CONFIG_RAM_RK3399_LPDDR4
> - support data_training and set_rate via sdram_rk3399_ops
> - add proper sys_reg_enc macros
> - add new patch to rename variable sdram_params with params
> - fix few commit messages.
>
> patch 0001 - 0018: add dram config enc macro
>
> patch 0019: configure phy IO in ds odt
>
> patch 0020: add LPDDR4 config
>
> patch 0021 - 0043: lpddr4 data training changes
>
> patch 0044 - 0046: syscon pmu support
>
> patch 0047: set 50MHz ddr clock
>
> patch 0048: set 400MHz ddr clock
>
> patch 0049: LPDDR4-400 timings
>
> patch 0050: LPDDR4-800 timings
>
> patch 0051 - 0052: lpddr4 set rate
>
> patch 0053: enable lpddr4 support on Rockpro64
>
> patch 0054: enable lpddr4 support on Rock-PI 4
>
> patch 0055: add LPDDR-100 timings via dts
>
> patch 0056: use LPDDR-100 timings on Rockpro64
>
> patch 0057: use LPDDR-100 timings on Rock-PI 4
>
> [1] https://patchwork.ozlabs.org/cover/1116734/
>
> Any inputs?
> Jagan.
>
> Jagan Teki (57):
>    ram: rk3399: Add ddrtype enc macro
>    ram: rk3399: Add channel number encoder macro
>    ram: rk3399: Add row_3_4 enc macro
>    ram: rk3399: Add chipinfo macro
>    ram: rk3399: Add rank enc macro
>    ram: rk3399: Add column enc macro
>    ram: rk3399: Add bk enc macro
>    ram: rk3399: Add dbw enc macro
>    ram: rk3399: Add cs0_rw macro
>    ram: rk3399: Add cs1_rw macro
>    ram: rk3399: Add bw enc macro
>    ram: rk3399: Rename sys_reg with sys_reg2
>    ram: rk3399: Update cs0_row to use sys_reg3
>    ram: rk3399: Update cs1_row to use sys_reg3
>    ram: rk3399: Add cs1_col enc macro
>    ram: rk3399: Add ddr version enc macro
>    ram: rk3399: Add ddrtimingC0
>    ram: rk3399: Add DdrMode
>    ram: rk3399: Configure phy IO in ds odt
>    ram: rockchip: Kconfig: Add RK3399 LPDDR4 entry
>    ram: rk3399: Add lpddr4 rank mask for ca training
>    ram: rk3399: Add lpddr4 rank mask for wdql training
>    ram: rk3399: Move mode_sel assignment
>    ram: rk3399: Don't wait for PLL lock in lpddr4
>    ram: rk3399: Avoid two channel ZQ Cal Start at the same time
>    ram: rk3399: Configure PHY_898, PHY_919 for lpddr4
>    ram: rk3399: Configure BOOSTP_EN, BOOSTN_EN for lpddr4
>    ram: rk3399: Configure SLEWP_EN, SLEWN_EN for lpddr4
>    ram: rk3399: Configure PHY RX_CM_INPUT for lpddr4
>    ram: rk3399: Map chipselect for lpddr4
>    ram: rk3399: Configure tsel write ca for lpddr4
>    ram: rk3399: Don't disable dfi dram clk for lpddr4, rank 1
>    ram: rk3399: Add IO settings
>    ram: sdram: Configure lpddr4 tsel rd, wr based on IO settings
>    ram: rk3399: Add tsel control clock drive
>    ram: rk3399: Configure soc odt support
>    ram: rk3399: Get lpddr4 tsel_rd_en from io settings
>    ram: rk3399: Update lpddr4 vref based on io settings
>    ram: rk3399: Update lpddr4 mode_sel based on io settings
>    ram: rk3399: Update lpddr4 vref_mode_ac
>    ram: rk3399: Simplify data training first argument
>    ram: rk3399: Handle data training via ops
>    ram: rk3399: Add LPPDR4 mr detection
>    arm: include: rockchip: Add rk3399 pmu file
>    rockchip: rk3399: syscon: Add pmu support
>    rockchip: dts: rk3399: Add u-boot, dm-pre-reloc for pmu
>    clk: rockchip: rk3399: Set 50MHz ddr clock
>    clk: rockchip: rk3399: Set 400MHz ddr clock
>    ram: rk3399: Add LPPDDR4-400 timings inc
>    ram: rk3399: Add LPPDDR4-800 timings inc
>    ram: rk3399: Add set_rate sdram rk3399 ops
>    ram: rk3399: Add lpddr4 set rate support
>    configs: rockpro64: Enable LPDDR4 support
>    configs: rock-pi-4: Enable LPDDR4 support
>    rockchip: dts: rk3399: Add LPDDR4-100 timings
>    rockchip: dts: rk3399: rockpro64: Use LPDDR4-100 dtsi
>    rockchip: dts: rk3399: rock-pi-4: Use LPDDR4-100 dtsi
>
>   arch/arm/dts/rk3399-rock-pi-4-u-boot.dtsi     |    1 +
>   arch/arm/dts/rk3399-rockpro64-u-boot.dtsi     |    1 +
>   arch/arm/dts/rk3399-sdram-lpddr4-100.dtsi     | 1537 +++++++++++++++
>   arch/arm/dts/rk3399-u-boot.dtsi               |    4 +
>   .../include/asm/arch-rockchip/pmu_rk3399.h    |   72 +
>   .../include/asm/arch-rockchip/sdram_common.h  |   31 +
>   .../include/asm/arch-rockchip/sdram_rk3399.h  |   29 +-
>   arch/arm/mach-rockchip/rk3399/syscon_rk3399.c |    8 +
>   configs/rock-pi-4-rk3399_defconfig            |    1 +
>   configs/rockpro64-rk3399_defconfig            |    1 +
>   drivers/clk/rockchip/clk_rk3399.c             |    8 +
>   drivers/ram/rockchip/Kconfig                  |    7 +
>   .../ram/rockchip/sdram-rk3399-lpddr4-400.inc  | 1570 +++++++++++++++
>   .../ram/rockchip/sdram-rk3399-lpddr4-800.inc  | 1570 +++++++++++++++
>   drivers/ram/rockchip/sdram_rk3399.c           | 1726 ++++++++++++++---
>   15 files changed, 6317 insertions(+), 249 deletions(-)
>   create mode 100644 arch/arm/dts/rk3399-sdram-lpddr4-100.dtsi
>   create mode 100644 arch/arm/include/asm/arch-rockchip/pmu_rk3399.h
>   create mode 100644 drivers/ram/rockchip/sdram-rk3399-lpddr4-400.inc
>   create mode 100644 drivers/ram/rockchip/sdram-rk3399-lpddr4-800.inc
>