Skip to content

Commit c273058

Browse files
committed
media: i2c: imx477: Extract more registers from mode tables to common
There are a fair number of registers duplicated in all the mode tables, so move those into the common table. Signed-off-by: Dave Stevenson <[email protected]>
1 parent c077423 commit c273058

File tree

1 file changed

+43
-163
lines changed

1 file changed

+43
-163
lines changed

drivers/media/i2c/imx477.c

Lines changed: 43 additions & 163 deletions
Original file line numberDiff line numberDiff line change
@@ -564,6 +564,49 @@ static const struct cci_reg_sequence mode_common_regs[] = {
564564
{CCI_REG8(0x0350), 0x00},
565565
{CCI_REG8(0xbcf1), 0x02},
566566
{CCI_REG8(0x3ff9), 0x01},
567+
{CCI_REG8(0x0220), 0x00},
568+
{CCI_REG8(0x0221), 0x11},
569+
{CCI_REG8(0x0381), 0x01},
570+
{CCI_REG8(0x0383), 0x01},
571+
{CCI_REG8(0x0385), 0x01},
572+
{CCI_REG8(0x0387), 0x01},
573+
{CCI_REG8(0x0902), 0x02},
574+
{CCI_REG8(0x3140), 0x02},
575+
{CCI_REG8(0x3c00), 0x00},
576+
{CCI_REG8(0x9e9a), 0x2f},
577+
{CCI_REG8(0x9e9b), 0x2f},
578+
{CCI_REG8(0x9e9c), 0x2f},
579+
{CCI_REG8(0x9e9d), 0x00},
580+
{CCI_REG8(0x9e9e), 0x00},
581+
{CCI_REG8(0x9e9f), 0x00},
582+
{CCI_REG8(0x0301), 0x05},
583+
{CCI_REG8(0x0303), 0x02},
584+
{CCI_REG8(0x030b), 0x02},
585+
{CCI_REG8(0x030d), 0x02},
586+
{CCI_REG8(0x0310), 0x01},
587+
{CCI_REG8(0x0820), 0x07},
588+
{CCI_REG8(0x0821), 0x08},
589+
{CCI_REG8(0x0822), 0x00},
590+
{CCI_REG8(0x0823), 0x00},
591+
{CCI_REG8(0x080a), 0x00},
592+
{CCI_REG8(0x080b), 0x7f},
593+
{CCI_REG8(0x080c), 0x00},
594+
{CCI_REG8(0x080d), 0x4f},
595+
{CCI_REG8(0x080e), 0x00},
596+
{CCI_REG8(0x080f), 0x77},
597+
{CCI_REG8(0x0810), 0x00},
598+
{CCI_REG8(0x0811), 0x5f},
599+
{CCI_REG8(0x0812), 0x00},
600+
{CCI_REG8(0x0813), 0x57},
601+
{CCI_REG8(0x0814), 0x00},
602+
{CCI_REG8(0x0815), 0x4f},
603+
{CCI_REG8(0x0816), 0x01},
604+
{CCI_REG8(0x0817), 0x27},
605+
{CCI_REG8(0x0818), 0x00},
606+
{CCI_REG8(0x0819), 0x3f},
607+
{CCI_REG8(0x3e20), 0x01},
608+
{CCI_REG8(0x3e37), 0x00},
609+
{CCI_REG8(0x3f50), 0x00},
567610
};
568611

