[P3762/P3783]:Virtual i2c mux support for other 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>
Reviewed-on: https://git-master.nvidia.com/r/c/device/hardware/nvidia/t23x-public-dts/+/3210318
Reviewed-by: Ankur Pawar <ankurp@nvidia.com>
Reviewed-by: Bibek Basu <bbasu@nvidia.com>
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
This commit is contained in:
Praveen AC
2024-09-09 19:00:16 +00:00
committed by mobile promotions
parent 50cd4a94af
commit e96aba03cf
10 changed files with 183 additions and 125 deletions

View File

@@ -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

@@ -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

@@ -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

@@ -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

@@ -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

@@ -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

@@ -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

@@ -68,12 +68,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

@@ -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

@@ -221,6 +221,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>;
@@ -253,6 +259,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>;