diff mbox series

arm64: dts: ti: k3-j7200: Add node to disable loopback connection

Message ID 20241127075644.210759-1-a-dutta@ti.com (mailing list archive)
State New, archived
Headers show
Series arm64: dts: ti: k3-j7200: Add node to disable loopback connection | expand

Commit Message

Anurag Dutta Nov. 27, 2024, 7:56 a.m. UTC
CTRLMMR_MCU_SPI1_CTRL register controls if MCU_SPI1 is directly
connected to SPI3 in the MAIN Domain (default) or if MCU_SPI1
and SPI3 are independently pinned out. By default, the field
SPI1_LINKDIS (Bit 0) is set to 0h. In order to disable the direct
connection, the SPI1_LINKDIS (Bit 0) needs to be set to 1h. Model
this functionality as a "reg-mux" device and based on the idle-state
property, enable/disable the connection bewtween MCU_SPI1 and MAIN_SPI3.

The register field description has been referred from J7200 TRM [1]
(Table 5-517. CTRLMMR_MCU_SPI1_CTRL Register Field Descriptions). 

[1] https://www.ti.com/lit/pdf/spruiu1

Signed-off-by: Anurag Dutta <a-dutta@ti.com>
---

Hi all,
The above functionality can be achieved by changing the idle-state of
the "spi1_linkdis" node. As observed, when the SPI1_LINKDIS (Bit 0)
is 0h, the connection remains enabled and SPIDEV loopback test is
succssful [1]. But, when the state changes to 1, the the SPI1_LINKDIS
(Bit 0) becomes 1h and the SPIDEV loopback test fails [2] indicating
that the connection between MCU_SPI1 and MAIN_SPI3 has been disabled.

Test logs:
[1] https://gist.github.com/anuragdutta731/9ac287f27f1dfb3a5ccee4cc86e02dbb
[2] https://gist.github.com/anuragdutta731/3ed7b7b5a1a3dab494ba46858b972088
 
 arch/arm64/boot/dts/ti/k3-j7200-common-proc-board.dts | 4 ++++
 arch/arm64/boot/dts/ti/k3-j7200-mcu-wakeup.dtsi       | 7 +++++++
 2 files changed, 11 insertions(+)

Comments

Nishanth Menon Jan. 2, 2025, 4:34 p.m. UTC | #1
Hi Anurag Dutta,

On Wed, 27 Nov 2024 13:26:44 +0530, Anurag Dutta wrote:
> CTRLMMR_MCU_SPI1_CTRL register controls if MCU_SPI1 is directly
> connected to SPI3 in the MAIN Domain (default) or if MCU_SPI1
> and SPI3 are independently pinned out. By default, the field
> SPI1_LINKDIS (Bit 0) is set to 0h. In order to disable the direct
> connection, the SPI1_LINKDIS (Bit 0) needs to be set to 1h. Model
> this functionality as a "reg-mux" device and based on the idle-state
> property, enable/disable the connection bewtween MCU_SPI1 and MAIN_SPI3.
> 
> [...]

I have applied the following to branch ti-k3-dts-next on [1].
Thank you!

[1/1] arm64: dts: ti: k3-j7200: Add node to disable loopback connection
      commit: 6b51892b31fe83fe7cc8cf69e4bf7721cf08951b

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent up the chain during
the next merge window (or sooner if it is a relevant bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/ti/linux.git
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/ti/k3-j7200-common-proc-board.dts b/arch/arm64/boot/dts/ti/k3-j7200-common-proc-board.dts
index db43e7e10b76..f684ce6ad9ad 100644
--- a/arch/arm64/boot/dts/ti/k3-j7200-common-proc-board.dts
+++ b/arch/arm64/boot/dts/ti/k3-j7200-common-proc-board.dts
@@ -409,6 +409,10 @@  &serdes_ln_ctrl {
 		      <J7200_SERDES0_LANE2_QSGMII_LANE1>, <J7200_SERDES0_LANE3_IP4_UNUSED>;
 };
 
+&mcu_spi1 {
+	mux-controls = <&spi1_linkdis 0>;
+};
+
 &usb_serdes_mux {
 	idle-states = <1>; /* USB0 to SERDES lane 3 */
 	bootph-all;
diff --git a/arch/arm64/boot/dts/ti/k3-j7200-mcu-wakeup.dtsi b/arch/arm64/boot/dts/ti/k3-j7200-mcu-wakeup.dtsi
index 6a8453865874..56ab144fea07 100644
--- a/arch/arm64/boot/dts/ti/k3-j7200-mcu-wakeup.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-j7200-mcu-wakeup.dtsi
@@ -184,6 +184,13 @@  phy_gmii_sel: phy@4040 {
 			reg = <0x4040 0x4>;
 			#phy-cells = <1>;
 		};
+
+		spi1_linkdis: mux-controller@4060 {
+			compatible = "reg-mux";
+			reg = <0x4060 0x4>;
+			#mux-control-cells = <1>;
+			mux-reg-masks = <0x0 0x1>;
+		};
 	};
 
 	wkup_conf: bus@43000000 {