linux/drivers/mfd/tc6387xb.c
<<
ptio v2/spa v2/form v2a ptio v href="../linux+v3e="10/drivers/mfd/tc6387xb.c">ptio v2img src="../.static/gfx/right.png" alt=">>">pt2/spa pt2spa class="lxr_search">ptioptio v2input typptihidden" namptinavtarget" 4ptio v2input typptitext" namptisearch" idtisearch">ptio v2butt2.1typptisubmit">Searchptio vPrefs v2/a>pt2/spa io v v2/div io v v2form ac4" ="ajax+*" method="post" onsubmit="return false;">pt2input typptihidden" namptiajax_lookup" idtiajax_lookup" 4pio v v2/form pio v v2div class="headingbott2m">
2div idtifile_contents"
v v12/a>2spa	 class="comment">/*2/spa	  v v22/a>2spa	 class="comment"> * Toshiba TC6387XB support2/spa	  v v32/a>2spa	 class="comment"> * Copyright (c) 2005 Ia	 Molt2.2/spa	  v v42/a>2spa	 class="comment"> *2/spa	  v v52/a>2spa	 class="comment"> * This program is free software; you ca	 redistribute it and/or modify2/spa	  v v62/a>2spa	 class="comment"> * it under the terms of the GNU General Public License vers32.12 as2/spa	  v v72/a>2spa	 class="comment"> * published by the Free Software Founda4"
	.2/spa	  v v82/a>2spa	 class="comment"> *2/spa	  v v92/a>2spa	 class="comment"> * This file contains TC6387XB base support.2/spa	  v 2spa	 class="comment"> *2/spa	  v 112/a>2spa	 class="comment"> */2/spa	  v 122/a> v 132/a>#include <linux/module.h2/a>> v 142/a>#include <linux/platform_device.h2/a>> v 152/a>#include <linux/clk.h2/a>> v 162/a>#include <linux/err.h2/a>> v 172/a>#include <linux/mfd/core.h2/a>> v 182/a>#include <linux/mfd/tmio.h2/a>> v 192/a>#include <linux/mfd/tc6387xb.h2/a>> v 202/a>#include <linux/slab.h2/a>> v 212/a> v 222/a>enum { v 232/a>        2a href="+code=TC6387XB_CELL_MMC" class="sref">TC6387XB_CELL_MMC2/a>, v 242/a>}; v 252/a> v 262/a>struct 2a href="+code=tc6387xb" class="sref">tc6387xb2/a> { v 272/a>        void 2a href="+code=__iomem" class="sref">__iomem2/a> *2a href="+code=scr" class="sref">scr2/a>; v 282/a>        struct 2a href="+code=clk" class="sref">clk2/a> *2a href="+code=clk32k" class="sref">clk32k2/a>; v 292/a>        struct 2a href="+code=resource" class="sref">resource2/a> 2a href="+code=rscr" class="sref">rscr2/a>; v 302/a>}; v 312/a> v 322/a>static struct 2a href="+code=resource" class="sref">resource2/a> 2a href="+code=tc6387xb_mmc_resources" class="sref">tc6387xb_mmc_resources2/a>[] = { v 332/a>        { v 342/a>                .2a href="+code=start" class="sref">start2/a> = 0x800, v 352/a>                .2a href="+code=end" class="sref">end2/a>   = 0x9ff, v 362/a>                .2a href="+code=flags" class="sref">flags2/a> = 2a href="+code=IORESOURCE_MEM" class="sref">IORESOURCE_MEM2/a>, v 372/a>        }, v 382/a>        { v 392/a>                .2a href="+code=start" class="sref">start2/a> = 0, v 402/a>                .2a href="+code=end" class="sref">end2/a>   = 0, v 412/a>                .2a href="+code=flags" class="sref">flags2/a> = 2a href="+code=IORESOURCE_IRQ" class="sref">IORESOURCE_IRQ2/a>, v 422/a>        }, v 432/a>}; v 442/a> v 452/a>2spa	 class="comment">/*--------------------------------------------------------------------------*/2/spa	  v 462/a> v 472/a>#ifdef 2a href="+code=CONFIG_PM" class="sref">CONFIG_PM2/a> v 482/a>static int 2a href="+code=tc6387xb_suspend" class="sref">tc6387xb_suspend2/a>(struct 2a href="+code=platform_device" class="sref">platform_device2/a> *2a href="+code=dev" class="sref">dev2/a>, 2a href="+code=pm_message_t" class="sref">pm_message_t2/a> 2a href="+code=state" class="sref">state2/a>) v 492/a>{ v 502/a>        struct 2a href="+code=tc6387xb" class="sref">tc6387xb2/a> *2a href="+code=tc6387xb" class="sref">tc6387xb2/a> = 2a href="+code=platform_get_drvdata" class="sref">platform_get_drvdata2/a>(2a href="+code=dev" class="sref">dev2/a>); v 512/a>        struct 2a href="+code=tc6387xb_platform_data" class="sref">tc6387xb_platform_data2/a> *2a href="+code=pdata" class="sref">pdata2/a> = 2a href="+code=dev" class="sref">dev2/a>->2a href="+code=dev" class="sref">dev2/a>.2a href="+code=platform_data" class="sref">platform_data2/a>; v 522/a> v 532/a>        if (2a href="+code=pdata" class="sref">pdata2/a> && 2a href="+code=pdata" class="sref">pdata2/a>->2a href="+code=suspend" class="sref">suspend2/a>) v 542/a>                2a href="+code=pdata" class="sref">pdata2/a>->2a href="+code=suspend" class="sref">suspend2/a>(2a href="+code=dev" class="sref">dev2/a>); v 552/a>        2a href="+code=clk_disable" class="sref">clk_disable2/a>(2a href="+code=tc6387xb" class="sref">tc6387xb2/a>->2a href="+code=clk32k" class="sref">clk32k2/a>); v 562/a> v 572/a>        return 0; v 582/a>} v 592/a> v 602/a>static int 2a href="+code=tc6387xb_resume" class="sref">tc6387xb_resume2/a>(struct 2a href="+code=platform_device" class="sref">platform_device2/a> *2a href="+code=dev" class="sref">dev2/a>) v 612/a>{ v 622/a>        struct 2a href="+code=tc6387xb" class="sref">tc6387xb2/a> *2a href="+code=tc6387xb" class="sref">tc6387xb2/a> = 2a href="+code=platform_get_drvdata" class="sref">platform_get_drvdata2/a>(2a href="+code=dev" class="sref">dev2/a>); v 632/a>        struct 2a href="+code=tc6387xb_platform_data" class="sref">tc6387xb_platform_data2/a> *2a href="+code=pdata" class="sref">pdata2/a> = 2a href="+code=dev" class="sref">dev2/a>->2a href="+code=dev" class="sref">dev2/a>.2a href="+code=platform_data" class="sref">platform_data2/a>; v 642/a> v 652/a>        2a href="+code=clk_enable" class="sref">clk_enable2/a>(2a href="+code=tc6387xb" class="sref">tc6387xb2/a>->2a href="+code=clk32k" class="sref">clk32k2/a>); v 662/a>        if (2a href="+code=pdata" class="sref">pdata2/a> && 2a href="+code=pdata" class="sref">pdata2/a>->2a href="+code=resume" class="sref">resume2/a>) v 672/a>                2a href="+code=pdata" class="sref">pdata2/a>->2a href="+code=resume" class="sref">resume2/a>(2a href="+code=dev" class="sref">dev2/a>); v 682/a> v 692/a>        2a href="+code=tmio_core_mmc_resume" class="sref">tmio_core_mmc_resume2/a>(2a href="+code=tc6387xb" class="sref">tc6387xb2/a>->2a href="+code=scr" class="sref">scr2/a> + 0x200, 0, v 702/a>                2a href="+code=tc6387xb_mmc_resources" class="sref">tc6387xb_mmc_resources2/a>[0].2a href="+code=start" class="sref">start2/a> & 0xfffe); v 712/a> v 722/a>        return 0; v 732/a>} v 742/a>#else v 752/a>#define 2a href="+code=tc6387xb_suspend" class="sref">tc6387xb_suspend2/a>  2a href="+code=NULL" class="sref">NULL2/a> v 762/a>#define 2a href="+code=tc6387xb_resume" class="sref">tc6387xb_resume2/a>   2a href="+code=NULL" class="sref">NULL2/a> v 772/a>#endif v 782/a> v 792/a>2spa	 class="comment">/*--------------------------------------------------------------------------*/2/spa	  v 802/a> v 812/a>static void 2a href="+code=tc6387xb_mmc_pwr" class="sref">tc6387xb_mmc_pwr2/a>(struct 2a href="+code=platform_device" class="sref">platform_device2/a> *2a href="+code=mmc" class="sref">mmc2/a>, int 2a href="+code=state" class="sref">state2/a>) v 822/a>{ v 832/a>        struct 2a href="+code=platform_device" class="sref">platform_device2/a> *2a href="+code=dev" class="sref">dev2/a> = 2a href="+code=to_platform_device" class="sref">to_platform_device2/a>(2a href="+code=mmc" class="sref">mmc2/a>->2a href="+code=dev" class="sref">dev2/a>.2a href="+code=parent" class="sref">parent2/a>); v 842/a>        struct 2a href="+code=tc6387xb" class="sref">tc6387xb2/a> *2a href="+code=tc6387xb" class="sref">tc6387xb2/a> = 2a href="+code=platform_get_drvdata" class="sref">platform_get_drvdata2/a>(2a href="+code=dev" class="sref">dev2/a>); v 852/a> v 862/a>        2a href="+code=tmio_core_mmc_pwr" class="sref">tmio_core_mmc_pwr2/a>(2a href="+code=tc6387xb" class="sref">tc6387xb2/a>->2a href="+code=scr" class="sref">scr2/a> + 0x200, 0, 2a href="+code=state" class="sref">state2/a>); v 872/a>} v 882/a> v 892/a>static void 2a href="+code=tc6387xb_mmc_clk_div" class="sref">tc6387xb_mmc_clk_div2/a>(struct 2a href="+code=platform_device" class="sref">platform_device2/a> *2a href="+code=mmc" class="sref">mmc2/a>, int 2a href="+code=state" class="sref">state2/a>) v 902/a>{ v 912/a>        struct 2a href="+code=platform_device" class="sref">platform_device2/a> *2a href="+code=dev" class="sref">dev2/a> = 2a href="+code=to_platform_device" class="sref">to_platform_device2/a>(2a href="+code=mmc" class="sref">mmc2/a>->2a href="+code=dev" class="sref">dev2/a>.2a href="+code=parent" class="sref">parent2/a>); v 922/a>        struct 2a href="+code=tc6387xb" class="sref">tc6387xb2/a> *2a href="+code=tc6387xb" class="sref">tc6387xb2/a> = 2a href="+code=platform_get_drvdata" class="sref">platform_get_drvdata2/a>(2a href="+code=dev" class="sref">dev2/a>); v 932/a> v 942/a>        2a href="+code=tmio_core_mmc_clk_div" class="sref">tmio_core_mmc_clk_div2/a>(2a href="+code=tc6387xb" class="sref">tc6387xb2/a>->2a href="+code=scr" class="sref">scr2/a> + 0x200, 0, 2a href="+code=state" class="sref">state2/a>); v 952/a>} v 962/a> v 972/a> v 982/a>static int 2a href="+code=tc6387xb_mmc_enable" class="sref">tc6387xb_mmc_enable2/a>(struct 2a href="+code=platform_device" class="sref">platform_device2/a> *2a href="+code=mmc" class="sref">mmc2/a>) v 992/a>{ v1002/a>        struct 2a href="+code=platform_device" class="sref">platform_device2/a> *2a href="+code=dev" class="sref">dev2/a>      = 2a href="+code=to_platform_device" class="sref">to_platform_device2/a>(2a href="+code=mmc" class="sref">mmc2/a>->2a href="+code=dev" class="sref">dev2/a>.2a href="+code=parent" class="sref">parent2/a>); v1012/a>        struct 2a href="+code=tc6387xb" class="sref">tc6387xb2/a> *2a href="+code=tc6387xb" class="sref">tc6387xb2/a> = 2a href="+code=platform_get_drvdata" class="sref">platform_get_drvdata2/a>(2a href="+code=dev" class="sref">dev2/a>); v1022/a> v1032/a>        2a href="+code=clk_enable" class="sref">clk_enable2/a>(2a href="+code=tc6387xb" class="sref">tc6387xb2/a>->2a href="+code=clk32k" class="sref">clk32k2/a>); v1042/a> v1052/a>        2a href="+code=tmio_core_mmc_enable" class="sref">tmio_core_mmc_enable2/a>(2a href="+code=tc6387xb" class="sref">tc6387xb2/a>->2a href="+code=scr" class="sref">scr2/a> + 0x200, 0, v1062/a>                2a href="+code=tc6387xb_mmc_resources" class="sref">tc6387xb_mmc_resources2/a>[0].2a href="+code=start" class="sref">start2/a> & 0xfffe); v1072/a> v1082/a>        return 0; v1092/a>} v1102/a> v1112/a>static int 2a href="+code=tc6387xb_mmc_disable" class="sref">tc6387xb_mmc_disable2/a>(struct 2a href="+code=platform_device" class="sref">platform_device2/a> *2a href="+code=mmc" class="sref">mmc2/a>) v1122/a>{ v1132/a>        struct 2a href="+code=platform_device" class="sref">platform_device2/a> *2a href="+code=dev" class="sref">dev2/a>      = 2a href="+code=to_platform_device" class="sref">to_platform_device2/a>(2a href="+code=mmc" class="sref">mmc2/a>->2a href="+code=dev" class="sref">dev2/a>.2a href="+code=parent" class="sref">parent2/a>); v1142/a>        struct 2a href="+code=tc6387xb" class="sref">tc6387xb2/a> *2a href="+code=tc6387xb" class="sref">tc6387xb2/a> = 2a href="+code=platform_get_drvdata" class="sref">platform_get_drvdata2/a>(2a href="+code=dev" class="sref">dev2/a>); v1152/a> v1162/a>        2a href="+code=clk_disable" class="sref">clk_disable2/a>(2a href="+code=tc6387xb" class="sref">tc6387xb2/a>->2a href="+code=clk32k" class="sref">clk32k2/a>); v1172/a> v1182/a>        return 0; v1192/a>} v1202/a> v1212/a>static struct 2a href="+code=tmio_mmc_data" class="sref">tmio_mmc_data2/a> 2a href="+code=tc6387xb_mmc_data" class="sref">tc6387xb_mmc_data2/a> = { v1222/a>        .2a href="+code=hclk" class="sref">hclk2/a> = 24000000, v1232/a>        .2a href="+code=set_pwr" class="sref">set_pwr2/a> = 2a href="+code=tc6387xb_mmc_pwr" class="sref">tc6387xb_mmc_pwr2/a>, v1242/a>        .2a href="+code=set_clk_div" class="sref">set_clk_div2/a> = 2a href="+code=tc6387xb_mmc_clk_div" class="sref">tc6387xb_mmc_clk_div2/a>, v1252/a>}; v1262/a> v1272/a>2spa	 class="comment">/*--------------------------------------------------------------------------*/2/spa	  v1282/a> v1292/a>static struct 2a href="+code=mfd_cell" class="sref">mfd_cell2/a> 2a href="+code=tc6387xb_cells" class="sref">tc6387xb_cells2/a>[] = { v1302/a>        [2a href="+code=TC6387XB_CELL_MMC" class="sref">TC6387XB_CELL_MMC2/a>] = { v1312/a>                .2a href="+code=namp" class="sref">namp2/a> = 2spa	 class="string">"tmio-mmc"2/spa	 , v1322/a>                .2a href="+code=enable" class="sref">enable2/a> = 2a href="+code=tc6387xb_mmc_enable" class="sref">tc6387xb_mmc_enable2/a>, v1332/a>                .2a href="+code=disable" class="sref">disable2/a> = 2a href="+code=tc6387xb_mmc_disable" class="sref">tc6387xb_mmc_disable2/a>, v1342/a>                .2a href="+code=platform_data" class="sref">platform_data2/a> = &2a href="+code=tc6387xb_mmc_data" class="sref">tc6387xb_mmc_data2/a>, v1352/a>                .2a href="+code=pdata_size" class="sref">pdata_size2/a>    = sizeof(2a href="+code=tc6387xb_mmc_data" class="sref">tc6387xb_mmc_data2/a>), v1362/a>                .2a href="+code=num_resources" class="sref">num_resources2/a> = 2a href="+code=ARRAY_SIZE" class="sref">ARRAY_SIZE2/a>(2a href="+code=tc6387xb_mmc_resources" class="sref">tc6387xb_mmc_resources2/a>), v1372/a>                .2a href="+code=resources" class="sref">resources2/a> = 2a href="+code=tc6387xb_mmc_resources" class="sref">tc6387xb_mmc_resources2/a>, v1382/a>        }, v1392/a>}; v1402/a> v1412/a>static int 2a href="+code=__devinit" class="sref">__devinit2/a> 2a href="+code=tc6387xb_probe" class="sref">tc6387xb_probe2/a>(struct 2a href="+code=platform_device" class="sref">platform_device2/a> *2a href="+code=dev" class="sref">dev2/a>) v1422/a>{ v1432/a>        struct 2a href="+code=tc6387xb_platform_data" class="sref">tc6387xb_platform_data2/a> *2a href="+code=pdata" class="sref">pdata2/a> = 2a href="+code=dev" class="sref">dev2/a>->2a href="+code=dev" class="sref">dev2/a>.2a href="+code=platform_data" class="sref">platform_data2/a>; v1442/a>        struct 2a href="+code=resource" class="sref">resource2/a> *2a href="+code=iomem" class="sref">iomem2/a>, *2a href="+code=rscr" class="sref">rscr2/a>; v1452/a>        struct 2a href="+code=clk" class="sref">clk2/a> *2a href="+code=clk32k" class="sref">clk32k2/a>; v1462/a>        struct 2a href="+code=tc6387xb" class="sref">tc6387xb2/a> *2a href="+code=tc6387xb" class="sref">tc6387xb2/a>; v1472/a>        int 2a href="+code=irq" class="sref">irq2/a>, 2a href="+code=ret" class="sref">ret2/a>; v1482/a> v1492/a>        2a href="+code=iomem" class="sref">iomem2/a> = 2a href="+code=platform_get_resource" class="sref">platform_get_resource2/a>(2a href="+code=dev" class="sref">dev2/a>, 2a href="+code=IORESOURCE_MEM" class="sref">IORESOURCE_MEM2/a>, 0); v1502/a>        if (!2a href="+code=iomem" class="sref">iomem2/a>) { v1512/a>                return -2a href="+code=EINVAL" class="sref">EINVAL2/a>; v1522/a>        } v1532/a> v1542/a>        2a href="+code=tc6387xb" class="sref">tc6387xb2/a> = 2a href="+code=kzalloc" class="sref">kzalloc2/a>(sizeof *2a href="+code=tc6387xb" class="sref">tc6387xb2/a>, 2a href="+code=GFP_KERNEL" class="sref">GFP_KERNEL2/a>); v1552/a>        if (!2a href="+code=tc6387xb" class="sref">tc6387xb2/a>) v1562/a>                return -2a href="+code=ENOMEM" class="sref">ENOMEM2/a>; v1572/a> v1582/a>        2a href="+code=ret" class="sref">ret2/a>  = 2a href="+code=platform_get_irq" class="sref">platform_get_irq2/a>(2a href="+code=dev" class="sref">dev2/a>, 0); v1592/a>        if (2a href="+code=ret" class="sref">ret2/a> >= 0) v1602/a>                2a href="+code=irq" class="sref">irq2/a> = 2a href="+code=ret" class="sref">ret2/a>; v1612/a>        else v1622/a>                goto 2a href="+code=err_no_irq" class="sref">err_no_irq2/a>; v1632/a> v1642/a>        2a href="+code=clk32k" class="sref">clk32k2/a> = 2a href="+code=clk_get" class="sref">clk_get2/a>(&2a href="+code=dev" class="sref">dev2/a>->2a href="+code=dev" class="sref">dev2/a>, 2spa	 class="string">"CLK_CK32K"2/spa	 ); v1652/a>        if (2a href="+code=IS_ERR" class="sref">IS_ERR2/a>(2a href="+code=clk32k" class="sref">clk32k2/a>)) { v1662/a>                2a href="+code=ret" class="sref">ret2/a> = 2a href="+code=PTR_ERR" class="sref">PTR_ERR2/a>(2a href="+code=clk32k" class="sref">clk32k2/a>); v1672/a>                goto 2a href="+code=err_no_clk" class="sref">err_no_clk2/a>; v1682/a>        } v1692/a> v1702/a>        2a href="+code=rscr" class="sref">rscr2/a> = &2a href="+code=tc6387xb" class="sref">tc6387xb2/a>->2a href="+code=rscr" class="sref">rscr2/a>; v1712/a>        2a href="+code=rscr" class="sref">rscr2/a>->2a href="+code=namp" class="sref">namp2/a> = 2spa	 class="string">"tc6387xb-core"2/spa	 ; v1722/a>        2a href="+code=rscr" class="sref">rscr2/a>->2a href="+code=start" class="sref">start2/a> = 2a href="+code=iomem" class="sref">iomem2/a>->2a href="+code=start" class="sref">start2/a>; v1732/a>        2a href="+code=rscr" class="sref">rscr2/a>->2a href="+code=end" class="sref">end2/a> = 2a href="+code=iomem" class="sref">iomem2/a>->2a href="+code=start" class="sref">start2/a> + 0xff; v1742/a>        2a href="+code=rscr" class="sref">rscr2/a>->2a href="+code=flags" class="sref">flags2/a> = 2a href="+code=IORESOURCE_MEM" class="sref">IORESOURCE_MEM2/a>; v1752/a> v1762/a>        2a href="+code=ret" class="sref">ret2/a> = 2a href="+code=request_resource" class="sref">request_resource2/a>(2a href="+code=iomem" class="sref">iomem2/a>, 2a href="+code=rscr" class="sref">rscr2/a>); v1772/a>        if (2a href="+code=ret" class="sref">ret2/a>) v1782/a>                goto 2a href="+code=err_resource" class="sref">err_resource2/a>; v1792/a> v1802/a>        2a href="+code=tc6387xb" class="sref">tc6387xb2/a>->2a href="+code=scr" class="sref">scr2/a> = 2a href="+code=ioremap" class="sref">ioremap2/a>(2a href="+code=rscr" class="sref">rscr2/a>->2a href="+code=start" class="sref">start2/a>, 2a href="+code=resource_size" class="sref">resource_size2/a>(2a href="+code=rscr" class="sref">rscr2/a>)); tc6387xb2/a>) scr2/a> = 2a href="+code=ioremap" classb.c#L166" idtiL166" class="line" namptL82">v 8212/a>{ ret2/a> = 2a href="+code=request_resource"ref">ENOMEM2/a>; v 8312/a>        struct 2a hr1ef="+18code=disable" class="" class="sref">err_resou>(2a href="+code=rscr"esou>(2a hr7xb.c#L157" idtiL157" class="line" namptLL174">v172/a>        struct 2a hr1ef="+1ode=tc6387xb" c#L169" idtiL169" class="line" namptL85">v 8512/a> v 8612/a>        2a href="+co1de=tm1o_core_mmc_pwr" class="sref">ta>->2a href="+code=clk32k" class="sref">clk32k2/a>); clk_get2/a>(& href="drivers/mfd/tc6387xb.c#L146" idtiL146" class="line" namptL87">v 8712/a>} ode=dev" sm_get_drvdata2/a>(2a href="+code=dsv" class="sref">dev2/a>); reso/a>) v 182//a>#include <v 8912/a>static void 2a href=1"+cod18ret" class="sref">ret2/a> >= mp;& 2a href="+code=pdata" class="sref">pdata2/a>->2a href="+code=resume" class="sref">resume2/a>)= 2a href="+code=tc6387xb_mmc_ec#L178" idtiL178" class="line" namptL90">v 9012/a>{ irq2/a> = 2a ht;2a href="+code=resume" class="sref">resume2/a>)= 2a href="+code=tc6387xb_mmc_e">dev2/a>); v 9112/a>        struct 2a hr1ef="+197xb.c#L72" idtiL72" class="line" nampti1L92">v 9212/a>        struct 2a hr1ef="+19" class="sref">rscr2/a>->p/sptref="drivers/mfdp/sptrmc_e">dev2/a>); v 9312/a> v 9412/a>        2a href="+co1de=tm1o_core_mmc_clk_div" class="srref="+code=request_resource" class="sref">r87xbadd class=ref="+code=IORES87xbadd class=rass="sref">dev2/a>->2a href="+code=dev" class="sref">dev2/a>, 2spa	 class="string">"CLK_CKdev2/a>->2a href="+code=dev" class="sref">dev2/a>, 2spa	if="+code=iomem" id87xbclass="sref">reso/a>) [] = { v 9512/a>} irq2/a> = 2a hIZE2/a>(2a href="+code=tc6387xb_mmc_resources" class="sref">tc63ls2/a>[] = { resoa href="+code=rscr" class="sref">rscr2/a>); ret2/a>; v 8612/a> v 9712/a> tc6387xb2ef="drivers/mfd/tc6387xb.c#L178" idtiL178" class="line" namptL98">v 9812/a>static int 2a href="1+code19f="+code=err_resourcec6387xb.c#L119" idtiL119" class="line" namptL99">v 9912/a>{ v1202/a>        struct 2a h2ef="+2087xb" class="sref">tc6387xb2ioun href="+code=rscr" cun hr_resources" class="sref">tc6href="drivers/mfd/tc6387xb.sref">scr2/a> = 2a href="+code=ioremap" classbc#L20" idtiL20" class="line" namptiL221">v 21212/a>        struct 2a h2ef="+2ode=tcss="sref">err_resou>(2a href="+code=rscr"esou>(2a hr7xb.:#L20" idtiL20" class="line" namptiL222">v 22222/a> rscr2/a>->2eleaseresource2/a>(2a href="+codleaseresource2ass="sref">dev2/a>->2a/a>->2a href="+code=rscr" class="sref">rscr2/a>; v 23232/a>        2a href="+c2de=cl2_enablss="sref">err_resource2/a>; v 24242/a> clk32k2/a> = 2_pu;2a href="+code=dev"pu;s="sref">clk32k2/a>); v1252/a>        2a href="+c2de=tm2o_core="sref">err_no_clk2/a>; v 26262/a>                2a 2ref="2code=t="sref">err_no_irq2/a>; v 27272/a> kfre; tc6href="drivers/mfd/tc6387xb..c#L167" idtiL167" class="line" namp2i28">v 28282/a>        return 0; <2 href2"drivers/mfd/tc6387xbsref">tc6387xb2ef="drivers/mfd/tc6387xb.c#L167" idtiL167" class="line" namp2i29">v 29292/a>} v1202/a> v1212/a>static int 2a href=2+code2tc6387xb_mmc_disable" class="sre387xbexa href="+code=tc6387xbexa  clas7rces" class="sref">tc632a ova>(struct 2a href="+code=2a ova_resoevice" class="sref">platform_device2/a> *2a href="+code=dev" class="sref">dev2/a>) v1222/a>{ v1232/a>        struct 2a h2ef="+2ode=platform_device" class="sref">pl/a> *2a href="+code=tc6387xb" class="sref">tc6387xb2/a>; platform_get_drvdata2/a>(2a href="+code=dev" class="sref">dev2/a>); v1242/a>        struct 2a h2ef="+217xb.c#L105" idtiL105" class="line" namp2iL115">v1252/a> dev2/a>->2a href="+code=dev" class="sref">dev2/a>, 2spa	 class="string">"CLK.c#L115" idtiL115" class="line" namp2i26">v 26262/a>        2a href="+c2de=cl2_disable" class="sref">clk_diioun href="+code=rscr" cun hr_resources" class="sref">tc6href="drivers/mfd/tc6387xb.sref">scr2/a> = 2a href="+code=ioremap" classbc#L20" idtiL20" class="line" namptiLiL117">v1272/a> 2eleaseresource2/a>(2a href="+codleaseresource2ass="sref">dev2/a>->2a/a>->2a href="+code=rscr" class="sref">rscr2/a>; v1282/a>        return 0; <2 href21 class="sref">ret2/a>  = 2a sable2/a>(2a href="+code=tc6387xb" class="sref">tc6387xb2/a>->2a href="+code=clk32k" class="sref">clk32k2/a>); v1292/a>} iomem2/a> = = 2_pu;2a href="+code=dev"pu;s="sref">clk32k2/a>)/a>->2a href="+code=clk32k" class="sref">clk32k2/a>); v1202/a> tc6387xb2ode=dev" sm_get_drvdata2/a>(2a href="+code=dsv" class="sref">dev2/a>); resoref="drivers/mfd/tc6387xb.c.c#L165" idtiL165" class="line" namp2iL121">v1212/a>static struct 2a hr2f="+c22" class="sref">rscr2/a>->kfre; tc6href="drivers/mfd/tc6387xb..c#L167" idtiL167" class="line" namp2iL122">v1222/a>        .2a href="+2ode=h227xb.c#L103" idtiL103" class="line" namp2iL123">v1232/a>        .2a href="+2ode=s2t_pwr" class="c6387xb.c#L119" idtiL119" class="line" namp2iL124">v1242/a>        .2a href="+2ode=s2t_clk_c#L110" idtiL110" class="line" namp2iL125">v1252/a>}; v1262/a> v1272/a>2spa	 class="commen2">/*-2------_cell" class="sref">mfd_cell2ode=dev" cL127"a> *2a href="+code=dev" cL127" clas7rces" class="sref">tc63ode=dev" cL127"a> *2a href="+cref">tc63ode=dev" cL127"7xb.rvdc#L113" idtiL113" class="line" namp2iL128">v1282/a> disable2/a>L127"a> *2a href="+ccL127"7xb.rvdc#L113" idtiL113" class="line" namp2iL119">v1292/a>static struct 2a hr2f="+c22m" class="sres="sref"sref">disable2/apa	 class="string">"tc66666666666387xb-core"2/spa	 ; v1202/a>        [2a href="+2ode=T26387XB_CELL_MM.c#L139" idtiL139" class="line" namp2iL131">v1212/a>                .2a2href=2+code=namp" cllass="sref">platfe2/a>(struct 2a hreplatform_6666666666387rces" class="sref">tc63oe2/a>(struct 2a href="+code=platform_c#L139" idtiL139" class="line" namp2iL122">v1222/a>                .2a2href=2+code=enable" ="sref">resources2 ova>(struct 2a hre2a ova_res666666666387rces" class="s387xbexa _ref="+code=rscr"387xbexa _r_resources" class="sref">tc632a ova>(struct 2a href="+code=2a ova_res.c#L137" idtiL137" class="line" namp2iL133">v1232/a>                .2a2href=23_pwr" class="sref">set_pwr2/a>(2a href="+code=dev" class="sref66666666387rces" class="sref">tc63uspend2/a>  2a href="+code=NULL" class="src#L137" idtiL137" class="line" namp2iL124">v1242/a>                .2a2href=2+code=platform="sref">resources2/href="+code=dev" class="sref666666666387rces" class="sref">tc63sume2/a>   2a href="+code=NULL" class="sc#L137" idtiL137" class="line" namp2iL125">v1252/a>                .2a2href=23387xb.c#L126" idtiL126" class="line" namp2iL136">v1262/a>                .2a2href=237xb.c#L127" idtiL127" class="line" namp2iL137">v1272/a>                .2a2href=2+code=ble" class="sre8odule3ode=dev" cL127"a> *2a href="+c8odule3ode=dev" cL127"_resources" class="sref">tc63ode=dev" cL127"a> *2a href="+cref">tc63ode=dev" cL127"7xb..c#L167" idtiL167" class="line" namp2iL138">v1282/a>        }, v1292/a>}; v1202/a> v1212/a>static int 2a href=2+code24de=tcss="sref">err_rMODULE_AUTHOref="+code=clk32MODULE_AUTHOr_resouxb-core"2/spa	 ; v1222/a>{ err_rMODULE_ALIASef="+code=clk32MODULE_ALIAS_resouxb-core"2/spa	 ; v1232/a>        struct 2a h2ef="+247xb.c#L94" idtiL94" class="line" nampti2iL144">v1242/a>        struct 2a h2ef="+2ode=re


foot7"a> The original LXR softwas/ by th" class="srhttp://ource2devge.net/projects/lx"a>LXR ----unity87xbclthis experi----al " clion by class="srmailto:lx"@ sux.no">lx"@ sux.no87xb. subfoot7"a> lx". sux.no kindly hosted by class="srhttp://www.redpill- spro.no">Redpill L spro AS_res, provider of L sux --nsultspa and operell-ns serass=r sincec1975.