@@ -1536,77 +1536,16 @@ static const struct of_device_id stm32mp13_match_data[] = {
1536
1536
};
1537
1537
MODULE_DEVICE_TABLE (of , stm32mp13_match_data );
1538
1538
1539
- static int stm32mp1_rcc_init (struct device * dev )
1540
- {
1541
- void __iomem * rcc_base ;
1542
- int ret = - ENOMEM ;
1543
-
1544
- rcc_base = of_iomap (dev_of_node (dev ), 0 );
1545
- if (!rcc_base ) {
1546
- dev_err (dev , "%pOFn: unable to map resource" , dev_of_node (dev ));
1547
- goto out ;
1548
- }
1549
-
1550
- ret = stm32_rcc_init (dev , stm32mp13_match_data , rcc_base );
1551
- out :
1552
- if (ret ) {
1553
- if (rcc_base )
1554
- iounmap (rcc_base );
1555
-
1556
- of_node_put (dev_of_node (dev ));
1557
- }
1558
-
1559
- return ret ;
1560
- }
1561
-
1562
- static int get_clock_deps (struct device * dev )
1563
- {
1564
- static const char * const clock_deps_name [] = {
1565
- "hsi" , "hse" , "csi" , "lsi" , "lse" ,
1566
- };
1567
- size_t deps_size = sizeof (struct clk * ) * ARRAY_SIZE (clock_deps_name );
1568
- struct clk * * clk_deps ;
1569
- int i ;
1570
-
1571
- clk_deps = devm_kzalloc (dev , deps_size , GFP_KERNEL );
1572
- if (!clk_deps )
1573
- return - ENOMEM ;
1574
-
1575
- for (i = 0 ; i < ARRAY_SIZE (clock_deps_name ); i ++ ) {
1576
- struct clk * clk = of_clk_get_by_name (dev_of_node (dev ),
1577
- clock_deps_name [i ]);
1578
-
1579
- if (IS_ERR (clk )) {
1580
- if (PTR_ERR (clk ) != - EINVAL && PTR_ERR (clk ) != - ENOENT )
1581
- return PTR_ERR (clk );
1582
- } else {
1583
- /* Device gets a reference count on the clock */
1584
- clk_deps [i ] = devm_clk_get (dev , __clk_get_name (clk ));
1585
- clk_put (clk );
1586
- }
1587
- }
1588
-
1589
- return 0 ;
1590
- }
1591
-
1592
1539
static int stm32mp1_rcc_clocks_probe (struct platform_device * pdev )
1593
1540
{
1594
1541
struct device * dev = & pdev -> dev ;
1595
- int ret = get_clock_deps ( dev ) ;
1542
+ void __iomem * base ;
1596
1543
1597
- if (!ret )
1598
- ret = stm32mp1_rcc_init (dev );
1599
-
1600
- return ret ;
1601
- }
1602
-
1603
- static void stm32mp1_rcc_clocks_remove (struct platform_device * pdev )
1604
- {
1605
- struct device * dev = & pdev -> dev ;
1606
- struct device_node * child , * np = dev_of_node (dev );
1544
+ base = devm_platform_ioremap_resource (pdev , 0 );
1545
+ if (WARN_ON (IS_ERR (base )))
1546
+ return PTR_ERR (base );
1607
1547
1608
- for_each_available_child_of_node (np , child )
1609
- of_clk_del_provider (child );
1548
+ return stm32_rcc_init (dev , stm32mp13_match_data , base );
1610
1549
}
1611
1550
1612
1551
static struct platform_driver stm32mp13_rcc_clocks_driver = {
@@ -1615,7 +1554,6 @@ static struct platform_driver stm32mp13_rcc_clocks_driver = {
1615
1554
.of_match_table = stm32mp13_match_data ,
1616
1555
},
1617
1556
.probe = stm32mp1_rcc_clocks_probe ,
1618
- .remove_new = stm32mp1_rcc_clocks_remove ,
1619
1557
};
1620
1558
1621
1559
static int __init stm32mp13_clocks_init (void )
0 commit comments