Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
* rk3399 dram default timing is at arch/arm64/boot/dts/rk3399_dram_default_timing.dtsi

Required properties:
- compatible : Should be "rockchip,ddr-timing"

- ddr3_speed_bin : Value is defined at include/dt-bindings/clock/ddr.h.
  It select DDR3 cl-trp-trcd type, default value "DDR3_DEFAULT".it must selected
  according to "Speed Bin" in DDR3 datasheet, DO NOT use smaller "Speed Bin" than
  DDR3 exactly is.

- pd_idle : Defines the power-down mode auto entry controller clocks.
  This parameter defines the number of idle controller clocks that can elapse
  before the controller will automatically issue an entry into the appropriate
  power-down low power state.

- sr_idle : Defines the Self-Refresh or Self-Refresh with Memory Clock Gating
  auto entry periodic cycles.
  This parameter defines the number of long count sequences that can elapse
  before the controller will automatically issue an entry into the Self-Refresh
  or Self-Refresh with Memory Clock Gating low power state.

- sr_mc_gate_idle : Defined the Self-Refresh with Memory and Controller Clock Gating
  auto entry periodic cycles.
  This parameter defines the number of long count sequences that can elapse before
  the controller will automatically issue an entry into the Self-Refresh with
  Memory and Controller Clock Gating low power state.

- srpd_lite_idle : Define the Lite Self-Refresh Power-Down auto entry periodic
  cycles.
  This parameter defines the number of long count sequences that can elapse
  before the controller will automatically issue an entry into the
  Lite Self-Refresh Power-Down low power state.

- standby_idle : Define the standby mode auto entry periodic cycles.

- auto_lp_dis_freq : It's defined the auto low down mode frequency in MHz (Mega Hz),
  when ddr freq greater than or equal this setting value, auto power-down will disable.

- ddr3_dll_dis_freq : It's defined the DDR3 dll bypass frequency in MHz (Mega Hz),
  when ddr freq less than or equal this setting value, DDR3 dll will bypssed.
  note: if dll was bypassed, the odt also stop working.

- phy_dll_dis_freq : Defined the PHY dll bypass frequency in MHz (Mega Hz),
  when ddr freq less than or equal this setting value, phy dll will bypssed.
  note: phy dll and phy odt are independent.

- ddr3_odt_dis_freq : Defined the DDR3 odt disable frequency in
  MHz (Mega Hz), when ddr frequency less then or equal ethis setting value, the DDR3
  ODT are disabled.

- ddr3_drv : Define the driver strength in ohm when connect DDR3.

- ddr3_odt : Define the ODT in ohm when connect DDR3.

- phy_ddr3_ca_drv : Define the PHY CA driver strength in ohm when connect DDR3.

- phy_ddr3_dq_drv : Define the PHY DQ driver strength in ohm when connect DDR3.

- phy_ddr3_odt : Define the phy odt in ohm when connect DDR3.

- lpddr3_odt_dis_freq : Defined the LPDDR3 odt disable frequency in
  MHz (Mega Hz), when ddr frequency less or equal then this setting value, the LPDDR3
  ODT are disabled.

- lpddr3_drv : Define the driver strength in ohm when connect LPDDR3.

- lpddr3_odt : Define the ODT in ohm when connect LPDDR3.

- phy_lpddr3_ca_drv : Define the PHY CA driver strength in ohm when connect LPDDR3.

- phy_lpddr3_dq_drv : Define the PHY DQ driver strength in ohm when connect LPDDR3.

- phy_lpddr3_odt : Define the phy odt in ohm when connect LPDDR3.

- lpddr4_odt_dis_freq : Defined the LPDDR4 odt disable frequency in
  MHz (Mega Hz), when ddr frequency less or equal then this setting value, the LPDDR4
  ODT are disabled.

- lpddr4_drv : Define the driver strength in ohm when connect LPDDR4.

- lpddr4_dq_odt : Define the DQ ODT in ohm when connect LPDDR4.

- lpddr4_ca_odt : Define the CA ODT in ohm when connect LPDDR4.

- phy_lpddr4_ca_drv : Define the PHY CA driver strength in ohm when connect LPDDR4.

- phy_lpddr4_ck_cs_drv : Define the PHY CLK and CS driver strength in ohm when connect LPDDR4.

- phy_lpddr4_dq_drv : Define the PHY DQ driver strength in ohm when connect LPDDR4.

- phy_lpddr4_odt : Define the phy odt in ohm when connect LPDDR4.

Example:
/ {
	ddr_timing: ddr_timing {
		compatible = "rockchip,ddr-timing";
		ddr3_speed_bin = <21>;
		pd_idle = <0>;
		sr_idle = <0>;
		sr_mc_gate_idle = <0>;
		srpd_lite_idle  = <0>;
		standby_idle = <0>;
		auto_lp_dis_freq = <666>;
		ddr3_dll_dis_freq = <300>;
		phy_dll_dis_freq = <260>;

		ddr3_odt_dis_freq = <666>;
		ddr3_drv = <DDR3_DS_40ohm>;
		ddr3_odt = <DDR3_ODT_120ohm>;
		phy_ddr3_ca_drv = <PHY_DRV_ODT_40>;
		phy_ddr3_dq_drv = <PHY_DRV_ODT_40>;
		phy_ddr3_odt = <PHY_DRV_ODT_240>;

		lpddr3_odt_dis_freq = <666>;
		lpddr3_drv = <LP3_DS_34ohm>;
		lpddr3_odt = <LP3_ODT_240ohm>;
		phy_lpddr3_ca_drv = <PHY_DRV_ODT_34_3>;
		phy_lpddr3_dq_drv = <PHY_DRV_ODT_34_3>;
		phy_lpddr3_odt = <PHY_DRV_ODT_240>;

		lpddr4_odt_dis_freq = <933>;
		lpddr4_drv = <LP4_PDDS_60ohm>;
		lpddr4_dq_odt = <LP4_DQ_ODT_40ohm>;
		lpddr4_ca_odt = <LP4_CA_ODT_40ohm>;
		phy_lpddr4_ca_drv = <PHY_DRV_ODT_40>;
		phy_lpddr4_ck_cs_drv = <PHY_DRV_ODT_80>;
		phy_lpddr4_dq_drv = <PHY_DRV_ODT_80>;
		phy_lpddr4_odt = <PHY_DRV_ODT_60>;
	};
};