[P3762/P3783]:Virtual i2c mux support all Hawks

Add virtual i2c bus support for 2nd,3rd & 4th Hawks
to read/write EEPROM data while streaming

Bug 4807682

Change-Id: I76e4a1128a66f22d13f7ee2c04c64d42da519080
Signed-off-by: Praveen AC <pac@nvidia.com>
(cherry picked from commit e96aba03cf)
Reviewed-on: https://git-master.nvidia.com/r/c/device/hardware/nvidia/t23x-public-dts/+/3258815
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Bibek Basu <bbasu@nvidia.com>
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Ankur Pawar <ankurp@nvidia.com>
This commit is contained in:
Praveen AC
2024-09-09 19:00:16 +00:00
committed by mobile promotions
parent b6c54fa3ca
commit f1c9521e5d
10 changed files with 193 additions and 135 deletions

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: GPL-2.0-only // SPDX-License-Identifier: GPL-2.0-only
// SPDX-FileCopyrightText: Copyright (c) 2023-2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. // SPDX-FileCopyrightText: Copyright (c) 2023-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
/* 12 camera module with 4 hawks and 4 Owls /* 12 camera module with 4 hawks and 4 Owls
* HAWK1 - 2 ar0234 cameras - max96712 Aggregator 1 - GMSL0 * HAWK1 - 2 ar0234 cameras - max96712 Aggregator 1 - GMSL0
@@ -1113,6 +1113,8 @@
}; };
}; };
}; };
};
i2c@2 {
ar0234_e@34 { ar0234_e@34 {
compatible = "nvidia,ar0234_hawk_owl"; compatible = "nvidia,ar0234_hawk_owl";
reg = <0x34>; reg = <0x34>;
@@ -1249,6 +1251,8 @@
}; };
}; };
}; };
};
i2c@3 {
ar0234_g@36 { ar0234_g@36 {
compatible = "nvidia,ar0234_hawk_owl"; compatible = "nvidia,ar0234_hawk_owl";
reg = <0x36>; reg = <0x36>;
@@ -1500,7 +1504,7 @@
status = "okay"; status = "okay";
drivernode0 { drivernode0 {
pcl_id = "v4l2_sensor"; pcl_id = "v4l2_sensor";
sysfs-device-tree = "/sys/firmware/devicetree/base/bus@0/i2c@31e0000/virtual_i2c_mux@50/i2c@1/ar0234_e@34"; sysfs-device-tree = "/sys/firmware/devicetree/base/bus@0/i2c@31e0000/virtual_i2c_mux@50/i2c@2/ar0234_e@34";
status = "okay"; status = "okay";
}; };
}; };
@@ -1511,7 +1515,7 @@
status = "okay"; status = "okay";
drivernode0 { drivernode0 {
pcl_id = "v4l2_sensor"; pcl_id = "v4l2_sensor";
sysfs-device-tree = "/sys/firmware/devicetree/base/bus@0/i2c@31e0000/virtual_i2c_mux@50/i2c@1/ar0234_f@35"; sysfs-device-tree = "/sys/firmware/devicetree/base/bus@0/i2c@31e0000/virtual_i2c_mux@50/i2c@2/ar0234_f@35";
status = "okay"; status = "okay";
}; };
}; };
@@ -1522,7 +1526,7 @@
status = "okay"; status = "okay";
drivernode0 { drivernode0 {
pcl_id = "v4l2_sensor"; pcl_id = "v4l2_sensor";
sysfs-device-tree = "/sys/firmware/devicetree/base/bus@0/i2c@31e0000/virtual_i2c_mux@50/i2c@1/ar0234_g@36"; sysfs-device-tree = "/sys/firmware/devicetree/base/bus@0/i2c@31e0000/virtual_i2c_mux@50/i2c@3/ar0234_g@36";
status = "okay"; status = "okay";
}; };
}; };
@@ -1533,7 +1537,7 @@
status = "okay"; status = "okay";
drivernode0 { drivernode0 {
pcl_id = "v4l2_sensor"; pcl_id = "v4l2_sensor";
sysfs-device-tree = "/sys/firmware/devicetree/base/bus@0/i2c@31e0000/virtual_i2c_mux@50/i2c@1/ar0234_h@37"; sysfs-device-tree = "/sys/firmware/devicetree/base/bus@0/i2c@31e0000/virtual_i2c_mux@50/i2c@3/ar0234_h@37";
status = "okay"; status = "okay";
}; };
}; };

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: GPL-2.0-only // SPDX-License-Identifier: GPL-2.0-only
// SPDX-FileCopyrightText: Copyright (c) 2023-2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. // SPDX-FileCopyrightText: Copyright (c) 2023-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
/* 12 camera module with 4 hawks and 4 Owls /* 12 camera module with 4 hawks and 4 Owls
* HAWK1 - 2 ar0234 cameras - max96712 Aggregator 1 - GMSL0 * HAWK1 - 2 ar0234 cameras - max96712 Aggregator 1 - GMSL0
@@ -1113,6 +1113,8 @@
}; };
}; };
}; };
};
i2c@2 {
ar0234_e@34 { ar0234_e@34 {
compatible = "nvidia,ar0234_hawk_owl"; compatible = "nvidia,ar0234_hawk_owl";
reg = <0x34>; reg = <0x34>;
@@ -1249,6 +1251,8 @@
}; };
}; };
}; };
};
i2c@3 {
ar0234_g@36 { ar0234_g@36 {
compatible = "nvidia,ar0234_hawk_owl"; compatible = "nvidia,ar0234_hawk_owl";
reg = <0x36>; reg = <0x36>;
@@ -1409,6 +1413,7 @@
drivernode0 { drivernode0 {
/* Declare PCL support driver (classically known as guid) */ /* Declare PCL support driver (classically known as guid) */
pcl_id = "v4l2_sensor"; pcl_id = "v4l2_sensor";
/* Declare the device-tree hierarchy to driver instance */
sysfs-device-tree = "/sys/firmware/devicetree/base/bus@0/i2c@3180000/ar0234_i@30"; sysfs-device-tree = "/sys/firmware/devicetree/base/bus@0/i2c@3180000/ar0234_i@30";
status = "okay"; status = "okay";
}; };
@@ -1421,6 +1426,7 @@
drivernode0 { drivernode0 {
/* Declare PCL support driver (classically known as guid) */ /* Declare PCL support driver (classically known as guid) */
pcl_id = "v4l2_sensor"; pcl_id = "v4l2_sensor";
/* Declare the device-tree hierarchy to driver instance */
sysfs-device-tree = "/sys/firmware/devicetree/base/bus@0/i2c@3180000/ar0234_j@32"; sysfs-device-tree = "/sys/firmware/devicetree/base/bus@0/i2c@3180000/ar0234_j@32";
status = "okay"; status = "okay";
}; };
@@ -1498,7 +1504,7 @@
status = "okay"; status = "okay";
drivernode0 { drivernode0 {
pcl_id = "v4l2_sensor"; pcl_id = "v4l2_sensor";
sysfs-device-tree = "/sys/firmware/devicetree/base/bus@0/i2c@31e0000/virtual_i2c_mux@50/i2c@1/ar0234_e@34"; sysfs-device-tree = "/sys/firmware/devicetree/base/bus@0/i2c@31e0000/virtual_i2c_mux@50/i2c@2/ar0234_e@34";
status = "okay"; status = "okay";
}; };
}; };
@@ -1509,7 +1515,7 @@
status = "okay"; status = "okay";
drivernode0 { drivernode0 {
pcl_id = "v4l2_sensor"; pcl_id = "v4l2_sensor";
sysfs-device-tree = "/sys/firmware/devicetree/base/bus@0/i2c@31e0000/virtual_i2c_mux@50/i2c@1/ar0234_f@35"; sysfs-device-tree = "/sys/firmware/devicetree/base/bus@0/i2c@31e0000/virtual_i2c_mux@50/i2c@2/ar0234_f@35";
status = "okay"; status = "okay";
}; };
}; };
@@ -1520,7 +1526,7 @@
status = "okay"; status = "okay";
drivernode0 { drivernode0 {
pcl_id = "v4l2_sensor"; pcl_id = "v4l2_sensor";
sysfs-device-tree = "/sys/firmware/devicetree/base/bus@0/i2c@31e0000/virtual_i2c_mux@50/i2c@1/ar0234_g@36"; sysfs-device-tree = "/sys/firmware/devicetree/base/bus@0/i2c@31e0000/virtual_i2c_mux@50/i2c@3/ar0234_g@36";
status = "okay"; status = "okay";
}; };
}; };
@@ -1531,7 +1537,7 @@
status = "okay"; status = "okay";
drivernode0 { drivernode0 {
pcl_id = "v4l2_sensor"; pcl_id = "v4l2_sensor";
sysfs-device-tree = "/sys/firmware/devicetree/base/bus@0/i2c@31e0000/virtual_i2c_mux@50/i2c@1/ar0234_h@37"; sysfs-device-tree = "/sys/firmware/devicetree/base/bus@0/i2c@31e0000/virtual_i2c_mux@50/i2c@3/ar0234_h@37";
status = "okay"; status = "okay";
}; };
}; };

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: GPL-2.0-only // SPDX-License-Identifier: GPL-2.0-only
// SPDX-FileCopyrightText: Copyright (c) 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. // SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
/dts-v1/; /dts-v1/;
/plugin/; /plugin/;
@@ -154,12 +154,16 @@
ar0234_d@33 { ar0234_d@33 {
status = "disabled"; status = "disabled";
}; };
};
i2c@2 {
ar0234_e@34 { ar0234_e@34 {
status = "disabled"; status = "disabled";
}; };
ar0234_f@35 { ar0234_f@35 {
status = "disabled"; status = "disabled";
}; };
};
i2c@3 {
ar0234_g@36 { ar0234_g@36 {
status = "disabled"; status = "disabled";
}; };

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: GPL-2.0-only // SPDX-License-Identifier: GPL-2.0-only
// SPDX-FileCopyrightText: Copyright (c) 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. // SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
/dts-v1/; /dts-v1/;
/plugin/; /plugin/;
@@ -154,12 +154,16 @@
ar0234_d@33 { ar0234_d@33 {
status = "okay"; status = "okay";
}; };
};
i2c@2 {
ar0234_e@34 { ar0234_e@34 {
status = "disabled"; status = "disabled";
}; };
ar0234_f@35 { ar0234_f@35 {
status = "disabled"; status = "disabled";
}; };
};
i2c@3 {
ar0234_g@36 { ar0234_g@36 {
status = "disabled"; status = "disabled";
}; };

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: GPL-2.0-only // SPDX-License-Identifier: GPL-2.0-only
// SPDX-FileCopyrightText: Copyright (c) 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. // SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
/dts-v1/; /dts-v1/;
/plugin/; /plugin/;
@@ -155,12 +155,16 @@
ar0234_d@33 { ar0234_d@33 {
status = "okay"; status = "okay";
}; };
};
i2c@2 {
ar0234_e@34 { ar0234_e@34 {
status = "okay"; status = "okay";
}; };
ar0234_f@35 { ar0234_f@35 {
status = "okay"; status = "okay";
}; };
};
i2c@3 {
ar0234_g@36 { ar0234_g@36 {
status = "disabled"; status = "disabled";
}; };

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: GPL-2.0-only // SPDX-License-Identifier: GPL-2.0-only
// SPDX-FileCopyrightText: Copyright (c) 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. // SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
/dts-v1/; /dts-v1/;
/plugin/; /plugin/;
@@ -154,12 +154,16 @@
ar0234_d@33 { ar0234_d@33 {
status = "okay"; status = "okay";
}; };
};
i2c@2 {
ar0234_e@34 { ar0234_e@34 {
status = "okay"; status = "okay";
}; };
ar0234_f@35 { ar0234_f@35 {
status = "okay"; status = "okay";
}; };
};
i2c@3 {
ar0234_g@36 { ar0234_g@36 {
status = "okay"; status = "okay";
}; };

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: GPL-2.0-only // SPDX-License-Identifier: GPL-2.0-only
// SPDX-FileCopyrightText: Copyright (c) 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. // SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
/dts-v1/; /dts-v1/;
/plugin/; /plugin/;
@@ -155,12 +155,16 @@
ar0234_d@33 { ar0234_d@33 {
status = "disabled"; status = "disabled";
}; };
};
i2c@2 {
ar0234_e@34 { ar0234_e@34 {
status = "disabled"; status = "disabled";
}; };
ar0234_f@35 { ar0234_f@35 {
status = "disabled"; status = "disabled";
}; };
};
i2c@3 {
ar0234_g@36 { ar0234_g@36 {
status = "disabled"; status = "disabled";
}; };

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: GPL-2.0-only // SPDX-License-Identifier: GPL-2.0-only
// SPDX-FileCopyrightText: Copyright (c) 2023-2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. // SPDX-FileCopyrightText: Copyright (c) 2023-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
/dts-v1/; /dts-v1/;
/plugin/; /plugin/;
@@ -78,12 +78,16 @@
ar0234_d@33 { ar0234_d@33 {
status = "okay"; status = "okay";
}; };
};
i2c@2 {
ar0234_e@34 { ar0234_e@34 {
status = "okay"; status = "okay";
}; };
ar0234_f@35 { ar0234_f@35 {
status = "okay"; status = "okay";
}; };
};
i2c@3 {
ar0234_g@36 { ar0234_g@36 {
status = "okay"; status = "okay";
}; };

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: GPL-2.0-only // SPDX-License-Identifier: GPL-2.0-only
// SPDX-FileCopyrightText: Copyright (c) 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. // SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
#include "tegra234-camera-p3762-a00.dtsi" #include "tegra234-camera-p3762-a00.dtsi"
#include "dt-bindings/gpio/tegra234-gpio.h" #include "dt-bindings/gpio/tegra234-gpio.h"
@@ -215,6 +215,12 @@
pwdn-gpios = <&gpio CAM0_PWDN GPIO_ACTIVE_HIGH>; pwdn-gpios = <&gpio CAM0_PWDN GPIO_ACTIVE_HIGH>;
pwr-gpios = <&gpio PWR_EN GPIO_ACTIVE_HIGH>; pwr-gpios = <&gpio PWR_EN GPIO_ACTIVE_HIGH>;
}; };
};
i2c@2 {
reg = <2>;
i2c-mux,deselect-on-exit;
#address-cells = <1>;
#size-cells = <0>;
ar0234_e@34 { ar0234_e@34 {
status = "disabled"; status = "disabled";
def-addr = <0x10>; def-addr = <0x10>;
@@ -247,6 +253,12 @@
pwdn-gpios = <&gpio CAM0_PWDN GPIO_ACTIVE_HIGH>; pwdn-gpios = <&gpio CAM0_PWDN GPIO_ACTIVE_HIGH>;
pwr-gpios = <&gpio PWR_EN GPIO_ACTIVE_HIGH>; pwr-gpios = <&gpio PWR_EN GPIO_ACTIVE_HIGH>;
}; };
};
i2c@3 {
reg = <3>;
i2c-mux,deselect-on-exit;
#address-cells = <1>;
#size-cells = <0>;
ar0234_g@36 { ar0234_g@36 {
status = "disabled"; status = "disabled";
def-addr = <0x10>; def-addr = <0x10>;

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: GPL-2.0-only // SPDX-License-Identifier: GPL-2.0-only
// SPDX-FileCopyrightText: Copyright (c) 2023-2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. // SPDX-FileCopyrightText: Copyright (c) 2023-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
/dts-v1/; /dts-v1/;
/plugin/; /plugin/;
@@ -215,6 +215,12 @@
pwdn-gpios = <&gpio CAM0_PWDN GPIO_ACTIVE_HIGH>; pwdn-gpios = <&gpio CAM0_PWDN GPIO_ACTIVE_HIGH>;
pwr-gpios = <&gpio PWR_EN GPIO_ACTIVE_HIGH>; pwr-gpios = <&gpio PWR_EN GPIO_ACTIVE_HIGH>;
}; };
};
i2c@2 {
reg = <2>;
i2c-mux,deselect-on-exit;
#address-cells = <1>;
#size-cells = <0>;
ar0234_e@34 { ar0234_e@34 {
status = "okay"; status = "okay";
def-addr = <0x10>; def-addr = <0x10>;
@@ -247,6 +253,12 @@
pwdn-gpios = <&gpio CAM0_PWDN GPIO_ACTIVE_HIGH>; pwdn-gpios = <&gpio CAM0_PWDN GPIO_ACTIVE_HIGH>;
pwr-gpios = <&gpio PWR_EN GPIO_ACTIVE_HIGH>; pwr-gpios = <&gpio PWR_EN GPIO_ACTIVE_HIGH>;
}; };
};
i2c@3 {
reg = <3>;
i2c-mux,deselect-on-exit;
#address-cells = <1>;
#size-cells = <0>;
ar0234_g@36 { ar0234_g@36 {
status = "okay"; status = "okay";
def-addr = <0x10>; def-addr = <0x10>;