569612
/* 12 mpix 10fps */
@@ -582,17 +625,8 @@ static const struct cci_reg_sequence mode_4056x3040_regs[] = {
582625
{CCI_REG8(0x00fd), 0x0a},
583626
{CCI_REG8(0x00fe), 0x0a},
584627
{CCI_REG8(0x00ff), 0x0a},
585-
{CCI_REG8(0x0220), 0x00},
586-
{CCI_REG8(0x0221), 0x11},
587-
{CCI_REG8(0x0381), 0x01},
588-
{CCI_REG8(0x0383), 0x01},
589-
{CCI_REG8(0x0385), 0x01},
590-
{CCI_REG8(0x0387), 0x01},
591628
{CCI_REG8(0x0900), 0x00},
592629
{CCI_REG8(0x0901), 0x11},
593-
{CCI_REG8(0x0902), 0x02},
594-
{CCI_REG8(0x3140), 0x02},
595-
{CCI_REG8(0x3c00), 0x00},
596630
{CCI_REG8(0x3c01), 0x03},
597631
{CCI_REG8(0x3c02), 0xa2},
598632
{CCI_REG8(0x3f0d), 0x01},
@@ -611,12 +645,6 @@ static const struct cci_reg_sequence mode_4056x3040_regs[] = {
611645
{CCI_REG8(0x936d), 0x28},
612646
{CCI_REG8(0x9304), 0x00},
613647
{CCI_REG8(0x9305), 0x00},
614-
{CCI_REG8(0x9e9a), 0x2f},
615-
{CCI_REG8(0x9e9b), 0x2f},
616-
{CCI_REG8(0x9e9c), 0x2f},
617-
{CCI_REG8(0x9e9d), 0x00},
618-
{CCI_REG8(0x9e9e), 0x00},
619-
{CCI_REG8(0x9e9f), 0x00},
620648
{CCI_REG8(0xa2a9), 0x60},
621649
{CCI_REG8(0xa2b7), 0x00},
622650
{CCI_REG8(0x0401), 0x00},
@@ -634,42 +662,14 @@ static const struct cci_reg_sequence mode_4056x3040_regs[] = {
634662
{CCI_REG8(0x034d), 0xd8},
635663
{CCI_REG8(0x034e), 0x0b},
636664
{CCI_REG8(0x034f), 0xe0},
637-
{CCI_REG8(0x0301), 0x05},
638-
{CCI_REG8(0x0303), 0x02},
639665
{CCI_REG8(0x0305), 0x04},
640666
{CCI_REG8(0x0306), 0x01},
641667
{CCI_REG8(0x0307), 0x5e},
642668
{CCI_REG8(0x0309), 0x0c},
643-
{CCI_REG8(0x030b), 0x02},
644-
{CCI_REG8(0x030d), 0x02},
645-
{CCI_REG8(0x0310), 0x01},
646-
{CCI_REG8(0x0820), 0x07},
647-
{CCI_REG8(0x0821), 0x08},
648-
{CCI_REG8(0x0822), 0x00},
649-
{CCI_REG8(0x0823), 0x00},
650-
{CCI_REG8(0x080a), 0x00},
651-
{CCI_REG8(0x080b), 0x7f},
652-
{CCI_REG8(0x080c), 0x00},
653-
{CCI_REG8(0x080d), 0x4f},
654-
{CCI_REG8(0x080e), 0x00},
655-
{CCI_REG8(0x080f), 0x77},
656-
{CCI_REG8(0x0810), 0x00},
657-
{CCI_REG8(0x0811), 0x5f},
658-
{CCI_REG8(0x0812), 0x00},
659-
{CCI_REG8(0x0813), 0x57},
660-
{CCI_REG8(0x0814), 0x00},
661-
{CCI_REG8(0x0815), 0x4f},
662-
{CCI_REG8(0x0816), 0x01},
663-
{CCI_REG8(0x0817), 0x27},
664-
{CCI_REG8(0x0818), 0x00},
665-
{CCI_REG8(0x0819), 0x3f},
666669
{CCI_REG8(0xe04c), 0x00},
667670
{CCI_REG8(0xe04d), 0x7f},
668671
{CCI_REG8(0xe04e), 0x00},
669672
{CCI_REG8(0xe04f), 0x1f},
670-
{CCI_REG8(0x3e20), 0x01},
671-
{CCI_REG8(0x3e37), 0x00},
672-
{CCI_REG8(0x3f50), 0x00},
673673
{CCI_REG8(0x3f56), 0x02},
674674
{CCI_REG8(0x3f57), 0xae},
675675
};
@@ -684,17 +684,8 @@ static const struct cci_reg_sequence mode_2028x1520_regs[] = {
684684
{CCI_REG8(0x0349), 0xd7},
685685
{CCI_REG8(0x034a), 0x0b},
686686
{CCI_REG8(0x034b), 0xdf},
687-
{CCI_REG8(0x0220), 0x00},
688-
{CCI_REG8(0x0221), 0x11},
689-
{CCI_REG8(0x0381), 0x01},
690-
{CCI_REG8(0x0383), 0x01},
691-
{CCI_REG8(0x0385), 0x01},
692-
{CCI_REG8(0x0387), 0x01},
693687
{CCI_REG8(0x0900), 0x01},
694688
{CCI_REG8(0x0901), 0x22},
695-
{CCI_REG8(0x0902), 0x02},
696-
{CCI_REG8(0x3140), 0x02},
697-
{CCI_REG8(0x3c00), 0x00},
698689
{CCI_REG8(0x3c01), 0x03},
699690
{CCI_REG8(0x3c02), 0xa2},
700691
{CCI_REG8(0x3f0d), 0x01},
@@ -708,12 +699,6 @@ static const struct cci_reg_sequence mode_2028x1520_regs[] = {
708699
{CCI_REG8(0x936d), 0x5f},
709700
{CCI_REG8(0x9304), 0x00},
710701
{CCI_REG8(0x9305), 0x00},
711-
{CCI_REG8(0x9e9a), 0x2f},
712-
{CCI_REG8(0x9e9b), 0x2f},
713-
{CCI_REG8(0x9e9c), 0x2f},
714-
{CCI_REG8(0x9e9d), 0x00},
715-
{CCI_REG8(0x9e9e), 0x00},
716-
{CCI_REG8(0x9e9f), 0x00},
717702
{CCI_REG8(0xa2a9), 0x60},
718703
{CCI_REG8(0xa2b7), 0x00},
719704
{CCI_REG8(0x0401), 0x00},
@@ -731,42 +716,14 @@ static const struct cci_reg_sequence mode_2028x1520_regs[] = {
731716
{CCI_REG8(0x034d), 0xec},
732717
{CCI_REG8(0x034e), 0x05},
733718
{CCI_REG8(0x034f), 0xf0},
734-
{CCI_REG8(0x0301), 0x05},
735-
{CCI_REG8(0x0303), 0x02},
736719
{CCI_REG8(0x0305), 0x04},
737720
{CCI_REG8(0x0306), 0x01},
738721
{CCI_REG8(0x0307), 0x5e},
739722
{CCI_REG8(0x0309), 0x0c},
740-
{CCI_REG8(0x030b), 0x02},
741-
{CCI_REG8(0x030d), 0x02},
742-
{CCI_REG8(0x0310), 0x01},
743-
{CCI_REG8(0x0820), 0x07},
744-
{CCI_REG8(0x0821), 0x08},
745-
{CCI_REG8(0x0822), 0x00},
746-
{CCI_REG8(0x0823), 0x00},
747-
{CCI_REG8(0x080a), 0x00},
748-
{CCI_REG8(0x080b), 0x7f},
749-
{CCI_REG8(0x080c), 0x00},
750-
{CCI_REG8(0x080d), 0x4f},
751-
{CCI_REG8(0x080e), 0x00},
752-
{CCI_REG8(0x080f), 0x77},
753-
{CCI_REG8(0x0810), 0x00},
754-
{CCI_REG8(0x0811), 0x5f},
755-
{CCI_REG8(0x0812), 0x00},
756-
{CCI_REG8(0x0813), 0x57},
757-
{CCI_REG8(0x0814), 0x00},
758-
{CCI_REG8(0x0815), 0x4f},
759-
{CCI_REG8(0x0816), 0x01},
760-
{CCI_REG8(0x0817), 0x27},
761-
{CCI_REG8(0x0818), 0x00},
762-
{CCI_REG8(0x0819), 0x3f},
763723
{CCI_REG8(0xe04c), 0x00},
764724
{CCI_REG8(0xe04d), 0x7f},
765725
{CCI_REG8(0xe04e), 0x00},
766726
{CCI_REG8(0xe04f), 0x1f},
767-
{CCI_REG8(0x3e20), 0x01},
768-
{CCI_REG8(0x3e37), 0x00},
769-
{CCI_REG8(0x3f50), 0x00},
770727
{CCI_REG8(0x3f56), 0x01},
771728
{CCI_REG8(0x3f57), 0x6c},
772729
};
@@ -781,17 +738,8 @@ static const struct cci_reg_sequence mode_2028x1080_regs[] = {
781738
{CCI_REG8(0x0349), 0xd7},
782739
{CCI_REG8(0x034a), 0x0a},
783740
{CCI_REG8(0x034b), 0x27},
784-
{CCI_REG8(0x0220), 0x00},
785-
{CCI_REG8(0x0221), 0x11},
786-
{CCI_REG8(0x0381), 0x01},
787-
{CCI_REG8(0x0383), 0x01},
788-
{CCI_REG8(0x0385), 0x01},
789-
{CCI_REG8(0x0387), 0x01},
790741
{CCI_REG8(0x0900), 0x01},
791742
{CCI_REG8(0x0901), 0x22},
792-
{CCI_REG8(0x0902), 0x02},
793-
{CCI_REG8(0x3140), 0x02},
794-
{CCI_REG8(0x3c00), 0x00},
795743
{CCI_REG8(0x3c01), 0x03},
796744
{CCI_REG8(0x3c02), 0xa2},
797745
{CCI_REG8(0x3f0d), 0x01},
@@ -805,12 +753,6 @@ static const struct cci_reg_sequence mode_2028x1080_regs[] = {
805753
{CCI_REG8(0x936d), 0x5f},
806754
{CCI_REG8(0x9304), 0x00},
807755
{CCI_REG8(0x9305), 0x00},
808-
{CCI_REG8(0x9e9a), 0x2f},
809-
{CCI_REG8(0x9e9b), 0x2f},
810-
{CCI_REG8(0x9e9c), 0x2f},
811-
{CCI_REG8(0x9e9d), 0x00},
812-
{CCI_REG8(0x9e9e), 0x00},
813-
{CCI_REG8(0x9e9f), 0x00},
814756
{CCI_REG8(0xa2a9), 0x60},
815757
{CCI_REG8(0xa2b7), 0x00},
816758
{CCI_REG8(0x0401), 0x00},
@@ -828,42 +770,14 @@ static const struct cci_reg_sequence mode_2028x1080_regs[] = {
828770
{CCI_REG8(0x034d), 0xec},
829771
{CCI_REG8(0x034e), 0x04},
830772
{CCI_REG8(0x034f), 0x38},
831-
{CCI_REG8(0x0301), 0x05},
832-
{CCI_REG8(0x0303), 0x02},
833773
{CCI_REG8(0x0305), 0x04},
834774
{CCI_REG8(0x0306), 0x01},
835775
{CCI_REG8(0x0307), 0x5e},
836776
{CCI_REG8(0x0309), 0x0c},
837-
{CCI_REG8(0x030b), 0x02},
838-
{CCI_REG8(0x030d), 0x02},
839-
{CCI_REG8(0x0310), 0x01},
840-
{CCI_REG8(0x0820), 0x07},
841-
{CCI_REG8(0x0821), 0x08},
842-
{CCI_REG8(0x0822), 0x00},
843-
{CCI_REG8(0x0823), 0x00},
844-
{CCI_REG8(0x080a), 0x00},
845-
{CCI_REG8(0x080b), 0x7f},
846-
{CCI_REG8(0x080c), 0x00},
847-
{CCI_REG8(0x080d), 0x4f},
848-
{CCI_REG8(0x080e), 0x00},
849-
{CCI_REG8(0x080f), 0x77},
850-
{CCI_REG8(0x0810), 0x00},
851-
{CCI_REG8(0x0811), 0x5f},
852-
{CCI_REG8(0x0812), 0x00},
853-
{CCI_REG8(0x0813), 0x57},
854-
{CCI_REG8(0x0814), 0x00},
855-
{CCI_REG8(0x0815), 0x4f},
856-
{CCI_REG8(0x0816), 0x01},
857-
{CCI_REG8(0x0817), 0x27},
858-
{CCI_REG8(0x0818), 0x00},
859-
{CCI_REG8(0x0819), 0x3f},
860777
{CCI_REG8(0xe04c), 0x00},
861778
{CCI_REG8(0xe04d), 0x7f},
862779
{CCI_REG8(0xe04e), 0x00},
863780
{CCI_REG8(0xe04f), 0x1f},
864-
{CCI_REG8(0x3e20), 0x01},
865-
{CCI_REG8(0x3e37), 0x00},
866-
{CCI_REG8(0x3f50), 0x00},
867781
{CCI_REG8(0x3f56), 0x01},
868782
{CCI_REG8(0x3f57), 0x6c},
869783
};
@@ -931,12 +845,6 @@ static const struct cci_reg_sequence mode_1332x990_regs[] = {
931845
{CCI_REG8(0x936d), 0x5f},
932846
{CCI_REG8(0x9304), 0x03},
933847
{CCI_REG8(0x9305), 0x80},
934-
{CCI_REG8(0x9e9a), 0x2f},
935-
{CCI_REG8(0x9e9b), 0x2f},
936-
{CCI_REG8(0x9e9c), 0x2f},
937-
{CCI_REG8(0x9e9d), 0x00},
938-
{CCI_REG8(0x9e9e), 0x00},
939-
{CCI_REG8(0x9e9f), 0x00},
940848
{CCI_REG8(0xa2a9), 0x27},
941849
{CCI_REG8(0xa2b7), 0x03},
942850
{CCI_REG8(0x0401), 0x00},
@@ -954,42 +862,14 @@ static const struct cci_reg_sequence mode_1332x990_regs[] = {
954862
{CCI_REG8(0x034d), 0x34},
955863
{CCI_REG8(0x034e), 0x03},
956864
{CCI_REG8(0x034f), 0xde},
957-
{CCI_REG8(0x0301), 0x05},
958-
{CCI_REG8(0x0303), 0x02},
959865
{CCI_REG8(0x0305), 0x02},
960866
{CCI_REG8(0x0306), 0x00},
961867
{CCI_REG8(0x0307), 0xaf},
962868
{CCI_REG8(0x0309), 0x0a},
963-
{CCI_REG8(0x030b), 0x02},
964-
{CCI_REG8(0x030d), 0x02},
965-
{CCI_REG8(0x0310), 0x01},
966-
{CCI_REG8(0x0820), 0x07},
967-
{CCI_REG8(0x0821), 0x08},
968-
{CCI_REG8(0x0822), 0x00},
969-
{CCI_REG8(0x0823), 0x00},
970-
{CCI_REG8(0x080a), 0x00},
971-
{CCI_REG8(0x080b), 0x7f},
972-
{CCI_REG8(0x080c), 0x00},
973-
{CCI_REG8(0x080d), 0x4f},
974-
{CCI_REG8(0x080e), 0x00},
975-
{CCI_REG8(0x080f), 0x77},
976-
{CCI_REG8(0x0810), 0x00},
977-
{CCI_REG8(0x0811), 0x5f},
978-
{CCI_REG8(0x0812), 0x00},
979-
{CCI_REG8(0x0813), 0x57},
980-
{CCI_REG8(0x0814), 0x00},
981-
{CCI_REG8(0x0815), 0x4f},
982-
{CCI_REG8(0x0816), 0x01},
983-
{CCI_REG8(0x0817), 0x27},
984-
{CCI_REG8(0x0818), 0x00},
985-
{CCI_REG8(0x0819), 0x3f},
986869
{CCI_REG8(0xe04c), 0x00},
987870
{CCI_REG8(0xe04d), 0x5f},
988871
{CCI_REG8(0xe04e), 0x00},
989872
{CCI_REG8(0xe04f), 0x1f},
990-
{CCI_REG8(0x3e20), 0x01},
991-
{CCI_REG8(0x3e37), 0x00},
992-
{CCI_REG8(0x3f50), 0x00},
993873
{CCI_REG8(0x3f56), 0x00},
994874
{CCI_REG8(0x3f57), 0xbf},
995875
};

0 commit comments

Comments
 (0)