mb/system76/cml-u/dt: Make use of chipset devicetree
[coreboot.git] / src / soc / intel / jasperlake / acpi / camera_clock_ctl.asl
blobd76cb5dd0a559dbbf25d3af56a33fcf30119aa75
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
3 #define R_ICLK_PCR_CAMERA1      0x8000
4 #define B_ICLK_PCR_FREQUENCY    0x1
5 #define B_ICLK_PCR_REQUEST      0x2
7 /* The clock control registers for each IMGCLK are offset by 0xC */
8 #define B_ICLK_PCR_OFFSET       0xC
10 Scope (\_SB.PCI0) {
12         /* IsCLK PCH base register for clock settings */
13         Name (ICKB, 0)
14         ICKB = PCRB (PID_ISCLK) + R_ICLK_PCR_CAMERA1
16         /*
17          * Arg0 : Clock Number
18          * Return : Offset of register to control the clock in Arg0
19          *
20          */
21         Method (OFST, 0x1, NotSerialized)
22         {
23                 Return (ICKB + (Arg0 * B_ICLK_PCR_OFFSET))
24         }
26         /*
27          * Helper function for Read And OR Write
28          * Arg0 : source and destination
29          * Arg1 : And data
30          * Arg2 : Or data
31          */
32         Method (RAOW, 0x3, Serialized)
33         {
34                 OperationRegion (ICLK, SystemMemory, OFST(Arg0), 4)
35                 Field (ICLK, AnyAcc, NoLock, Preserve)
36                 {
37                         VAL0, 32
38                 }
39                 Local0 = VAL0
40                 VAL0 = Local0 & Arg1 | Arg2
41         }
43         /*
44          * Clock control Method
45          * Arg0: Clock source select(0: IMGCLKOUT_0, 1: IMGCLKOUT_1, 2: IMGCLKOUT_2, 3: IMGCLKOUT_3,
46          *                           4: IMGCLKOUT_4, 5: IMGCLKOUT_5)
47          * Arg1: Select 24MHz / 19.2 MHz (0: 24MHz, 1: 19.2MHz)
48          */
49         Method (MCON, 0x2, NotSerialized)
50         {
51                 /* Set Clock Frequency */
52                 RAOW (Arg0, ~B_ICLK_PCR_FREQUENCY, Arg1)
54                 /* Enable Clock */
55                 RAOW (Arg0, ~B_ICLK_PCR_REQUEST, B_ICLK_PCR_REQUEST)
56         }
58         Method (MCOF, 0x1, NotSerialized)
59         {
60                 /* Disable Clock */
61                 RAOW (Arg0, ~B_ICLK_PCR_REQUEST, 0)
62         }